3 2021-09-23 01:35:54 +0100 Tim-Philipp Müller <tim@centricular.com>
8 * gstreamer-vaapi.doap:
12 2021-08-26 15:06:53 +0800 Zhang Yuankun <yuankunx.zhang@intel.com>
14 * gst/vaapi/gstvaapidecode.c:
15 vaapi: decoder: modify the condition to judge whether dma buffer is supported
16 It seems "GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)" will
17 return false even if this platform support the mem_type dma buffer.
18 And media-driver will return GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
19 on Gen12(such as TGL).
20 Without this patch, The command such as:
21 gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw, format=I420 ! \
22 x264enc ! h264parse ! vaapih264dec ! video/x-raw\(memory:DMABuf\) ! fakesink
23 will return not-negotiated.
24 Signed-off-by: Zhang Yuankun <yuankunx.zhang@intel.com>
25 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/437>
27 2021-05-14 12:04:04 +0800 He Junyan <junyan.he@intel.com>
29 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30 * gst/vaapi/gstvaapivideocontext.c:
31 Display: Add a property to export the VA display handle.
32 Just like what we do in VA plugins. The display can be seen as a
33 generic gst object and we can add a property to get the internal
35 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
37 2021-05-14 11:49:01 +0800 He Junyan <junyan.he@intel.com>
39 * gst/vaapi/gstvaapivideomemory.c:
40 * gst/vaapi/gstvaapivideomemory.h:
41 plugins: video memory: Add a GST_MAP_VAAPI flag to peek the surface.
42 Just like what we do in VA plugins, the GST_MAP_VAAPI can directly
43 peek the surface of the VA buffers. The old flag 0 just peek the
44 surface proxy, which may not be convenient for the users who do not
45 want to include our headers.
46 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
48 2021-07-09 11:01:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
50 * gst/vaapi/gstvaapi.c:
51 * gst/vaapi/gstvaapidecode.c:
52 Revert "vaapi: Demote vaapidecodebin to rank NONE."
53 This reverts commit 7a25c5d4ec95aefeca6515ac023b23c5dd330194.
54 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/436>
56 2021-06-23 16:23:00 +0800 He Junyan <junyan.he@intel.com>
58 * gst/vaapi/gstvaapiencode.c:
59 plugins: encode: fix a deadlock because of _drain()
60 We call gst_vaapiencode_drain() in gst_vaapiencode_change_state(),
61 whose context does not hold the stream lock of the encoder. The
62 current gst_vaapiencode_drain inside unlock/lock pair adds a extra
63 lock count to the stream lock of encoder and causes hang later.
64 We just remove the gst_vaapiencode_drain() and expand its logic
65 correctly according to the lock/unlock context.
66 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/433>
68 2021-06-29 15:09:13 +0800 He Junyan <junyan.he@intel.com>
70 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
71 libs: decoder: av1: Clean the film_grain_info field.
72 We need to clean all film_grain_info fields when the film grain
73 feature is not enabled. It may have random data because the picture
74 parameter buffer is not cleaned.
75 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/434>
77 2021-06-03 22:12:04 +0800 He Junyan <junyan.he@intel.com>
79 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
80 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
81 libs: encoder: mpeg2: Add highP level for 1080@50p/60p.
82 The MPEG2 spec has amendment 3 to introduce a new level highP, which
83 is used for 1080@50p/60p streams. We need to add this level to avoid
84 encoding failure because of the level check.
86 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/432>
88 2021-05-11 16:59:07 +0800 He Junyan <junyan.he@intel.com>
90 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
91 Decoder: H264: Add the support for frame packing arrangement SEI message.
92 Frame packing arrangement SEI message is an alternative simple stereo 3D
93 manner for AVC. We need to recognize that SEI message and report the correct
95 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/420>
97 2021-05-22 18:54:49 +0100 Tim-Philipp Müller <tim@centricular.com>
99 * gst-libs/gst/vaapi/gstvaapifilter.c:
101 Use g_memdup2() where available and add fallback for older GLib versions
102 Alloc size is based on existing allocations and struct sizes.
103 g_memdup() is deprecated since GLib 2.68 and we want to avoid
104 deprecation warnings with recent versions of GLib.
105 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/431>
107 2021-06-01 15:29:16 +0100 Tim-Philipp Müller <tim@centricular.com>
112 === release 1.19.1 ===
114 2021-06-01 00:16:31 +0100 Tim-Philipp Müller <tim@centricular.com>
119 * gstreamer-vaapi.doap:
123 2021-04-23 19:01:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
125 * gst/vaapi/gstvaapi.c:
126 * gst/vaapi/gstvaapidecode.c:
127 vaapi: Demote vaapidecodebin to rank NONE.
128 One of the main reasons of vaapidecodebin was because it mitigated the
129 possible surface exhaustion. But that problem is currently
130 solved. Nowadays, vaapidecodebin brings more problems than it
131 solves. Thus this patch demotes vaapidecodebin to NONE rank while
132 bumping PRIMARY + 1 the most common decoders.
133 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/426>
135 2021-05-20 10:28:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
137 * gst/vaapi/gstvaapi.c:
138 * gst/vaapi/gstvaapioverlay.c:
139 plugins: Demote rank of vaapipostproc and vaapioverlay.
140 Since almost all video filters have rank NONE, these both elements
142 This is useful for autovideoconvert and other bins, and users might
143 force to use these by setting the environment variable
144 GST_PLUGIN_FEATURE_RANK.
145 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/429>
147 2021-04-21 10:55:45 +0200 François Laignel <fengalin@free.fr>
149 * tests/check/elements/vaapioverlay.c:
150 Use gst_element_request_pad_simple...
151 Instead of the deprecated gst_element_get_request_pad.
152 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/425>
154 2021-04-23 11:02:05 +0800 Zhang yuankun <yuankunx.zhang@intel.com>
156 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
157 libs: encoder: VP9: fix > 4k encode fail issue
158 The VP9 spec defines the MAX_TILE_WIDTH_B64(64), which is the maximum
159 width of a tile in units of superblocks. So the max width of one tile
160 should not be larger than 64x64=4096. When the width exceeds 4k, we
161 need to split it into multiple tiles in columns. The current vp9 encoder
162 does not handle this correctly.
164 gst-launch-1.0 videotestsrc ! video/x-raw,width=7680,height=4320 ! \
165 vaapivp9enc ! fakesink
167 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/424>
169 2021-04-02 15:43:45 +0800 Haihao Xiang <haihao.xiang@intel.com>
171 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
172 libs: display: drm: don't fallback to default device if explicitly specified device can't load/init
173 Otherwise user will be misled that the specified device is using
174 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/305
175 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/422>
177 2021-03-22 13:41:13 +0800 He Junyan <junyan.he@intel.com>
179 * gst-libs/gst/vaapi/gstvaapiencoder.c:
180 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
181 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
182 decoder: H265: Enable cu_qp_delta_enabled_flag when ROI
183 If ROI is enabled, the CUs within the ROI region may have different
184 QP from the other part of the picture. This needs us to enable the
185 cu_qp_delta_enabled_flag even in the CQP mode.
186 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/419>
188 2021-03-19 17:42:36 +1100 Matthew Waters <matthew@centricular.com>
190 * gst-libs/gst/vaapi/gstvaapicontext.c:
191 * gst-libs/gst/vaapi/gstvaapicontext.h:
192 * gst-libs/gst/vaapi/gstvaapiencoder.c:
193 * gst-libs/gst/vaapi/gstvaapifilter.c:
194 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
195 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
196 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
197 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
198 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
199 * gst-libs/gst/vaapi/gstvaapivalue.c:
200 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
201 * gst/vaapi/gstvaapipluginbase.c:
202 * gst/vaapi/gstvaapisink.c:
203 * gst/vaapi/gstvaapisink.h:
204 * gst/vaapi/gstvaapivideocontext.c:
205 * gst/vaapi/gstvaapivideomemory.c:
206 * tests/internal/simple-decoder.c:
207 gst: don't use volatile to mean atomic
208 volatile is not sufficient to provide atomic guarantees and real atomics
209 should be used instead. GCC 11 has started warning about using volatile
210 with atomic operations.
211 https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
212 Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
213 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/418>
215 2021-02-24 17:41:02 +0100 Paul Goulpié <paul.goulpie@ubicast.eu>
217 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
218 gstvaapiencoder_h264: add ENCODER_EXPOSURE on aud propertie
219 forgot during the following mainline commit: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/bc2f8fd19e924aa0e193708307326acd037691ce#
220 Signed-off-by: Paul Goulpié <paul.goulpie@ubicast.eu>
222 2021-02-04 15:05:55 +0800 He Junyan <junyan.he@intel.com>
224 * gst/vaapi/gstvaapipostproc.c:
225 plugins: postproc: Fix a problem of propose_allocation when passthrough.
226 We should query the downstream element to answer a precise allocation
227 query when the passthrough mode is enabled.
228 The current way still decides the allocation by the postproc itself. The
230 gst-launch-1.0 -v filesrc location=xxx.264 ! h264parse ! vaapih264dec ! \
231 vaapipostproc ! fakevideosink silent=false sync=true
232 will lose some info such as the GST_VIDEO_META_API_TYPE.
233 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/413>
235 2021-01-27 12:05:44 +0800 Haihao Xiang <haihao.xiang@intel.com>
237 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
238 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
239 * gst/vaapi/gstvaapivideocontext.c:
240 libs: display: drm: support gst.vaapi.app.Display context for drm backend
241 Attributes for drm backend:
242 - va-display : ponter of VADisplay
243 - drm-device-fd : the DRM device file descriptor
244 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
246 2021-01-13 14:43:20 +0800 Haihao Xiang <haihao.xiang@intel.com>
249 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
250 libs: display: drm: allow user specify a drm device via an env variable
251 Currently the default drm device is always used on a system with
252 multiple drm devices. This patch allows user to specify the required
253 drm device via GST_VAAPI_DRM_DEVICE env variable
255 GST_VAAPI_DRM_DEVICE=/dev/dri/renderD129 gst-launch-1.0 videotestsrc !
256 vaapih264enc ! fakesink
257 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
259 2021-01-25 14:45:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
261 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
262 libs: display: drm: fix set_device_path_from_fd
263 drmGetBusid() (GET_UNIQUE ioctl) won't return a valid bus id when
264 drmSetInterfaceVersion() (SET_VERSION ioctl) hasn't been called(see[1]),
265 so we can't get the right device path. Running test-display will get the
267 ** (test-display:18630): ERROR **: 10:26:00.434: could not create Gst/VA
269 Calling drmSetInterfaceVersion() before drmGetBusid() can't fix this
270 issue because a special permission is required for SET_VERSION ioctl.
271 This patch retrieves the device path from file descriptor via
273 [1] https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_ioctl.c#L48-L104
274 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/412>
276 2021-01-20 10:42:09 +0100 Rafał Dzięgiel <rafostar.github@gmail.com>
278 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
279 glx: Iterate over FBConfig and select 8 bit color size
280 Texture upload mechanism used by gstreamer-vaapi relies on 8 bpc.
281 In latest mesa versions the first fbconfig might not be 8 bit, so iterate
282 over it to find the correct config with supported values.
283 This also adds 8 bit alpha size to the framebuffer configuration which is
284 required to get it working properly.
285 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/410>
287 2021-01-11 09:57:03 +0800 Ung, Teng En <teng.en.ung@intel.com>
289 * gst-libs/gst/vaapi/gstvaapiutils.c:
290 vaapipostproc: fix code style.
291 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
293 2020-12-21 05:42:00 +0000 Ung, Teng En <teng.en.ung@intel.com>
295 * gst-libs/gst/vaapi/gstvaapidisplay.c:
296 * gst-libs/gst/vaapi/gstvaapidisplay.h:
297 * gst-libs/gst/vaapi/gstvaapifilter.c:
298 vaapipostproc: Remove YUV to/from RGB color primary quirk since iHD driver has fixed in https://github.com/intel/media-driver/commit/a39fe9bc051a8c3efa8f35122a1585981ec7f816.
299 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
301 2020-12-21 05:36:29 +0000 Ung, Teng En <teng.en.ung@intel.com>
303 * gst-libs/gst/vaapi/gstvaapiutils.c:
304 vaapipostproc: Added gstreamer BT2020 color standard support.
305 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
307 2021-01-09 16:05:48 +0800 He Junyan <junyan.he@intel.com>
309 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
310 decoder: AV1: Fix a static analysis problem of update_state().
311 No need to check the picture pointer after we have already dereferenced it.
313 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/408>
315 2020-12-22 23:43:52 +0800 He Junyan <junyan.he@intel.com>
317 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
318 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
319 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
320 libs: decoder: Add decode_with_surface_id for AV1 film_grain.
321 The AV1 film_graim feature needs two surfaces the same time for
322 decoding. One is for recon surface which will be used as reference
323 later, and the other one is for display. The GstVaapiPicture should
324 contain the surface for display, while the vaBeginPicture() need
325 the recon surface as the target.
326 We add a gst_vaapi_picture_decode_with_surface_id API to handle this
328 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
330 2020-08-27 21:46:41 +0800 He Junyan <junyan.he@intel.com>
332 * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
333 * gst-libs/gst/vaapi/gstvaapidecoder_av1.h:
334 * gst-libs/gst/vaapi/gstvaapiprofile.c:
335 * gst-libs/gst/vaapi/gstvaapiprofile.h:
336 * gst-libs/gst/vaapi/gstvaapiutils.c:
337 * gst-libs/gst/vaapi/meson.build:
338 * gst/vaapi/gstvaapidecode.c:
340 libs: decoder: AV1: Add the av1 decoder support.
341 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
343 2020-08-27 21:39:35 +0800 He Junyan <junyan.he@intel.com>
345 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
346 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
347 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
348 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
349 libs: codecobject: Add number of elements when create codec object.
350 One slice data may need several slice parameter buffers at one time.
351 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
353 2020-12-12 10:30:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
355 * gst/vaapi/gstvaapidecodebin.c:
356 * gst/vaapi/gstvaapipluginbase.c:
357 * gst/vaapi/gstvaapivideobufferpool.c:
358 vaapi: use gst_clear_object instead of g_clear_object
359 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/406>
361 2020-12-08 13:34:35 +0800 He Junyan <junyan.he@intel.com>
363 * gst/vaapi/gstvaapiencode.c:
364 plugins: encode: unlock the stream lock before _flush()
365 The current encoder will hang when EOS comes. When we call the
366 gst_vaapi_encoder_encode_and_queue(), we should release the stream
367 lock, just like what we do in gst_vaapiencode_handle_frame().
368 The deadlock happens when: The input thread holding the stream lock
369 is using gst_vaapi_encoder_create_coded_buffer() to acquire a coded
370 buffer, while the output thread which holding the coded buffer resource
371 is acquiring the stream lock in _push_frame() to push the data to
373 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/404>
375 2020-12-09 00:04:33 +0800 He Junyan <junyan.he@intel.com>
377 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
378 libs: encoder: H264: Fix one assert in get_pending_reordered().
379 gst_vaapi_encoder_h264_get_pending_reordered() does not consider the
380 case for HIERARCHICAL_B mode. The pipeline:
381 gst-launch-1.0 videotestsrc num-buffers=48 ! vaapih264enc prediction-type=2 \
382 keyframe-period=32 ! fakesink
384 ERROR:../gst-libs/gst/vaapi/gstvaapiencoder_h264.c:1996:reflist1_init_hierarchical_b:
385 assertion failed: (count != 0)
386 The last few B frames are not fetched in correct order when HIERARCHICAL_B
388 We also fix a latent bug for normal mode. The g_queue_pop_tail() of B frames
389 make the last several frames encoded in reverse order. The NAL of last few
390 frames come in reverse order in the bit stream, though it can still output
392 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/405>
394 2020-06-25 16:25:21 +0800 He Junyan <junyan.he@hotmail.com>
396 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
397 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
398 libs: encoder: H265: Add screen content coding extensions support.
399 In scc mode, the I frame can ref to itself and it needs the L0 reference
400 list enabled. So we should set the I frame to P_SLICE type. We do not need
401 to change the ref_pic_list0/1 passed to VA driver, just need to enable the
402 VAEncPictureParameterBufferHEVC->pps_curr_pic_ref_enabled_flag to notify
403 the driver consider the current frame as reference. For bits conformance,
404 the NumRpsCurrTempList0 should be incremented by one to include the current
405 picture as the reference frame. We manually do it when packing the slice header.
407 gst-launch-1.0 videotestsrc num-buffers=10 ! \
408 capsfilter caps=video/x-raw,format=NV12, framerate=30/1,width=640,height=360 ! \
409 vaapih265enc ! capsfilter caps=video/x-h265,profile="{ (string)screen-extended-main }" ! \
410 filesink location=out.265
411 Can be used to specify that the encoder should use SCC profiles.
412 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/379>
414 2020-07-11 23:37:29 +0800 He Junyan <junyan.he@intel.com>
416 * gst/vaapi/gstvaapiencode_vp9.c:
417 plugin: encode: vp9: Implement the set_config().
418 We store the allowed profiles list to encoder in set_config().
419 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
421 2020-07-11 23:39:40 +0800 He Junyan <junyan.he@intel.com>
423 * gst/vaapi/gstvaapiencode_vp9.c:
424 plugin: encode: vp9: Add the profile into output caps.
425 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
427 2020-07-11 23:27:21 +0800 He Junyan <junyan.he@intel.com>
429 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
430 libs: encoder: vp9: no need to ensure_hw_profile.
431 Once we decide the profile and can get the valid entrypoint for
432 that profile, hw must already support this profile/entrypoint pair.
433 No need to check it again in set_context_info().
434 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
436 2020-07-11 23:22:55 +0800 He Junyan <junyan.he@intel.com>
438 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
439 libs: encoder: vp9: Improve the manner to decide the profile.
440 We should decide the VP9 encoder's profile based on the chroma and
441 depth of the input format, then make sure it is included in the
443 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
445 2020-07-11 23:17:02 +0800 He Junyan <junyan.he@intel.com>
447 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
448 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
449 libs: util: vpx: add get_chroma_format_idc for VP9
450 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
452 2020-07-11 23:09:59 +0800 He Junyan <junyan.he@intel.com>
454 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
455 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
456 libs: encoder: vp9: Add allowed_profiles.
457 We need the allowed_profiles to store the allowed profiles in down
460 vaapivp9enc ! capsfilter caps=video/x-vp9,profile="{ (string)1, \
462 We need to store GST_VAAPI_PROFILE_VP9_1 and GST_VAAPI_PROFILE_VP9_3
464 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
466 2020-11-30 18:00:30 +0800 He Junyan <junyan.he@intel.com>
468 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
469 libs: decoder: H265: Fix a typo in scc reference setting.
470 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/402>
472 2020-07-17 18:00:30 +0800 He Junyan <junyan.he@intel.com>
474 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
475 * gst-libs/gst/vaapi/gstvaapiprofile.c:
476 * gst-libs/gst/vaapi/gstvaapiprofile.h:
477 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
478 * gst-libs/gst/vaapi/video-format.c:
479 * gst/vaapi/gstvaapidecode.c:
480 libs: decoder: H265: Add MAIN_422_12 profile supporting.
481 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
483 2020-07-31 14:38:42 +0800 He Junyan <junyan.he@intel.com>
485 * gst-libs/gst/vaapi/gstvaapiimage.c:
486 * gst-libs/gst/vaapi/video-format.c:
487 * gst-libs/gst/vaapi/video-format.h:
488 video-format: Add Y212_LE format.
489 It can be used as HEVC YUV_4:2:2 12bits stream's decoder output, and
490 also can be used as the input format for encoding HEVC YUV_4:2:2 12bits
492 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
494 2020-07-30 23:21:06 +0800 He Junyan <junyan.he@intel.com>
496 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
497 * gst-libs/gst/vaapi/gstvaapiprofile.c:
498 * gst-libs/gst/vaapi/gstvaapiprofile.h:
499 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
500 * gst-libs/gst/vaapi/video-format.c:
501 * gst/vaapi/gstvaapidecode.c:
502 libs: decoder: H265: Add MAIN_444_12 profile supporting.
503 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
505 2020-07-30 23:13:10 +0800 He Junyan <junyan.he@intel.com>
507 * gst-libs/gst/vaapi/gstvaapiimage.c:
508 * gst-libs/gst/vaapi/video-format.c:
509 * gst-libs/gst/vaapi/video-format.h:
510 video-format: Add Y412_LE format.
511 It can be used as HEVC YUV_4:4:4 12bits stream's decoder output, and
512 also can be used as the input format for encoding HEVC YUV_4:4:4 12bits
514 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
516 2020-09-17 16:47:43 +0800 He Junyan <junyan.he@intel.com>
518 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
519 libs: decoder: h265: fill missing predictor_palette_size field.
520 The predictor_palette_size of VAPictureParameterBufferHEVCScc is
521 forgotten and need to be filled when streams have palettes.
522 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/396>
524 2020-09-17 15:35:11 +0800 He Junyan <junyan.he@intel.com>
526 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
527 libs: utils: h265: Use get_profile_from_sps to get profile.
528 We now use gst_h265_get_profile_from_sps() to replace the old way
529 of gst_h265_profile_tier_level_get_profile() to get more precise
530 profile. The new function consider the unstandard cases and give
531 a more suitable profile decision.
532 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/395>
534 2020-10-19 13:46:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
536 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
537 libs: decoder: vp9: 0xff segment pred probs if no temporal update
538 According to the spec (6.2.11 Segmentation params syntax)
539 segmentation_pred_prob[i] ast to be 0xff if not temporal_update.
540 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
542 2020-10-19 13:42:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
544 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
545 libs: decoder: vp9: avoid reference rewriting
546 The removed code set all the reference frames to the current frame it is a key
547 one, but later, all the reference frames were rewritten with the decoded picture
548 buffers or VA_INVALID_SURFACE if they were not available.
549 Basically, all this time the first reference frame assignment has been ignored,
550 and it's not described by the spec, and this patch removes that code.
551 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
553 2020-09-20 09:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
555 * gst/vaapi/gstvaapidecode.c:
556 decoder: don't reply src caps query with allowed if pad is fixed
557 If the pad is already fixed the caps query have to be reply with the
558 current fixed caps. Otherwise the query has to be replied with the
559 autogeneratd src caps.
560 This path fix this by falling back to the normal caps query processing
561 if the pad is already fixed. Otherwise it will fetch the allowed src
563 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/397>
565 2020-09-15 00:11:30 +0800 He Junyan <junyan.he@intel.com>
567 * gst/vaapi/gstvaapidecode.c:
568 plugins: decode: fix a DMA caps typo in ensure_allowed_srcpad_caps.
569 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/392>
571 2020-09-01 09:31:33 +0200 Marc Leeman <m.leeman@televic.com>
573 * gst/vaapi/gstvaapisink.c:
574 vaapisink: when updating the caps, reset rotation
575 When an element upstream changes settings (e.g. crop), new caps are sent
576 to vaapisink. When vaapisink was rotating the image, it needs to
577 re-evaluate if the sink needs to rotate the image.
578 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/389>
580 2020-09-08 17:31:02 +0100 Tim-Philipp Müller <tim@centricular.com>
583 ci: include template from gst-ci master branch again
585 2020-09-08 16:59:07 +0100 Tim-Philipp Müller <tim@centricular.com>
590 === release 1.18.0 ===
592 2020-09-08 00:09:51 +0100 Tim-Philipp Müller <tim@centricular.com>
598 * gstreamer-vaapi.doap:
602 2020-09-07 12:15:43 +0300 Sebastian Dröge <sebastian@centricular.com>
604 * gst-libs/gst/vaapi/gstvaapifilter.c:
605 Update for gst_video_transfer_function_*() function renaming
606 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/391>
608 2020-08-22 12:53:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
610 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
611 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
612 Revert "libs: decoder: h264, h265: in context at least 16 reference surfaces"
613 This reverts commit b387081a4d77d3da202da72686ab40fb9c83ee1e as discussed in
614 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/b387081a4d77d3da202da72686ab40fb9c83ee1e
616 === release 1.17.90 ===
618 2020-08-20 16:16:25 +0100 Tim-Philipp Müller <tim@centricular.com>
623 * gstreamer-vaapi.doap:
627 2020-08-17 11:43:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
629 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
630 libs: surface: egl: guard memory type
631 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/384>
633 2020-08-17 19:26:43 +0800 He Junyan <junyan.he@intel.com>
635 * gst/vaapi/gstvaapidecode.c:
636 plugin: decode: Fix two mem leaks because of caps.
637 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/385>
639 2020-08-16 01:57:15 +0800 He Junyan <junyan.he@intel.com>
641 * gst/vaapi/gstvaapivideomemory.c:
642 plugin: allocator: No need to ref allocator when create mem.
643 We do not need to ref the allocator when creating GstVaapiVideoMemory
644 kind memory, and then release it in _free(). The framework already
646 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/383>
648 2020-08-14 10:42:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
650 * gst/vaapi/gstvaapiencode_h264.c:
651 vaapiencode: h264: ignore level without breaking negotiation
652 Since commit 9f627ef2 if the user sets level in the encoder src caps
653 the caps negotiation is rejected.
654 But since the same commit the same encoder set the autoconfigured
655 level in caps. Some change in the base class might fixed the operation
656 order so now the caps are set and later negotiated.
657 This patch removes the level check.
659 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/382>
661 2019-07-09 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
663 * gst-libs/gst/vaapi/egl_vtable.h:
664 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
665 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
666 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
667 libs: egl: surface: export EGLImage as DMABuf if GEM not supported
668 This code path is used when frames are rendered as textures through
669 GstVideoGLTextureUploadMeta with EGL, mainly under Wayland.
670 Originally the EGLImage was exported as GEM, which was handled by
671 Intel drivers, but Gallium ones cannot create VA surfaces from
672 GEM buffers, only DMABuf.
673 This patch checks the memory types supported by VA driver to choose
674 the render the EGLImages from GEM or DMABuf, because GEM is still
675 better where supported.
676 DMABuf is well handled either by intel-vaapi-driver and gallium.
678 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
680 2020-05-26 16:18:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
682 * gst-libs/gst/vaapi/gstvaapifilter.c:
683 * gst-libs/gst/vaapi/gstvaapifilter.h:
684 libs: filter: gst_vaapi_filter_get_memory_types()
685 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
687 2020-08-12 18:48:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
689 * gst/vaapi/gstvaapipluginbase.c:
690 * gst/vaapi/gstvaapipluginbase.h:
691 plugins: remove gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps()
692 Since nobody uses it, just remove it.
693 Thus extract_allowed_surface_formats() is refactored to attend only
694 gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps().
695 Now a surface is created when the image chorma is different from the
696 previous one. And if the driver has the quirk, it outputs all the
697 supported image formats without trying them.
698 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
700 2020-08-12 17:50:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
702 * gst/vaapi/gstvaapidecode.c:
703 vaapidecode: expose raw src caps with same chroma
704 The try-and-error approach for getting the possible image formats from
705 a surface has brought several problems in different drivers, from
706 crashes to drop in performance.
707 Instead of that we change the algorithm to determine the possible
708 image formats based in the surface chroma: only those available image
709 formats with same chroma are exposed as possible raw caps.
710 Do this is important to avoid performance degrading in raw sinks
711 which doesn't handle NV12 but it does YV12 or I420.
712 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
714 2020-07-10 17:05:38 +0800 He Junyan <junyan.he@intel.com>
716 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
717 libs: util: h265: use common parser API to get vaapi profiles.
718 We can reuse H265 parser's API to recognize the correct profile and
719 then just need to convert them to VAAPI profiles.
720 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/356>
722 2020-08-07 16:41:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
724 * gst-libs/gst/vaapi/meson.build:
725 * gst/vaapi/meson.build:
727 build: update for gl pkg-config file split
728 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/378>
730 2020-08-06 12:51:27 +0800 Xu Guangxin <guangxin.xu@intel.com>
732 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
733 h264dec: mark remaining frames as unreference before exec_picture_refs_modification
734 8.2.4.2 required this. Some clips will crash if we do not fill the reference list like this.
735 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/376>
737 2020-07-31 18:22:46 +0800 He Junyan <junyan.he@intel.com>
739 * gst-libs/gst/vaapi/gstvaapiencoder.c:
740 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
741 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
742 libs: encoder: H265: Enable Main 12 profile support.
743 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
745 2020-07-31 19:17:39 +0800 He Junyan <junyan.he@intel.com>
747 * gst-libs/gst/vaapi/video-format.c:
748 video format: Fix P012_LE's chrome type typo.
749 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
751 2020-08-04 21:15:01 +0300 Jordan Petridis <jordan@centricular.com>
753 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
754 gstvaapiminiobject.c: fix clang 10 warnings
755 the typesystem checks in g_atomic_pointer_compare_and_exchange
756 seem to trigger some false positives with clang 10
757 similar to gstreamer!584
758 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/377>
760 2020-07-31 11:07:23 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
762 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
763 libs: window: wayland: destroy all wayland buffers during finalize
764 Some buffers and the associated FrameState state may still be pending at
765 that point. If the wayland connection is shared, then messages for the
766 buffer may still arrive. However, the associated event queue is already
767 deleted. So the result is a crash.
768 With a private connection the associated memory is leaked instead.
769 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
771 2020-06-18 20:25:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
773 * tests/examples/test-vaapicontext.c:
774 test: vaapicontext: fix draw callback with multiple videos
775 The callback is called for both windows. So make sure that
776 gst_video_overlay_set_render_rectangle() is called for the correct one.
777 Otherwise, the left video will be randomly moved behind the right video.
778 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
780 2020-06-19 09:23:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
782 * tests/examples/meson.build:
783 * tests/examples/test-vaapicontext.c:
784 test: vaapicontext: support wayland display
785 On Wayland, The whole gtk window is one Wayland surface. So
786 gtk_widget_get_window() must be called on the top-level widget.
787 For any other widget the following gdk_window_ensure_native() may create a
788 new top-level Wayland surface that is never visible.
789 As a result, the coordinates passed to
790 gst_video_overlay_set_render_rectangle() must be relativ to the top-level
791 window. Otherwise the video is placed incorrectly.
792 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
793 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
795 2017-12-01 20:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
797 * tests/examples/test-vaapicontext.c:
798 test: vaapicontext: use playbin to test files
799 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
801 2017-11-29 11:11:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
803 * tests/examples/test-vaapicontext.c:
804 test: vaapicontext: add PLAY and NULL buttons
805 They only appear when only one sink is instanciated and their purpose
806 is to test the NULL-PLAY use case in context sharing.
807 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
809 2020-06-19 21:26:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
811 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
812 libs: wayland: update the opaque region in set_render_rect
813 gst_vaapi_window_wayland_set_render_rect() may be called from an arbitrary
814 thread. That thread may be responsible for making the window visible.
815 At that point another thread will block in gst_vaapi_window_wayland_sync()
816 because the frame callback will not be called until the window is visible.
817 If that happens, then acquiring the display lock in
818 gst_vaapi_window_wayland_set_render_rect() would result in a deadlock.
819 Cache the size of the opaque rectangle separately and create the opaque
820 region right before applying it to the surface.
821 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
823 2020-06-19 09:21:16 +0200 Hyunjun Ko <zzoon@igalia.com>
825 * gst-libs/gst/vaapi/gstvaapiwindow.c:
826 * gst-libs/gst/vaapi/gstvaapiwindow.h:
827 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
828 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
829 * gst/vaapi/gstvaapisink.c:
830 libs: window: implements gst_vaapi_window_set_render_rectangle
831 Implements new vmethod gst_vaapi_window_set_render_rectangle,
832 which is doing set the information of the rendered rectangle set by
834 This is necessary on wayland at least to get exact information of
836 And vaapisink calls this when gst_video_overlay_set_render_rectangle is
838 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
840 2017-11-08 13:23:39 +0900 Hyunjun Ko <zzoon@igalia.com>
842 * gst/vaapi/gstvaapisink.c:
843 vaapisink: implements gst_vaapisink_wayland_create_window_from_handle()
844 Implements gst_vaapisink_wayland_create_window_from_handle() to support
845 using external wl_surface.
846 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
848 2020-06-19 09:11:20 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
850 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
851 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
852 * gst-libs/gst/vaapi/gstvaapiwindow.c:
853 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
854 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
855 libs: wayland: implement video overlay API
856 The Wayland sub-surfaces API is used to embed the video into an application
858 See Appendix A. Wayland Protocol Specification as the following.
860 The aim of sub-surfaces is to offload some of the compositing work
861 within a window from clients to the compositor. A prime example is
862 a video player with decorations and video in separate wl_surface
864 This should allow the compositor to pass YUV video buffer processing to
865 dedicated overlay hardware when possible.
867 Added new method gst_vaapi_window_wayland_new_with_surface()
868 Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
869 Zhao Halley <halley.zhao@intel.com>
870 changzhix.wei@intel.com
871 Hyunjun Ko <zzoon@igalia.com>
872 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
874 2020-06-19 21:54:52 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
876 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
877 doc: libs: wayland: add 'transfer full' to the returnvalye of gst_vaapi_window_wayland_new
878 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
880 2020-06-11 08:25:57 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
882 * gst-libs/gst/vaapi/gstvaapidisplay.c:
883 libs: display: always call close_display()
884 All close_display() have their own checks for use_foreign_display and only
885 destroy locally created objects in that case.
886 Without this objects other than the actuall foreign display itself are
888 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
890 2020-07-30 23:37:10 +0800 He Junyan <junyan.he@intel.com>
892 * gst-libs/gst/vaapi/video-format.h:
893 video-format: Add the missing P012_LE into GST_VAAPI_FORMATS_ALL.
894 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/373>
896 2020-05-25 17:02:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
898 * gst/vaapi/gstvaapidecode.c:
899 * gst/vaapi/gstvaapipluginutil.c:
900 * gst/vaapi/gstvaapipluginutil.h:
901 plugins: add gst_vaapi_caps_set_width_and_height_range()
902 This utility function is called internally by
903 gst_vaapi_build_caps_from_formats() and can be used outside.
904 This function sets frame size and framerates ranges.
905 Also gst_vaapi_build_caps_from_formats() is simplified.
906 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/374>
908 2020-07-31 15:27:38 +0800 He Junyan <junyan.he@intel.com>
910 * gst-libs/gst/vaapi/gstvaapidecoder.c:
911 libs: decoder: fix a crash issue when get_surface_formats.
912 Some context does not report any valid format that we can support.
913 For example, the HEVC 444 12 bits decoder context, all the formats
914 it reports is not supported now, which make the formats list a NULL
915 array. We should check that pointer before we use it.
916 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/372>
918 2020-07-03 19:28:28 +0800 He Junyan <junyan.he@intel.com>
920 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
921 libs: encoder: h265: choose the profile based on allowed list.
922 We can decide the profile in ensure_profile(), based on allowed list
923 passed by the encode. We also need to check whether the entrypoint is
924 available. Once it is decided, no need to check the hw entrypoint
926 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
928 2020-07-29 22:05:41 +0800 He Junyan <junyan.he@intel.com>
930 * gst/vaapi/gstvaapiencode_h265.c:
931 plugins: encode: h265: set all allowed profiles to encoder.
932 We should collect all allowed profiles and pass them to the inside
933 encoder, rather than just calculate the max profile idc.
934 The allowed profiles should also be supported by the HW.
935 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
937 2020-07-29 22:32:55 +0800 He Junyan <junyan.he@intel.com>
939 * gst-libs/gst/vaapi/gstvaapidisplay.c:
940 * gst-libs/gst/vaapi/gstvaapidisplay.h:
941 libs: display: Add a helper function to get profiles by codec.
942 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
944 2020-07-03 01:28:28 +0800 He Junyan <junyan.he@intel.com>
946 * gst/vaapi/gstvaapiencode_h265.c:
947 plugins: encode: h265: collect all allowed profiles to encoder.
948 We should collect all allowed profiles and pass them to the inside
949 encoder, rather than just calculate the max profile idc.
950 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
952 2020-07-03 00:53:31 +0800 He Junyan <junyan.he@intel.com>
954 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
955 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
956 * gst/vaapi/gstvaapiencode_h265.c:
957 libs: encoder: h265: modify set_max_profile to set_allowed_profiles.
958 In h265, bigger profile idc may not be compatible with the small profile
959 idc. And more important, there are multi profiles with the same profile
960 idc. Such as main-422-10, main-444 and main-444-10, they all have profile
962 So recording the max profile idc is not enough, the encoder needs to know
963 all allowed profiles when deciding the real profile.
964 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
966 2020-07-02 23:33:31 +0800 He Junyan <junyan.he@intel.com>
968 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
969 libs: encoder: h265: No need to check hw_max_profile.
970 In h265, higher profile idc number does not mean better compression
971 performance and may be not compatible with the lower profile idc.
972 So, it is not suitable to find the heighest idc for hw to ensure the
974 On the other side, when the entrypoint of the selected profile is valid,
975 it means the hw really support this profile, no need to check it again.
976 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
978 2020-04-08 19:41:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
980 * gst/vaapi/gstvaapipostproc.c:
981 vaapipostproc: early return if fixate srcpad caps fails
982 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/371>
984 2020-07-29 13:39:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
986 * gst/vaapi/gstvaapipluginutil.c:
987 vaapipluginutil: simplify gst_vaapi_find_preferred_caps_feature()
988 Generalize the way how the preferred color format is chosen. Also
989 use new GStreamre API as syntatic sugar.
990 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/370>
992 2020-07-29 14:22:18 +0800 He Junyan <junyan.he@intel.com>
994 * gst-libs/gst/vaapi/gstvaapidecoder.c:
995 * gst-libs/gst/vaapi/gstvaapiprofile.c:
996 * gst-libs/gst/vaapi/gstvaapiprofile.h:
997 * gst/vaapi/gstvaapidecode.c:
998 * gst/vaapi/gstvaapiencode.c:
999 libs: profile: Use get_codec_from_caps to get codec type.
1000 There is no need to get a profile from the caps and then convert
1001 that profile into codec type. We can get the codec type by caps's
1003 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1005 2020-07-12 19:42:40 +0800 He Junyan <junyan.he@intel.com>
1007 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1008 libs: profile: h265: Fix return value of from_codec_data_h265.
1009 profile_from_codec_data_h265() returns wrong GstVaapiProfile for h265.
1010 The codec data of caps contain the profile IDC, but the mapping between
1011 profile IDC and GstVaapiProfile is wrong.
1012 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1014 2020-07-07 00:46:23 +0800 He Junyan <junyan.he@intel.com>
1016 * gst/vaapi/gstvaapiencode_vp9.c:
1017 plugins: encode: vp9: Implement vp9's allowed_profiles() func.
1018 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1020 2020-07-08 16:30:17 +0800 He Junyan <junyan.he@intel.com>
1022 * gst/vaapi/gstvaapiencode_h264.c:
1023 * gst/vaapi/gstvaapiencode_h265.c:
1024 * gst/vaapi/gstvaapipluginutil.c:
1025 * gst/vaapi/gstvaapipluginutil.h:
1026 plugin: util: rename h26x_encoder_get_profiles_from_caps().
1027 Change its name to encoder_get_profiles_from_caps(). Other codecs such
1028 as VP9 also needs to use this function.
1029 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1031 2020-07-06 23:35:12 +0800 He Junyan <junyan.he@intel.com>
1033 * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
1034 * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
1035 * gst-libs/gst/vaapi/meson.build:
1036 libs: utils: vpx: Add utils vpx to handle VP8/9 misc things.
1037 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1039 2020-07-29 10:17:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1041 * gst-libs/gst/vaapi/gstvaapicontext.c:
1042 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1043 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1044 libs: display, context: handle broken jpeg decoder for i965 driver
1045 JPEG decoding in i965 driver is pretty much broken, and the driver is
1046 deprecated which mean authors only accept trivial fixes.
1047 Surfaces for JPEG decoder context in i965 only handle IMC3[1] color
1048 format which is not a common format in GStreamer. It can export it to
1049 I420 at mapping raw bytes, but DMABuf exporting is problematic.
1050 This patch artificially adds NV12 to the context format list when it's
1051 JPEG decoder for i965 and force the usage of old VA-API for surface
1052 creation without specifying color format. Also it artificially
1053 disables the DMABuf announcement.
1054 1. https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#420-formats-16-bits-per-pixel
1055 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1057 2020-07-29 12:02:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1059 * gst-libs/gst/vaapi/gstvaapicontext.c:
1060 libs: context: change function to internal code style
1061 Instead of a getter the function `get_preferred_format()` to
1062 `ensure_preferred_format()` which aligns to the code style.
1063 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1065 2020-07-28 20:00:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1067 * gst/vaapi/gstvaapidecode.c:
1068 vaapidecode: always merge profile caps in sink caps
1069 This commit fixes a regression of e962069d, where if the profile's
1070 caps doesn't have a caps profile, it's ignored.
1071 This patch add a conditional jump if the caps doesn't have a profile
1074 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/368>
1076 2020-07-28 12:22:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1079 build: request libdrm >= 2.4.98 and fallback
1081 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/367>
1083 2020-05-18 17:32:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1085 * gst/vaapi/gstvaapidecode.c:
1086 vaapidecode: dma caps only use reported color format
1087 This fix pipelines without vaapipostproc after vaapi decoder, such as
1088 gst-launch-1.0 filesrc location=~/file.mp4 ! parsebin ! vaapih264dec ! glimagesink
1089 On EGL platforms, so DMABuf is used.
1090 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1092 2020-02-07 17:10:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1094 * gst/vaapi/gstvaapidecode.c:
1095 vaapidecode: use allowed srcpad caps for caps query
1096 Instead of using just the template caps use the current allowed
1097 srcpad caps, which is created considering the current decoder
1099 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1101 2020-01-22 17:41:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1103 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1104 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1105 * gst/vaapi/gstvaapidecode.c:
1106 vaapidecode: build allowed srcpad caps from va context
1107 Instead of generating allowed srcpad caps with generic information,
1108 now it takes the size an formats limits from the decoder's context.
1109 This is possible since srcpad caps are generated after the internal
1111 The patch replaces gst_vaapi_decoder_get_surface_formats() with
1112 gst_vaapi_decoder_get_suface_attributes().
1113 From these attributes, formats are only used for VASurface memory
1114 caps feature. For system memory caps feature, the old
1115 gst_vaapi_plugin_get_allowed_srcpad_caps() is still used, since
1116 i965 jpeg decoder cannot deliver mappable format for gstreamer.
1117 And for the other caps features (dmabuf and texture upload) the
1118 same static list are used.
1119 This patch also adds DMABuf caps feature only if the context
1120 supports that memory type. Nonetheless, we keep the pre-defined
1121 formats since they are the subset of common derive formats formats
1122 supported either by amd/gallium and both intel drivers, since,
1123 when exporting the fd through vaAcquireBufferHandle()/
1124 vaReleaseBufferHandle(), the formats of the derivable image cannot
1125 be retriebable from the driver. Later we'll use the attribute
1126 formats for the DMABuf feature too, when the code be ported to
1127 vaExportSurfaceHandle().
1128 Finally, the allowed srcpad caps are removed if the internal decoder
1129 is destroyed, since context attribues will change.
1130 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1132 2020-02-07 16:50:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1134 * gst/vaapi/gstvaapidecode.c:
1135 vaapidecode: reorder src caps template
1136 Since negotiation depends on caps order, first is VA, then DMABuf,
1137 later GLUploadTexture (deprecated) and finally raw.
1138 Also, for decoders, the possible available color formats for DMABuf
1139 is extended to all the possible VA color formats.
1140 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1142 2020-07-22 10:01:41 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1144 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1145 libs: window: wayland: use dmabuf protocol if available
1146 Currently vaGetSurfaceBufferWl() is used to create wayland buffers.
1147 Unfortunately this is not implemented by the 'media-driver' and Mesa VA-API
1148 drivers. And the implementation provided by 'intel-vaapi-driver' is not
1149 compatible with a Wayland server that uses the iris Mesa driver.
1150 So create the Wayland buffers manually with the zwp_linux_dmabuf_v1 wayland
1151 protocol. Formats and modifiers supported by the Wayland server are taken
1152 into account. If necessary, VPP is enabled to convert the buffer into a
1154 Fall back to vaGetSurfaceBufferWl() if creating buffers via dambuf protocol
1156 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1158 2020-07-21 10:03:19 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1160 * gst-libs/gst/vaapi/gstvaapiwindow.c:
1161 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1162 libs: window: allow choosing the format for the vpp pool
1163 Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1164 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1166 2020-06-28 17:42:29 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1168 * gst-libs/gst/vaapi/video-format.c:
1169 * gst-libs/gst/vaapi/video-format.h:
1170 video-format: add DRM formats to the mapping table
1171 This will be needed for the DMABuf protocol support to map DRM formats to
1172 vaapi and gstreamer formats.
1173 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1175 2020-07-22 09:36:18 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1177 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1178 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1179 * gst-libs/gst/vaapi/meson.build:
1180 libs: display: wayland: add basic dmabuf protocol support
1181 This is just the basic infrastructure. Hook up the interface and collect
1182 all supported formats.
1183 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1185 2020-07-06 09:59:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1187 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1188 libs: window: wayland: wait for configure before committing the first buffer
1189 Committing the first buffer for a surface must not be done before
1190 ack_configure() has been sent for the xdg_surface.
1191 With weston, the commit will fail with "error 3: xdg_surface has never been
1193 Wait in gst_vaapi_window_wayland_show() until configure is done to avoid
1195 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1197 2020-07-01 14:50:51 +0800 He Junyan <junyan.he@hotmail.com>
1199 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1200 libs: encoder: h265: set no P frame automatically.
1201 The double reference lists may be required by drivers and there should
1202 be no P frames in the of stream. The old way of converting P frames to
1203 B frames is by setting `low-delay-b` property, which is unconvenient
1204 and has bad user experience, since most of the users do not know when
1205 to set this property, and if it is not set correctly, the encoding
1206 pipeline fails or even hangs on some platforms. VA driver now provides
1207 a attribute to query whether both reference lists must be un-NULL for
1208 a profile/entrypoint pair.
1209 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1211 2020-04-15 16:26:55 +0800 He Junyan <junyan.he@hotmail.com>
1213 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1214 libs: encoder: h265: Deprecate the low-delay-b property.
1215 In HEVC, P and B definitions are different from AVC: P frames have
1216 just one reference list and so 1 MV, while B frames have two reference
1217 lists and so 2 MVs. No matter B or P, ist reference lists can contain
1218 forward/backward reference. So P and B can both have bi-directions
1219 dependency, the difference is just their reference list
1220 number (i.e. MV number). This is different from the AVC.
1221 The *low delay b mode* refers to a special HEVC mode, in which the
1222 stream just contain I and B frames, without P frames, and all B frames
1223 only have forward direction dependencies (i.e. all inter frames have 2
1224 reference lists but no backward reference in both lists). This is
1225 similar to AVC I/P mode, but changing the P to the forward dependent
1227 The `low-delay-b` property is now just used to simply convert all P
1228 frames to B frames when driver does not support P frames (so both
1229 reference lists have the same references frames). This is a little
1230 different from the meaning of low delay b mode (the two ref lists may
1231 have the different reference frames). And the driver now can report
1232 whether it supports P frames correctly, so there is no need to use
1233 this property and deprecate it.
1234 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1236 2020-07-24 12:54:31 +0200 Marc Leeman <m.leeman@televic.com>
1238 * gst/vaapi/gstvaapipostproc.c:
1239 postproc: reconfigure after changing cropping values
1240 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/365>
1242 2020-07-09 13:49:29 +0800 He Junyan <junyan.he@intel.com>
1244 * gst/vaapi/gstvaapiencode.h:
1245 * gst/vaapi/gstvaapiencode_h264.c:
1246 * gst/vaapi/gstvaapiencode_h265.c:
1247 * gst/vaapi/gstvaapiencode_jpeg.c:
1248 * gst/vaapi/gstvaapiencode_mpeg2.c:
1249 * gst/vaapi/gstvaapiencode_vp8.c:
1250 * gst/vaapi/gstvaapiencode_vp9.c:
1251 plugin: encode: Add static caps for template documentation.
1252 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1254 2020-07-08 19:03:14 +0800 He Junyan <junyan.he@intel.com>
1256 * gst/vaapi/gstvaapiencode_vp9.c:
1257 plugin: encode: vp9: Use the dynamically built src template caps.
1258 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1260 2020-07-08 19:02:45 +0800 He Junyan <junyan.he@intel.com>
1262 * gst/vaapi/gstvaapiencode_vp8.c:
1263 plugin: encode: vp8: Use the dynamically built src template caps.
1264 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1266 2020-07-08 19:02:23 +0800 He Junyan <junyan.he@intel.com>
1268 * gst/vaapi/gstvaapiencode_jpeg.c:
1269 plugin: encode: jpeg: Use the dynamically built src template caps.
1270 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1272 2020-07-08 19:00:39 +0800 He Junyan <junyan.he@intel.com>
1274 * gst/vaapi/gstvaapiencode_mpeg2.c:
1275 plugin: encode: mpeg2: Use the dynamically built src template caps.
1276 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1278 2020-07-08 18:59:18 +0800 He Junyan <junyan.he@intel.com>
1280 * gst/vaapi/gstvaapiencode_h265.c:
1281 plugin: encode: h265: Use the dynamically built src template caps.
1282 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1284 2020-07-08 18:57:26 +0800 He Junyan <junyan.he@intel.com>
1286 * gst/vaapi/gstvaapiencode_h264.c:
1287 plugin: encode: h264: Use the dynamically built src template caps.
1288 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1290 2020-07-08 18:46:58 +0800 He Junyan <junyan.he@intel.com>
1292 * gst/vaapi/gstvaapiencode.h:
1293 * gst/vaapi/gstvaapiencode_h264.c:
1294 * gst/vaapi/gstvaapiencode_h265.c:
1295 * gst/vaapi/gstvaapiencode_jpeg.c:
1296 * gst/vaapi/gstvaapiencode_mpeg2.c:
1297 * gst/vaapi/gstvaapiencode_vp8.c:
1298 * gst/vaapi/gstvaapiencode_vp9.c:
1299 plugin: encode: Store the coded caps in type's init data.
1300 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1302 2020-07-08 18:30:00 +0800 He Junyan <junyan.he@intel.com>
1304 * gst/vaapi/gstvaapipluginutil.c:
1305 * gst/vaapi/gstvaapipluginutil.h:
1306 plugin: util: add helper function build_template_coded_caps_by_codec()
1307 Like build_template_raw_caps_by_codec(), this function can detect and
1308 build the caps for specified codec based on the query of the profiles.
1309 The result is coded caps such as video/x-h265, video/x-h264. The result
1310 can be used as the template of encode's src or decode's sink.
1311 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1313 2020-07-07 17:16:41 +0800 He Junyan <junyan.he@intel.com>
1315 * gst/vaapi/gstvaapiencode.h:
1316 * gst/vaapi/gstvaapipluginutil.c:
1317 * gst/vaapi/gstvaapipluginutil.h:
1318 plugins: utils: rename build_template_caps_by_codec.
1319 Rename the function build_template_caps_by_codec() to the name of
1320 build_template_raw_caps_by_codec(). It can be used to collect all
1321 raw video formats for encode's sink and decode's src.
1322 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1324 2020-07-21 20:14:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1326 * gst/vaapi/gstvaapidecode.c:
1327 * gst/vaapi/gstvaapipluginutil.c:
1328 * gst/vaapi/gstvaapipluginutil.h:
1329 vaapidecode: merge common profiles before setting size range
1330 The synthetic profiles, such as H264 baseline, H265 intra, etc. are
1331 added at the end of processing all available VA profiles. This
1332 generated an non-optimal caps for negotiation, since the synthetic
1333 profiles don't have frame size ranges.
1334 This patch adds those possible synthetic profiles when the associated
1335 profile is processed, with its frame size ranges.
1336 Now allowed sink caps are simpler.
1337 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/363>
1339 2020-07-21 22:05:08 +0800 He Junyan <junyan.he@intel.com>
1341 * gst/vaapi/gstvaapipluginutil.c:
1342 plugin: util: Add the missing DMA buffer input in template caps.
1343 We pass the wrong parameter to gst_vaapi_build_caps_from_formats()
1344 and lose the DMA feature in caps.
1345 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/362>
1347 2020-07-14 18:13:56 +0800 He Junyan <junyan.he@intel.com>
1349 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1350 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1351 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1352 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1353 * gst-libs/gst/vaapi/video-format.c:
1354 * gst/vaapi/gstvaapidecode.c:
1355 libs: decoder: H265: Add MAIN_12 profile supporting.
1356 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1358 2020-07-09 23:07:38 +0800 He Junyan <junyan.he@intel.com>
1360 * gst-libs/gst/vaapi/gstvaapiimage.c:
1361 * gst-libs/gst/vaapi/video-format.c:
1362 video-format: Add P012_LE format.
1363 It can be used as HEVC YUV_4:2:0 12bits stream's decoder output, and
1364 also can be used as the input format for encoding HEVC YUV_4:2:0 12bits
1366 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1368 2020-07-17 00:45:53 +0800 He Junyan <junyan.he@intel.com>
1370 * gst/vaapi/gstvaapidecode.c:
1371 plugin: decode: correct ensure_allowed_sinkpad_caps's caps.
1372 The decode allowed caps returned by ensure_allowed_sinkpad_caps()
1373 contains all profiles of the whole VAAPI, like:
1374 image/jpeg, width=(int)[ 0, 1638 4 ], height=(int)[ 0, 16384 ];
1375 video/mpeg, mpegversion=(int)2, profile=(string){ simple, main },
1376 width=(int)[ 0, 2048 ], height=(int)[ 0, 2048 ]; video/x-h264,
1377 profile=(string){ main, high, constrained-baseline }, width=(int)[ 0,
1378 4096 ], height=(int)[ 0, 4096 ]; video/x-h264, profile=(string){
1379 constrained-high, progressive-high, baseline }; video/x-h265,
1380 profile=(string){ main, main-intra }, width=(int)[ 0, 8192 ],
1381 height=(int)[ 0, 8192 ]; video/x-vp8, width=(int)[ 0, 4096 ],
1382 height=(int)[ 0, 4096 ]; video/x-wmv, wmvversion=(int)3,
1383 format=(string)WVC1, profile=(string)advanced, width=(int)[ 0, 3840 ],
1384 height=(int)[ 0, 3840 ]; video/x-wmv, wmvversion=(int)3,
1385 profile=(string){ simple, main }, width=(int)[ 0, 3840 ],
1386 height=(int)[ 0, 3840 ]
1387 Which is verbose and may have latent problems. It should only contains
1388 the profiles belong to its codec type. For example, h265 should only
1390 video/x-h265, profile=(string){ main, main-intra },
1391 width=(int)[ 0, 8192 ], height=(int)[ 0, 8192 ]
1392 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/361>
1394 2020-07-13 11:06:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1396 * gst/vaapi/gstvaapidecodebin.c:
1397 vaapidecodebin: don't force NV12 since P010_10LE is now possible
1398 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/360>
1400 2020-07-12 20:34:31 +0800 He Junyan <junyan.he@intel.com>
1402 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1403 libs: profile: The VP9 profiles' name should be just "0,1,2,3"
1404 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/357>
1406 2020-07-08 17:33:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1408 * gst-libs/gst/vaapi/gstvaapidecoder.c:
1409 * gst-libs/gst/vaapi/gstvaapidecoder.h:
1410 * gst/vaapi/gstvaapidecode.c:
1411 * gst/vaapi/gstvaapidecode.h:
1412 * tests/internal/simple-decoder.c:
1413 vaapidecode: Remove NO_SURFACE error handling
1414 Since surfaces are not bounded to decoding context it makes no sense
1415 to keep the surface semaphore. This patch removes the handling of
1417 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1419 2020-07-08 17:48:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1421 * gst/vaapi/gstvaapidecode.c:
1422 * gst/vaapi/gstvaapidecode.h:
1423 Revert "vaapidecode: drop non-keyframe in reverse playback"
1424 Since the number of surfaces are not bounded to decoder context,
1425 this hack is no longer needed.
1426 This reverts commit 19c0c8a97385ce119440c4aad2d689fc79297435.
1427 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1429 2019-12-06 14:21:33 +0800 He Junyan <junyan.he@hotmail.com>
1431 * gst-libs/gst/vaapi/gstvaapicontext.c:
1432 libs: decoder: context: remove surfaces binding from context.
1433 The vaCreateContext do not need to specify the surfaces for the
1434 context creation now. So we do not need to bind any surface to the
1435 context anymore. Surfaces should be the resource belong to display
1436 and just be used in encoder/decoder context.
1437 The previous manner has big limitation for decoder. The context's
1438 surface number is decided by dpb size. All the surfaces in dpb will
1439 be attached to a gstbuffer and be pushed to down stream, and the
1440 decoder need to wait down stream free the surface and go on if not
1441 enough surface available. For more and more use cases, this causes
1442 deadlock. For example,
1443 gst-launch-1.0 filesrc location=a.h264 ! h264parse ! vaapih264dec
1444 ! x264enc ! filesink location=./output.h264
1445 will cause deadlock and make the whole pipeline hang.
1446 the x264enc encoder need to cache more than dpb size surfaces.
1447 The best solution is seperating the surfaces number and the dpb size.
1448 dpb and dpb size shoule be virtual concepts maintained by the decoder.
1449 And let the surfaces_pool in context maintain the re-use of all surfaces.
1450 For encoder, the situation is better, all the surfaces are just used
1451 as reference frame and no need to be pushed to down stream. We can
1452 just reserve and set the capacity of the surfaces_pool to meet the
1456 Co-Author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1457 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1459 2020-07-08 17:50:51 +0100 Tim-Philipp Müller <tim@centricular.com>
1462 * scripts/extract-release-date-from-doap-file.py:
1463 meson: set release date from .doap file for releases
1464 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/355>
1466 2020-07-08 11:57:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1468 * gst/vaapi/gstvaapipluginbase.c:
1469 plugins: use VA allocator by default on raw caps
1470 Instead of using dmabuf allocator in source pad, when raw video caps
1471 are negotiated, it uses VA allocator as before, since it is stable
1472 in more use cases, for example transcoding, and more backend drivers.
1473 Dmabuf allocator is only used when dmabuf caps feature is negotiated.
1474 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/352>
1476 2020-06-06 18:47:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1478 * gst/vaapi/gstvaapi.c:
1479 vaapisink: rank it as secondary
1480 iHD doesn't provide a full implemention for rendering surfaces and
1481 i965 has problems in wayland. And I suspect this path is followed
1482 by other driver implementations.
1483 This patch demotes the rank of vaapisink to secondary, so it will
1484 not be autoplugged avoiding bad experience of users.
1485 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/336>
1487 2020-06-19 10:44:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1489 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1490 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1491 libs: decoder: h264, h265: in context at least 16 reference surfaces
1492 Registering only stream's DBP size number of surfaces for decoding VA
1493 surfaces brings issues for certain streams. This change register all
1494 possible number of reference surfaces in a stream, which is 16.
1497 2020-07-04 21:21:57 +0800 He Junyan <junyan.he@intel.com>
1499 * gst/vaapi/gstvaapiencode_h265.c:
1500 plugins: encode: h265: Add profile,level,tier to output caps.
1501 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1503 2020-07-04 21:08:20 +0800 He Junyan <junyan.he@intel.com>
1505 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1506 libs: encoder: h265: init tier to GST_VAAPI_TIER_H265_UNKNOWN.
1507 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1509 2020-07-04 21:05:49 +0800 He Junyan <junyan.he@intel.com>
1511 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1512 libs: encoder: h265: fix a bug to get get_profile_tier_level.
1513 0 is a valid value for h265 tier.
1514 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1516 2020-07-02 19:19:35 +0800 He Junyan <junyan.he@intel.com>
1518 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1519 libs: encoder: h265: no need to check the high compression tune.
1520 The h265 encoder just support tune mode:
1522 (3): low-power - Low power mode
1523 So, no need to check and set the high compression parameters.
1524 And by the way, the current ensure_tuning_high_compression manner
1525 of choosing the hightest profile idc as the best compression profile
1526 is not correct. Unlike h264, in h265 the higher profile idc number
1527 does not mean it has more compression tools, and so it has better
1528 compression performance. It may even be un-compatible with the lower
1529 profile idc. For example, the SCREEN_CONTENT_CODING profile with idc
1530 9 is not compatible with 3D_MAIN profile with idc 8.
1531 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/348>
1533 2020-07-03 02:04:14 +0100 Tim-Philipp Müller <tim@centricular.com>
1538 === release 1.17.2 ===
1540 2020-07-03 00:36:40 +0100 Tim-Philipp Müller <tim@centricular.com>
1545 * gstreamer-vaapi.doap:
1549 2020-06-23 10:20:46 -0400 Thibault Saunier <tsaunier@igalia.com>
1551 * docs/gst_plugins_cache.json:
1552 * gst/vaapi/gstvaapiencode.c:
1553 docs: Mark parent classes as plugin API
1555 2020-06-23 00:07:57 +0200 Mathieu Duponchelle <mathieu@centricular.com>
1558 meson: mark plugins cache target as always stale
1560 2020-06-19 23:34:11 -0400 Thibault Saunier <tsaunier@igalia.com>
1562 * docs/gst_plugins_cache.json:
1563 doc: Stop documenting properties from parents
1565 2020-06-20 00:28:35 +0100 Tim-Philipp Müller <tim@centricular.com>
1570 === release 1.17.1 ===
1572 2020-06-19 19:27:11 +0100 Tim-Philipp Müller <tim@centricular.com>
1577 * gstreamer-vaapi.doap:
1581 2020-06-19 15:21:56 +0100 Tim-Philipp Müller <tim@centricular.com>
1583 * docs/gst_plugins_cache.json:
1584 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1585 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1586 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1587 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1588 Update plugin docs and add more plugins
1589 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/344>
1591 2020-06-11 08:32:05 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
1593 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1594 libs: wayland: display: only handle the first output
1595 Right now, all outputs are handled. The means that the registry object for
1596 all but the last are leaked. As a result the sizes are not used correctly.
1597 With two outputs, at first the mode and physical size of the second output
1598 are used. If the first output changes the mode, then the physical size of
1599 the second output is used in combination with the resolution of the first
1600 output. The resulting pixel aspect ratio is incorrect.
1601 There seems to be no way to determine on which output the window is shown,
1602 so just use the first one to get consistent results.
1603 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/341>
1605 2020-06-11 18:15:17 +0800 He Junyan <junyan.he@hotmail.com>
1607 * gst/vaapi/gstvaapipluginbase.c:
1608 plugins: pluginbase: Do not destroy display when _close()
1609 When the element's state changes to NULL, it can still receive
1610 queries, such as the image formats. The display is needed in such
1611 queries but not well protected for MT safe.
1612 For example, ensure_allowed_raw_caps() may still use the display
1613 while it is disposed by gst_vaapi_plugin_base_close() because of
1615 We can keep the display until the element is destroyed. When the
1616 state changes to NULL, and then changes to PAUSED again, the display
1617 can be correctly set(if type changes), or leave untouched.
1619 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/343>
1621 2020-06-09 21:19:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1623 * gst-libs/gst/vaapi/gstvaapicontext.c:
1624 libs: context: use correct printing modifier
1625 GstVaapiID is an alias of gsize, thus its modifier is platform
1627 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/340>
1629 2020-06-06 00:42:46 +0200 Mathieu Duponchelle <mathieu@centricular.com>
1631 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1632 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1633 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1634 * gst-libs/gst/vaapi/gstvaapifilter.c:
1635 * gst-libs/gst/vaapi/gstvaapivalue.c:
1636 plugins: uddate gst_type_mark_as_plugin_api() calls
1638 2020-03-05 18:12:27 +0800 He Junyan <junyan.he@hotmail.com>
1640 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1641 libs: encoder: h265: Enable tile in VA command.
1642 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1644 2020-03-05 17:56:51 +0800 He Junyan <junyan.he@hotmail.com>
1646 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1647 libs: encoder: h265: Add ensure_tile to calculate tiles.
1648 We need consider tiles and slices together, separate tiles uniformly
1649 and then assign slices uniformly to each tiles.
1650 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1652 2020-04-30 14:19:29 +0800 He Junyan <junyan.he@hotmail.com>
1654 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1655 * gst-libs/gst/vaapi/gstvaapidisplay.h:
1656 libs: display: add a quirk for iHD driver tile encoding.
1657 The iHD driver has a requirement that one slice can not span tiles
1658 when tile is enabled, which is not required by hevc spec.
1659 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1661 2020-03-05 17:40:43 +0800 He Junyan <junyan.he@hotmail.com>
1663 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1664 libs: encoder: h265: Add tile info to bitstream.
1665 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1667 2020-03-05 17:29:41 +0800 He Junyan <junyan.he@hotmail.com>
1669 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1670 libs: encoder: h265: promote level if tile is enabled.
1671 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1673 2020-03-05 17:07:28 +0800 He Junyan <junyan.he@hotmail.com>
1675 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1676 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
1677 libs: encoder: h265: Add num-tile-cols/rows properties.
1678 These properties are used for support of tile encoding. We just
1679 support uniform mode of tile encoding, that is, separating picture
1680 equally by (num-tile-cols X num-tile-rows).
1681 According to HEVC spec A1, the max number of tiles in column is 20
1682 and in rows is 22, so add two constant definitions.
1683 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1685 2020-03-05 16:21:24 +0800 He Junyan <junyan.he@hotmail.com>
1687 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1688 libs: encoder: h265: extract slice creation from add_slice_headers
1689 extract slice creation details from add_slice_headers, and let the
1690 add_slice_headers just focuses on calculating slice start address
1692 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1694 2020-03-05 12:44:45 +0800 He Junyan <junyan.he@hotmail.com>
1696 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1697 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1698 libs: encoder: Add a helper function to check the tile support.
1699 Encoding by tiles separation now is a very common feature for all
1700 relative new codecs, such as HEVC, AV1, and VP9. Just make this
1701 check as a common helper function of the encoder base class.
1702 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1704 2020-05-13 18:02:07 +0800 He Junyan <junyan.he@hotmail.com>
1706 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1707 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1708 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1709 * gst-libs/gst/vaapi/gstvaapiutils.c:
1710 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1711 libs: decoder: H265: Add SCC_MAIN_444_10 profile support.
1712 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1714 2020-05-13 16:05:59 +0800 He Junyan <junyan.he@hotmail.com>
1716 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1717 libs: decoder: update reference list for SCC.
1718 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1720 2020-05-13 15:46:29 +0800 He Junyan <junyan.he@hotmail.com>
1722 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1723 libs: decoder: H265: Fill picture and slice SCC parameters.
1724 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1726 2020-05-13 15:00:53 +0800 He Junyan <junyan.he@hotmail.com>
1728 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1729 libs: util: H265: recognize the SCC profiles.
1730 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1732 2020-05-13 14:53:46 +0800 He Junyan <junyan.he@hotmail.com>
1734 * gst-libs/gst/vaapi/gstvaapiprofile.c:
1735 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1736 * gst-libs/gst/vaapi/gstvaapiutils.c:
1737 libs: profile: Add screen extended main/main10/main444 define.
1738 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1740 2020-04-03 14:53:40 +0800 He Junyan <junyan.he@hotmail.com>
1742 * gst-libs/gst/vaapi/gstvaapiencoder.c:
1743 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1744 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1745 * gst/vaapi/gstvaapiencode_h265.c:
1746 libs: encoder: h265: Add support for MAIN 4:2:2 10 profile.
1747 Using YUY2 as the input of the encoder can generate main 4:2:2 bit
1748 streams and using Y210 as the input of the encoder can generate main
1749 4:2:2 10 bit streams.
1750 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1752 2020-05-29 16:40:20 +0800 He Junyan <junyan.he@hotmail.com>
1754 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1755 libs: encoder: h265: Use correct index for SubWidthC and SubHeightC.
1756 We need to use the chroma_format_idc as the index for getting the
1757 SubWidthC and SubHeightC values as the spec 6.1(table 6-1) defines.
1758 The wrong SubWidthC or SubHeightC make us calculate a wrong right
1759 or bottom offset for crop size and generate garbage in output.
1760 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1762 2020-05-29 15:37:24 +0800 He Junyan <junyan.he@hotmail.com>
1764 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1765 libs: encoder: h265: Fix chrome idc for 444 10 bits
1766 GST_VAAPI_CHROMA_TYPE_YUV444_10BPP should also set chroma_format_idc
1767 to 3 as GST_VAAPI_CHROMA_TYPE_YUV444 does.
1768 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1770 2020-06-03 18:37:22 -0400 Thibault Saunier <tsaunier@igalia.com>
1773 doc: Require hotdoc >= 0.11.0
1775 2020-06-03 18:49:53 -0400 Thibault Saunier <tsaunier@igalia.com>
1777 * gst/vaapi/gstvaapipostproc.c:
1778 doc: Fix wrong link to GstVideoDirectionMethod
1780 2020-06-03 17:38:10 -0400 Thibault Saunier <tsaunier@igalia.com>
1782 * docs/gst_plugins_cache.json:
1783 * meson_options.txt:
1784 docs: Update plugin cache with the new format
1785 And fix the default URL which should not be inside quotes.
1787 2020-06-03 17:37:48 -0400 Thibault Saunier <tsaunier@igalia.com>
1789 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1790 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1791 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1792 * gst-libs/gst/vaapi/gstvaapifilter.c:
1793 * gst-libs/gst/vaapi/gstvaapivalue.c:
1794 * gst/vaapi/gstvaapipostproc.c:
1795 Use gst_type_mark_as_plugin_api() for all non-element plugin types
1797 2020-05-23 22:09:17 +0800 He Junyan <junyan.he@hotmail.com>
1799 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
1800 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
1801 * gst-libs/gst/vaapi/gstvaapicontext.h:
1802 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1803 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1804 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
1805 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
1806 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
1807 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
1808 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
1809 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1810 * gst-libs/gst/vaapi/gstvaapiimage.h:
1811 * gst-libs/gst/vaapi/gstvaapiobject.c:
1812 * gst-libs/gst/vaapi/gstvaapiobject.h:
1813 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
1814 * gst-libs/gst/vaapi/gstvaapiprofile.h:
1815 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
1816 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
1817 * gst-libs/gst/vaapi/gstvaapisurface.h:
1818 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
1819 * gst-libs/gst/vaapi/gstvaapivideopool.c:
1820 * gst-libs/gst/vaapi/meson.build:
1821 libs: delete all gstvaapiobject related files.
1822 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1824 2020-05-23 20:48:54 +0800 He Junyan <junyan.he@hotmail.com>
1826 * gst-libs/gst/vaapi/gstvaapisurface.c:
1827 libs: surface: return fail immediately if can not create subpicture
1828 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1830 2020-05-23 14:00:58 +0800 He Junyan <junyan.he@hotmail.com>
1832 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
1833 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
1834 * gst-libs/gst/vaapi/gstvaapisurface.c:
1835 * tests/internal/image.c:
1836 libs: subpicture: Make subpicture a standard GstMiniObject.
1837 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1839 2020-05-26 02:19:15 +0800 He Junyan <junyan.he@hotmail.com>
1841 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1842 libs: decoder: h264: Add ref flags for splited field.
1843 When split one frame into fields, the second field should also
1844 copy the reference flags.
1845 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/333>
1847 2020-05-25 15:46:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1849 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1850 libs: decoder: h264: disallow multiple slice group
1851 As far as we know there are no VAAPI drivers supporting FMO, which
1852 migth be used in baseline streams.
1853 This commit is a continuation of
1854 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328
1855 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/332>
1857 2020-05-20 10:50:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1859 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1860 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
1861 * gst/vaapi/gstvaapidecode.c:
1862 * gst/vaapi/gstvaapidecode_props.c:
1863 * gst/vaapi/gstvaapidecode_props.h:
1864 vaapidecoder: h264: remove baseline as constrained property
1865 From now on always the baseline is going to be treated as constrained without
1866 need of setting a property.
1867 Since the property was added along the development cycle (1.17 / commit
1868 866a9f06) and never released, we assume that it is safe to remove it.
1870 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328>
1872 2020-05-21 11:37:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1875 README: update VP9 decoder and encoder
1876 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/330>
1878 2020-05-21 13:42:47 +0800 Haihao Xiang <haihao.xiang@intel.com>
1880 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1881 vaapiencoder_h264: set direct_spatial_mv_pred_flag to true by default
1882 This flag is set to true by default in both MediaSDK and FFmpeg-vaapi,
1883 so let's align this plugin with other libraries / softwares.
1884 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/329>
1886 2020-05-18 18:29:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1888 * gst/vaapi/gstvaapivideobufferpool.c:
1889 vaapivideobufferpool: fix meta overwrite
1890 commit 7ac2a207 added a regression by erroneously assumed that
1891 GstVaapiVideoMeta is actually a GstMeta, which is not.
1892 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/327>
1894 2020-05-17 09:55:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1896 * gst/vaapi/gstvaapivideobufferpool.c:
1897 * gst/vaapi/gstvaapivideometa_texture.c:
1898 * gst/vaapi/gstvaapivideometa_texture.h:
1899 vaapivideopool: Set pooled flag to added metas.
1900 So this could hint filters how to use these metas.
1901 Had to change the return value for texutre upload meta in order
1903 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/326>
1905 2020-05-16 20:49:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1907 * gst-libs/gst/vaapi/gstvaapicontext.c:
1908 * gst-libs/gst/vaapi/gstvaapidisplay.c:
1909 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
1910 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
1911 * gst-libs/gst/vaapi/gstvaapisurface.c:
1912 libs: use array_unref() rather than array_free()
1913 It is more convinience and thread-safe.
1914 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/325>
1916 2020-04-10 22:20:35 +0800 He Junyan <junyan.he@hotmail.com>
1918 * gst/vaapi/gstvaapi.c:
1919 plugin: use register_type to replace get_type for encode init.
1920 xxx_register_type will detect the template sink caps and is needed
1921 to be called at init time.
1922 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1924 2020-04-10 22:05:50 +0800 He Junyan <junyan.he@hotmail.com>
1926 * gst/vaapi/gstvaapiencode_vp9.c:
1927 * gst/vaapi/gstvaapiencode_vp9.h:
1928 plugins: encode: Modify sink template of vp9 encode.
1929 Use gst_vaapi_detect_codec_caps to get more precise template caps.
1930 Also implement gst_vaapiencode_vp9_register_type, which should be
1931 called at plugin register time.
1932 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1934 2020-04-10 22:05:18 +0800 He Junyan <junyan.he@hotmail.com>
1936 * gst/vaapi/gstvaapiencode_vp8.c:
1937 * gst/vaapi/gstvaapiencode_vp8.h:
1938 plugins: encode: Modify sink template of vp8 encode.
1939 Use gst_vaapi_detect_codec_caps to get more precise template caps.
1940 Also implement gst_vaapiencode_vp8_register_type, which should be
1941 called at plugin register time.
1942 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1944 2020-04-10 22:04:34 +0800 He Junyan <junyan.he@hotmail.com>
1946 * gst/vaapi/gstvaapiencode_mpeg2.c:
1947 * gst/vaapi/gstvaapiencode_mpeg2.h:
1948 plugins: encode: Modify sink template of mpeg2 encode.
1949 Use gst_vaapi_detect_codec_caps to get more precise template caps.
1950 Also implement gst_vaapiencode_mpeg2_register_type, which should be
1951 called at plugin register time.
1952 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1954 2020-04-10 22:03:49 +0800 He Junyan <junyan.he@hotmail.com>
1956 * gst/vaapi/gstvaapiencode_h265.c:
1957 * gst/vaapi/gstvaapiencode_h265.h:
1958 plugins: encode: Modify sink template of h265 encode.
1959 Use gst_vaapi_detect_codec_caps to get more precise template caps.
1960 Also implement gst_vaapiencode_h265_register_type, which should be
1961 called at plugin register time.
1962 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1964 2020-04-10 22:00:38 +0800 He Junyan <junyan.he@hotmail.com>
1966 * gst/vaapi/gstvaapiencode_h264.c:
1967 * gst/vaapi/gstvaapiencode_h264.h:
1968 plugins: encode: Modify sink template of h264 encode.
1969 Use gst_vaapi_detect_codec_caps to get more precise template caps.
1970 Also implement gst_vaapiencode_h264_register_type, which should be
1971 called at plugin register time.
1972 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1974 2020-04-10 22:11:34 +0800 He Junyan <junyan.he@hotmail.com>
1976 * gst/vaapi/gstvaapiencode_jpeg.c:
1977 * gst/vaapi/gstvaapiencode_jpeg.h:
1978 plugins: encode: Modify sink template of jpeg encode.
1979 Use gst_vaapi_detect_codec_caps to get more precise template caps.
1980 Also implement gst_vaapiencode_jpeg_register_type, which should be
1981 called at plugin register time.
1982 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1984 2020-04-23 00:02:02 +0800 He Junyan <junyan.he@hotmail.com>
1986 * gst/vaapi/gstvaapiencode.h:
1987 plugin: encode: add a helper macro to register encode type.
1988 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1990 2020-04-10 21:44:05 +0800 He Junyan <junyan.he@hotmail.com>
1992 * gst/vaapi/gstvaapipluginutil.c:
1993 * gst/vaapi/gstvaapipluginutil.h:
1994 plugins: util: Add a helper function to detect supported caps.
1995 This helper function iterate all profiles and entrypoints belong
1996 to the specified codec, query the VAConfigAttribRTFormat and list
1997 all possible video formats.
1998 This function is used by each codec to get the template sink caps
1999 (for encode) or src caps(for decode) at register time, when just
2000 all possible formats are listed and no need to be very accurate.
2001 So there is no context created for the performance reason. Most
2002 codecs just use YUV kinds of formats as the input/output, so we do
2003 not include RGB kinds of formats. User can specified more formats
2004 in extra_fmts(For example, jpeg may need BGRA) if needed.
2005 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2007 2020-04-10 21:27:32 +0800 He Junyan <junyan.he@hotmail.com>
2009 * gst/vaapi/gstvaapiencode.c:
2010 * gst/vaapi/gstvaapipluginutil.c:
2011 * gst/vaapi/gstvaapipluginutil.h:
2012 plugin: encode: extract the allowed caps maker as a helper function.
2013 Extract all logic about making caps for encode's sink as a standalone
2014 helper function. It can be reused.
2015 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2017 2020-04-10 21:21:43 +0800 He Junyan <junyan.he@hotmail.com>
2019 * gst-libs/gst/vaapi/video-format.c:
2020 * gst-libs/gst/vaapi/video-format.h:
2021 libs: video-format: add a helper function of get_formats_by_chroma.
2022 The function iterates all supported video formats and returns the
2023 formats belong to the specified chroma type.
2024 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2026 2020-05-16 21:03:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2028 * gst-libs/gst/vaapi/gstvaapitexture.c:
2029 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2030 libs: texture: remove unused headers include
2031 This is continuation of
2032 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317
2033 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/324>
2035 2020-05-16 19:58:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2037 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
2038 * gst-libs/gst/vaapi/gstvaapiimage.h:
2039 * gst-libs/gst/vaapi/gstvaapisurface.h:
2040 libs: removed duplicated function declarations
2041 Some headers had duplicated inlined function declaration. This was
2042 for gtkdoc, but now GStreamer uses hotdoc and the internal library
2043 documentation is not generated. So let's remove these extra lines.
2044 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/323>
2046 2020-04-18 19:32:24 +0800 He Junyan <junyan.he@hotmail.com>
2048 * gst-libs/gst/vaapi/gstvaapitexture.c:
2049 * gst-libs/gst/vaapi/gstvaapitexture.h:
2050 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
2051 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
2052 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2053 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
2054 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2055 * gst/vaapi/gstvaapivideometa_texture.c:
2056 * tests/internal/test-textures.c:
2057 libs: texture: Make texture a standard GstMiniObject.
2058 We store GstVaapiTextureGLX and GstVaapiTextureEGL's private data in
2059 the qdata of miniobject and avoid extending the base texture class.
2060 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317>
2062 2020-04-26 12:33:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2066 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/320>
2068 2020-04-21 18:00:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2070 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
2071 libs: display: drm: use g_strcmp0 to be null safe
2072 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/321>
2074 2020-04-26 13:30:16 +0800 Haihao Xiang <haihao.xiang@intel.com>
2076 * gst/vaapi/gstvaapipluginutil.c:
2077 vaapipluginutil: Use GST_VAAPI_DISPLAY_TYPE_DRM for Mesa3D GBM
2078 We may build this plugin with window system support but run it without
2079 window system. Without this patch, the following pipeline will trigger a
2080 segfault when running it without window system.
2081 gst-launch-1.0 filesrc location=input.264 ! h264parse ! vaapih264dec ! fakesink
2082 Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/319>
2084 2020-04-21 11:16:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2087 build: use join_paths() for driverdir
2089 2020-04-21 09:04:51 +0000 Veerabadhran G <vegopala@amd.com>
2092 README: Update supported hardware
2093 Added the AMD hardware list to the "Hardware Requirements" section.
2095 2020-04-04 13:58:00 +0200 He Junyan <junyan.he@hotmail.com>
2097 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2098 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
2099 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2100 libs: bufferproxy: remove GstMemory reference
2101 Since bufferproxy and surface are not referenced circularly, there's
2102 no need to keep, in the buffer proxy, a reference to the GstMemory
2103 where it is held. This patch removes that handling.
2105 2020-03-15 23:29:05 +0800 He Junyan <junyan.he@hotmail.com>
2107 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2108 * gst-libs/gst/vaapi/gstvaapisurface.c:
2109 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2110 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
2111 * gst/vaapi/gstvaapivideomemory.c:
2112 libs,plugin: break surface-bufferproxy circular reference
2113 The bufferproxy may reference the surface and the surface may also
2114 reference the bufferproxy, producing a circular reference, which might
2115 lead to serious resource leak problems.
2116 Now make the relationship clearer, the bufferproxy's references is
2117 transfered to surface, while bufferproxy just keeps the surface's
2118 address without increasing its reference count.
2119 The surface can be created through a bufferproxy like in
2120 gst_vaapi_surface_new_with_dma_buf_handle(), and the surface might
2121 get its bufferproxy via gst_vaapi_surface_get_dma_buf_handle(). In
2122 both cases the surface holds a bufferproxy's reference.
2124 2020-04-03 18:43:52 +0200 He Junyan <junyan.he@hotmail.com>
2126 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2127 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2128 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2129 libs: bufferproxy: rename parent memeber as surface
2131 2020-03-15 22:07:31 +0800 He Junyan <junyan.he@hotmail.com>
2133 * gst/vaapi/gstvaapivideobufferpool.c:
2134 plugin: bufferpool: use hashmap to cache dmabuf mem-surface
2135 The old way of refer memory by bufferproxy is not a good one, since it
2136 make the logic error prone.
2137 Now it is established a map between surface-bufferproxy and its GstMemory,
2138 caching the memory bound by a surface looked for the specified surface.
2140 2020-03-15 21:50:24 +0800 He Junyan <junyan.he@hotmail.com>
2142 * gst/vaapi/gstvaapivideobufferpool.c:
2143 * gst/vaapi/gstvaapivideobufferpool.h:
2144 plugin: bufferpool: Delete ACQUIRE_FLAG_NO_ALLOC flag.
2145 Delete the GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC flag.
2146 In fact, no one is using that flag, and all vaapi buffers should
2147 have GstVaapiVideoMeta.
2149 2020-02-13 09:43:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2151 * gst/vaapi/gstvaapipostproc.c:
2152 * gst/vaapi/gstvaapipostproc.h:
2153 vaapipostproc: enable HDR10 tone mapping
2155 2020-02-13 09:00:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2157 * gst-libs/gst/vaapi/gstvaapifilter.c:
2158 * gst-libs/gst/vaapi/gstvaapifilter.h:
2159 libs: filter: HDR10 tone mapping support
2160 Add support for HDR10 tone mapping (since VA-API 1.4.0).
2162 2020-04-02 15:14:15 +0800 He Junyan <junyan.he@hotmail.com>
2164 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2165 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2166 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2167 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2168 * gst/vaapi/gstvaapiencode_h265.c:
2169 libs: encoder: h265: Support MAIN 4:4:4 10 profile.
2170 Using Y410 as the input of the encoder can generate main_444_10 bit
2173 2020-04-02 15:19:41 +0800 He Junyan <junyan.he@hotmail.com>
2175 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2176 libs: encoder: fix an inexact trace info in chroma type check.
2178 2020-03-31 12:22:31 +0800 Haihao Xiang <haihao.xiang@intel.com>
2180 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2181 libs: encoder: make sure format array is not NULL when returning TRUE
2182 This fixed segfault when running the pipeline below with iHD driver
2183 (commit efe5e9a) on ICL
2184 gst-launch-1.0 videotestsrc ! vaapivp9enc tune=low-power ! vaapivp9dec ! \
2187 2020-03-18 13:28:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2189 * gst-libs/gst/vaapi/gstvaapidecoder.h:
2190 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2191 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
2192 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
2193 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
2194 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
2195 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
2196 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
2197 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
2198 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2199 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
2200 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
2201 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
2202 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
2203 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
2204 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2205 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2206 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2207 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
2208 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
2209 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
2210 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2211 * gst-libs/gst/vaapi/gstvaapifilter.h:
2212 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
2213 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2214 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
2215 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
2216 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
2217 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
2218 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
2219 libs: extend g_autoptr support
2221 2020-03-26 22:40:40 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2223 * gst/vaapi/gstvaapivideometa.c:
2224 vaapivideometa: remove compiler warning
2226 2020-03-22 20:59:20 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2229 * meson_options.txt:
2230 build: Add meson's option package-origin.
2231 This options is added to synchronize with other gstreamer packages
2232 build configuration.
2233 Though, to avoid breaking distro configuration it is set, as default,
2234 the issues gitlab's url, instead of the used string
2235 "Unkown package origin".
2236 Also, set_quoted is used for string based cdata.
2238 2020-02-25 13:45:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2240 * gst/vaapi/gstvaapipostproc.c:
2241 vaapipostproc: deprecate format, width and size parameters
2242 Since they should only be controlled by caps negotiation.
2244 2020-03-18 16:41:01 +0800 He Junyan <junyan.he@hotmail.com>
2246 * gst-libs/gst/vaapi/gstvaapiprofile.c:
2247 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2248 * gst/vaapi/gstvaapidecode.c:
2249 libs,plugins: decoder: Add -intra profile support for hevc.
2250 In hevc, we can consider the -intra profile a subset of the none
2251 -intra profile. The -intra profiles just contain I frames and we
2252 definitely can use the none -intra profiles's context to decode
2254 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2256 2020-03-04 12:35:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2258 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2259 libs: encoder: h265: support ICQ/QVBR BRC
2260 Enable support for ICQ and QVBR bitrate control.
2261 The code is essentially the same for h264 ICQ/QVBR support
2262 which was added in commit 9e0c133a2403.
2264 2020-03-19 11:19:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
2266 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2267 libs: encoder: set VA HRD param before RC param
2268 This is a workaround for intel-media-driver bug
2269 https://github.com/intel/media-driver/issues/865
2270 The driver will force the RC method to CBR for HEVCe
2271 when it parses the HRD param. Thus, any RC method
2272 param submitted "prior" to the HRD param will be lost.
2273 Therefore, VBR, ICQ and QVBR for HEVCe can't be
2274 effectively enabled if the RC method param "precedes"
2276 To work around this issue, set the HRD param before
2277 the RC method param so the driver will parse the RC
2278 method param "after" the HRD param.
2279 Afaict, other codecs in the driver (and other drivers)
2280 do not appear to be dependent on the order of HRD and
2281 RC param submission.
2283 2019-11-25 14:16:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
2285 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2286 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2287 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2288 vaapijpegenc: Add a quantization quirk for iHD driver
2289 iHD driver shifts the value by 50 when calculating quantization for JPEG
2290 encoding, so we should add 50 in this plugin for iHD driver too.
2292 2020-03-13 21:49:15 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2294 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2295 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
2296 * gst-libs/gst/vaapi/gstvaapipixmap.c:
2297 * gst-libs/gst/vaapi/gstvaapipixmap.h:
2298 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
2299 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
2300 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
2301 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2302 * gst-libs/gst/vaapi/gstvaapiwindow.h:
2303 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2304 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
2305 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2306 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
2307 * gst-libs/gst/vaapi/meson.build:
2309 * tests/internal/output.c:
2310 * tests/internal/output.h:
2311 * tests/internal/simple-decoder.c:
2312 * tests/internal/test-decode.c:
2313 libs: remove GstVaapiPixmap
2314 GstVaapiPixmap is an abstract base class which only implementation
2315 were GstVaapiPixmapX11. This class were used for a special type of
2316 rendering in the tests apps, utterly unrelated in GStreamer.
2317 Since gstreamer-vaapi is no longer a general-user wrapper for VA-API
2318 we should remove this unused API.
2319 This removal drops libxrender dependency.
2321 2020-03-17 18:51:19 +0800 He Junyan <junyan.he@hotmail.com>
2323 * gst-libs/gst/vaapi/gstvaapiutils.c:
2324 libs: utils: Add HEVC Main444 sting in string_of_VAProfile
2325 HEVCMain444_10 is already a supported profile and misses the strings.
2327 2020-03-17 12:47:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2329 * gst/vaapi/gstvaapi.c:
2330 plugin: don't error if cannot create display
2331 This might generated errors on automatic tools such as CI. Let's
2332 rather just raise a warning and let continue.
2334 2020-03-09 01:52:57 +0800 He Junyan <junyan.he@hotmail.com>
2336 * tests/check/meson.build:
2337 test: fix a ninja test failure for vaapioverlay.
2338 That test case only works with drm display, so the build such as
2339 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2341 gets a failure when run ninja test. Just enable this test when drm
2344 2020-02-07 23:56:13 +0800 He Junyan <junyan.he@hotmail.com>
2346 * gst-libs/gst/vaapi/gstvaapivideopool.c:
2347 libs: videopool: fix a condition race for pool allocate.
2349 2020-03-05 13:22:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2351 * gst/vaapi/gstvaapivideobufferpool.c:
2352 vaapivideobufferpool: force video meta if sizes are different
2353 The strides and offsets could be the same, but the allocation
2354 size might be different (e.g. alignment). Thus, ensure we also
2355 set the flag to copy from VA memory to system memory when alloc
2359 2020-03-05 14:18:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2361 * gst/vaapi/gstvaapidecode.c:
2362 vaapidecode: don't set base sink caps twice
2363 Base class's sink pad caps are already set when calling set_format().
2364 There's no need to call it again in gst_vaapidecode_negotiate().
2366 2020-03-05 13:26:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2368 * gst/vaapi/gstvaapidecode.c:
2369 vaapidecode: unlock stream if caps update fails
2370 If caps update fail a dead lock occurs since the stream mutex is not
2373 2020-03-03 15:24:32 +0800 Xu Guangxin <guangxin.xu@intel.com>
2375 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2376 libs: decoder: h265: parser state after update dependent slice
2377 If the dependent_slice_segment_flag is true, most slice info derived from last slice.
2378 So we need check the slice type after we call populate_dependent_slice_hdr
2380 2020-02-16 12:21:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2382 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2383 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2384 libs: display: force RGBA image format for i965 driver
2385 Since commit 32bf6f1e GLTextureUpload is broken because i965
2386 doesn't report properly RGBA support. It could be possible to use RGBx
2387 but GLTextureUpload only regotiates RGBA.
2388 The simplest fix to this regression is adding synthetically the RGBA
2389 format in the internal format map.
2391 2020-02-14 19:30:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2393 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2394 libs: display: iterate all quirks table
2395 Instead of break at the fist foud quirk in the table, iterate all over
2396 so it would be feasible to add several quirks for one driver per
2399 2020-02-25 12:05:28 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2401 * gst-libs/gst/vaapi/gstvaapifilter.c:
2402 libs: filter: handle RGB to/from YUV color primary driver quirk
2403 The intel-media-driver (iHD) can't convert output color
2404 primaries when doing YUV to/from RGB CSC. Thus, we must
2405 keep the output color primaries the same as the input
2406 color primaries for this case.
2409 2020-02-25 12:00:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2411 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2412 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2413 libs: display: add YUV to/from RGB color primary quirk
2414 The intel-media-driver (iHD) can't convert output color
2415 primaries when doing YUV to/from RGB CSC.
2417 2020-02-28 11:33:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2419 * gst/vaapi/gstvaapivideomemory.c:
2420 Revert "vaapivideomemory: Store surface allocation flags."
2421 This reverts commit dd428cc4a12c2d5c694fcd3303811cf486002c9d because
2422 it rewrites the buffer size whilst surface allocation flags are
2423 stored when allocator_params_init() is called since fab890ce.
2426 2020-01-27 18:19:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2428 * gst/vaapi/gstvaapivideomemory.c:
2429 vaapivideomemory: Try surface with allocation flags.
2430 When a vaapi allocator is instantiated, it first try to generate a
2431 surface with the specified configuration.
2432 This patch adds, in this tried buffer, the requested allocation flags.
2434 2020-01-27 18:10:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2436 * gst/vaapi/gstvaapivideomemory.c:
2437 vaapivideomemory: Store surface allocation flags.
2438 Store surface allocation flags passed to the vaapi allocator in
2439 GObject's qdata, because it might be used by the vaapivideobufferpool
2440 when recreating the allocator given any resolution change.
2442 2020-01-24 19:32:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2444 * gst-libs/gst/vaapi/gstvaapisurface.c:
2445 * gst-libs/gst/vaapi/gstvaapisurface.h:
2446 libs: surface: Add hints to allocation flags.
2447 When creating surfaces it is possible to pass to VA hints of its usage,
2448 so the driver may do some optimizations.
2449 This commit adds the handling of encoding/decoding hints.
2451 2020-01-24 22:08:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2453 * gst-libs/gst/vaapi/gstvaapicontext.c:
2454 * gst-libs/gst/vaapi/gstvaapisurface.c:
2455 * gst-libs/gst/vaapi/gstvaapisurface.h:
2456 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
2457 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2458 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2459 * gst-libs/gst/vaapi/gstvaapiwindow.c:
2460 * tests/internal/test-filter.c:
2461 * tests/internal/test-surfaces.c:
2462 libs: surface: surfacepool: Add allocation flags in constructors.
2464 2020-02-22 16:06:13 +0800 He Junyan <junyan.he@hotmail.com>
2467 build: let the build fail if none if X11, wayland or drm.
2468 In fact, gst_vaapi_create_test_display only test x11, wayland and
2469 drm, no glx and egl entries. So if none of them is enabled, no
2470 vaapi element can be detected.
2472 2020-02-21 00:58:47 +0800 He Junyan <junyan.he@hotmail.com>
2474 * tests/internal/test-display.c:
2475 test: avoid unused warning for test-display
2476 meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2477 -Dwith_glx=no buildir
2478 generate unused warnings.
2480 2020-02-21 00:50:47 +0800 He Junyan <junyan.he@hotmail.com>
2483 build: fix meson build error when without x11.
2484 meson -Dwith_x11=no build_dir
2485 can not success build the project because the glx is still enabled.
2486 We need to disable GLX when X11 is disabled.
2488 2020-02-14 19:53:09 +0800 Haihao Xiang <haihao.xiang@intel.com>
2490 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2491 libs: h265enc: Set max_transform_hierarchy_depth_{inter, intra} to 2
2492 Intel HW has limitation on max_transform_hierarchy_depth_inter and
2493 max_transform_hierarchy_depth_intra (see [1]). We can provide a quirk for
2494 other HWs if other HWs may support other values
2495 [1] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol10-hevc.pdf
2497 2020-02-21 07:37:50 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2499 * gst/vaapi/gstvaapipostproc.c:
2500 * gst/vaapi/gstvaapipostprocutil.c:
2501 vaapipostproc: do not compensate for crop/direction if no VPP
2502 If we do not have functional VPP, then cropping and video
2503 direction is non-functional and we should avoid calling
2504 any of the gst_vaapi_filter* APIs.
2506 2020-02-21 06:54:47 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2508 * gst/vaapi/gstvaapipostproc.c:
2509 vaapipostproc: only set VPP colorimetry when VPP is available
2510 If we don't have functional vpp then we should not call
2511 gst_vaapi_filter_set_colorimetry.
2513 2020-02-16 01:25:37 +0800 He Junyan <junyan.he@hotmail.com>
2515 * gst/vaapi/gstvaapivideobufferpool.c:
2516 * gst/vaapi/gstvaapivideomemory.c:
2517 * gst/vaapi/gstvaapivideomemory.h:
2518 videobufferpool: don't reset surface when created internally
2519 The bug fixing, in commit 89f202ea, just considers the case when
2520 surface's DMABuf is set through gst_buffer_pool_acquire_buffer(),
2521 which is typically a decoder's behavior. But vaapipostproc doesn't
2522 provide any surface when calling gst_buffer_pool_acquire_buffer(),
2523 thus a surface is created when GstMemory is allocated.
2524 If the surface proxy in buffer's meta is reset at
2525 buffer_pool_reset_buffer(), that surface will be destroyed and it
2526 won't be available anymore. But GstBuffers are cached in the buffer
2527 pool and they are reused again, hence only those images are rendered
2531 2020-02-16 17:19:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2533 * gst-libs/gst/vaapi/gstvaapiblend.c:
2534 * gst-libs/gst/vaapi/gstvaapifilter.c:
2535 * gst/vaapi/gstvaapi.c:
2536 libs: blend: filter: handle finalize() if display isn't assigned
2537 I've just discovered iHD driver in Skylake doesn't have VideoProc
2538 entry point, hence, in this platform, when vaapioverlay is tried to be
2539 registered, critical warnings are raised because blend doesn't have a
2541 As it is possible to have drivers without EntryPointVideoProc it is
2542 required to handle it gracefully. This patch does that: only tries to
2543 register vaapioverlay if the testing display has VPP and finalize()
2544 vmethods, in filter and blend, bail out if display is NULL.
2546 2020-02-15 11:02:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2548 * gst-libs/gst/vaapi/gstvaapifilter.c:
2549 * gst-libs/gst/vaapi/gstvaapiutils.c:
2550 libs: filter: guard all color properties to VA-API 1.2.0
2551 Older VA-API (0.39.0) doesn't have VAProcColorProperties.
2552 Thus, guard all colorimetry -> VA-API support to version
2556 2020-02-17 08:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2558 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2559 libs: decoder: h265: set parser info state at decoding codec data
2560 Commit 1168d6d5 showed up a regression: decode_sps() stores the unit's
2561 parser info in sps array. If that parser info comes from decoding
2562 codec data, that parser info will have an undefined state which might
2564 This patch sets the parser info state, at decoding codec data, with
2565 the internal parser state. This is similar with h264 decoder apprach.
2566 Original-patch-by: Xu Guangxin <guangxin.xu@intel.com>
2568 2020-02-07 15:24:18 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2570 * gst/vaapi/gstvaapipostproc.c:
2571 vaapipostproc: demote log message to trace level
2573 2020-02-14 14:45:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2575 * gst-libs/gst/vaapi/video-format.c:
2576 libs: video-format: set general vaapi log category
2577 Instead of logging in an unspecified category, set the default vaapi.
2579 2020-02-15 11:44:48 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2581 * gst-libs/gst/vaapi/gstvaapiutils.c:
2582 libs: utils: guard EncSliceLP for VA-API < 0.39.1
2585 2020-02-14 16:17:04 +0800 Haihao Xiang <haihao.xiang@intel.com>
2587 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2588 libs: h265enc: Set VA_PICTURE_HEVC_INVALID flag for invalid picture
2590 2020-02-11 11:31:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2592 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
2593 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2594 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2595 libs: remove crumbs of libva < 0.39
2596 All these guarded code seem like leftovers of commit 920b1ec7a. This
2597 patch completes that missing clean up.
2599 2020-02-11 00:38:40 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2601 * gst-libs/gst/vaapi/gstvaapifilter.c:
2602 * gst-libs/gst/vaapi/gstvaapiutils.c:
2603 libs: VA explicit color standard not supported until 1.2.0
2604 VAProcColorStandardExplicit and associated VAProcColorProperties
2605 (primaries, transfer and matrix) are not supported until
2607 Use VAProcColorStandardNone instead of VAProcColorStandardExplicit
2611 2020-02-10 09:31:15 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2613 * gst-libs/gst/vaapi/gstvaapiutils.c:
2614 libs: utils: WA: use explicit for sRGB colorimetry
2615 Addresses #228 on iHD side. It seems iHD can't handle
2616 VAProcColorStandardSRGB in all situations for vpp. But
2617 it has no problem when we specify the sRGB parameters
2618 via VAProcColorStandardExplicit parameters.
2620 2020-02-07 11:25:31 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2622 * gst-libs/gst/vaapi/gstvaapifilter.c:
2623 libs: filter: set vpp input/output color range
2624 We've always sent VA_SOURCE_RANGE_UNKNOWN to the driver.
2625 And, the [iHD] driver essentially computes the same color
2626 range as gstreamer when we send VA_SOURCE_RANGE_UNKNOWN for
2627 cases were gstreamer computes it automatically. But,
2628 if the user wants to make it explicit, we should try
2631 2020-02-07 11:20:11 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2633 * gst-libs/gst/vaapi/gstvaapiutils.c:
2634 * gst-libs/gst/vaapi/gstvaapiutils.h:
2635 libs: utils: map GstVideoColorRange to VAAPI VPP
2637 2020-02-07 15:28:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2639 * gst/vaapi/gstvaapidecode.c:
2640 vaapidecode: don't remove chroma-site nor colorimetry
2641 Since now they can be handled by vaapipostproc.
2643 2020-02-04 14:17:43 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2645 * gst/vaapi/gstvaapipostprocutil.c:
2646 vaapipostproc: use sink resolution to calculate src colorimetry
2647 The default output colorimetry is persuaded by the output
2648 resolution, which is too naive when doing VPP cropping
2649 and/or scaling. For example, scaling 4K(sink)->1080P(src)
2650 resolution (i.e. both YUV) results in bt2020(sink)->bt709(src)
2651 colorimetry selection and some drivers don't support that
2653 Thus, if output (i.e. downstream) does not specify a
2654 colorimetry then we use the input resolution instead of the
2655 output resolution to create the default colorimetry. Also,
2656 note that we still use the output format since it may be a
2657 different color space than the input. As in the example
2658 above, this will result in bt2020(sink)->bt2020(src)
2659 colorimetry selection and all drivers (afaik) should support
2662 2020-02-04 09:57:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2664 * gst/vaapi/gstvaapipostprocutil.c:
2665 vaapipostproc: set srcpad colorimetry unconditionally
2666 We always need a srcpad colorimetry for VAAPI VPP
2668 Also, check the return value of _set_colorimetry.
2670 2020-01-30 12:34:07 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2672 * gst/vaapi/gstvaapipostprocutil.c:
2673 vaapipostproc: do not override explicit srcpad colorimetry
2674 If colorimetry has been set by a capsfilter (e.g.
2675 vaapipostproc ! video/x-raw,colorimetry=bt709) then
2676 don't try to override it. Previously, the aforementioned
2677 capsfilter will fail to negotiate if default colorimetry
2678 is not the same as the capsfilter (e.g. 4K resolutions).
2680 2020-01-30 09:37:18 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2682 * gst/vaapi/gstvaapipostproc.c:
2683 vaapipostproc: set vpp filter colorimetry
2684 Set the input and output colorimetry for vpp filter.
2686 2020-01-30 09:34:10 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2688 * gst-libs/gst/vaapi/gstvaapifilter.c:
2689 * gst-libs/gst/vaapi/gstvaapifilter.h:
2690 libs: filter: support vpp input/output color standard
2691 Add API function to allow setting the input and output vpp
2692 color standard from GstVideoColorimetry.
2694 2020-02-04 11:32:54 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2696 * gst-libs/gst/vaapi/gstvaapiutils.c:
2697 * gst-libs/gst/vaapi/gstvaapiutils.h:
2698 libs: utils: map GstVideoColorimetry to VAAPI VPP
2699 Fallback to VAProcColorStandardExplicit if there is no
2702 2020-02-04 10:27:23 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
2704 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2705 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2706 libs: display: add vpp color standard quirk for i965 driver
2707 The i965 does not properly report supported vpp color
2710 2020-02-02 18:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2712 * gst/vaapi/gstvaapivideobufferpool.c:
2713 vaapivideobufferpool: dmabuf implies allocator
2714 Some code can be optimized since only if the dmabuf allocator is set,
2715 the internal flag of dmabuf is TRUE, thus there's no need to evaluate
2716 the allocator address.
2718 2020-01-29 11:55:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2720 * gst/vaapi/gstvaapivideobufferpool.c:
2721 vaapivideobufferpool: reject configuration if allocator isn't vaapi
2722 If the requested allocator in set_config() is not a VAAPI valid one,
2723 reject the configuration, instead of lying and using a private one.
2724 This patch superseeds !254 and !24
2726 2020-01-29 11:55:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2728 * gst/vaapi/gstvaapivideobufferpool.c:
2729 vaapivideobufferpool: add explanation for allocator reconfig
2731 2020-01-29 11:54:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2733 * gst/vaapi/gstvaapivideobufferpool.c:
2734 vaapivideobufferpool: check for vaapi meta first
2735 If the configured meta doesn't request vaapi meta then it is not a
2736 vaapi buffer pool. Bail out as soon as possible.
2738 2020-01-29 11:52:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2740 * gst/vaapi/gstvaapivideobufferpool.c:
2741 vaapivideobufferpool: turn errors into warnings
2742 set_config() vmethod should fail gracefully, thus upstream could
2743 negotiate another pool if possible.
2744 Instead of sending error messages to the bus, let demote the level
2747 2020-01-29 11:51:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2749 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2750 libs: display: log out vendor string when available
2751 This is useful while asking for logs to know the used driver.
2753 2020-01-27 11:49:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2755 * gst-libs/gst/vaapi/gstvaapisurface.c:
2756 libs: surface: initialize VASurfaceAttribExternalBuffers
2757 Initialize VASurfaceAttribExternalBuffers using compiler's syntax
2758 rather than using memset().
2760 2020-01-27 11:44:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2762 * gst-libs/gst/vaapi/gstvaapisurface.c:
2763 libs: surface: merge two loops into one
2764 Merge two loops into one for setting offsets and strides in the
2765 external buffer descriptor.
2767 2020-01-22 10:42:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2769 * gst-libs/gst/vaapi/gstvaapisurface.c:
2770 * gst-libs/gst/vaapi/gstvaapisurface.h:
2771 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2772 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2773 libs: surface: surfacepool: rename variable for clearity
2774 In order to be readable, the meaningless 'flags' is renamed to
2775 surface_allocation_flags, which is clearer.
2777 2020-01-27 18:40:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2779 * gst/vaapi/gstvaapivideobufferpool.c:
2780 vaapivideobufferpool: Reuse internal allocator is possible.
2781 Instead of creating a new allocator when upstream requests a different
2782 allocator, this patch tries to reuse the internal allocator if it was
2783 already initializated.
2784 If the stream changes, then either one will be unref and a new
2785 allocator is created.
2787 2020-01-27 18:05:14 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2789 * gst/vaapi/gstvaapivideobufferpool.c:
2790 vaapivideobufferpool: Log messages in proper category.
2791 The log messages where logged in the GstBufferPool category because
2792 the instance was not properly casted. This fix that situation.
2794 2020-01-16 11:49:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2796 * gst-libs/gst/vaapi/gstvaapidisplay.c:
2797 * gst-libs/gst/vaapi/gstvaapidisplay.h:
2798 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
2799 * gst/vaapi/gstvaapipluginbase.c:
2800 libs: display: driver quirks mechanism
2801 This mechanism comes from ffmpeg vaapi implementation, where they have
2803 A specific driver is identified by a substring present in the vendor
2804 string. If that substring is found, a set of bitwise flags are store.
2805 These flags can be accessed through the function
2806 gst_vaapi_display_has_driver_quirks().
2807 The purpose for this first quirks is to disable the put image try for
2808 AMD Gallium driver (see [1]).
2809 1. https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/72
2811 2020-01-15 23:07:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2813 * gst/vaapi/gstvaapipluginutil.c:
2814 plugins: renable Mesa Gallium driver
2816 2020-01-24 11:55:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2818 * gst/vaapi/gstvaapivideobufferpool.c:
2819 vaapivideobufferpool: validate returned meta
2820 Validate if the meta returned by gst_buffer_get_vaapi_video_meta() in
2821 the acquired buffer is not null.
2822 This situation should be very "pathological", but still it is better
2823 be safe since that meta might be used later to create a new dma
2826 2020-01-22 18:50:36 +0100 Philipp Zabel <p.zabel@pengutronix.de>
2828 * gst/vaapi/gstvaapivideobufferpool.c:
2829 vaapivideobufferpool: always update/release the underlying surface proxy
2830 gst_vaapi_video_buffer_pool_reset_buffer() is called when the sink
2831 releases the last reference on an exported DMA buffer. This should
2832 release the underlying surface proxy. To avoid releasing the wrong
2833 surface due to a stale surface proxy reference in the buffer's
2834 GstVaapiVideoMeta, always update the reference to the correct surface
2835 in gst_vaapi_video_buffer_pool_acquire_buffer().
2837 2020-01-23 16:56:44 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2839 * gst-libs/gst/vaapi/gstvaapicontext.c:
2840 * gst-libs/gst/vaapi/gstvaapicontext.h:
2841 * gst-libs/gst/vaapi/gstvaapisurface.c:
2842 * gst-libs/gst/vaapi/gstvaapisurface.h:
2843 libs: context: select vaCreateSurfaces version according attributes
2844 This commit tries to centralize the selection of vaCreateSurfaces
2845 version, instead of having fallbacks everywhere.
2846 These fallbacks are hacks, added because new drivers use the latest
2847 version of vaCreateSurfaces (with surface attributes) [1], meanwhile
2848 old drivers (or profiles as JPEG decoder in i965) might rather use the
2850 In order to select which method, there's detected hack: each config
2851 context has a list of valid formats, in the case of JPEG decoder the
2852 list only contains "rare" 4:2:2 formats (ICM3, GRAY8) which aren't
2853 handled correctly by the current gstreamer-vaapi code [2].
2854 The hack consist in identify if the format list contains an arbitrary
2855 preferred format (which is suposedly well supported by
2856 gstreamer-vaapi, mostly NV12). If no prefered colour format is found,
2857 the the old version of vaCreateSurfaces is used, and the surfaces wil
2858 be mapped into a image with their own color format.
2859 1. https://bugzilla.gnome.org/show_bug.cgi?id=797143
2860 2. https://bugzilla.gnome.org/show_bug.cgi?id=797222
2862 2020-01-21 19:35:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2864 * gst-libs/gst/vaapi/gstvaapicontext.c:
2865 libs: context: add debug category for context
2867 2020-01-22 20:20:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2869 * gst-libs/gst/vaapi/gstvaapiblend.c:
2870 libs: blend: guard VA_BLEND_GLOBAL_ALPHA
2872 2020-01-21 14:09:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2874 * gst/vaapi/gstvaapiencode_h264.c:
2875 vaapiencode: promote info to warning
2876 Let's notify user about using constrained-baseline instead on
2877 requested basline profile.
2879 2019-06-28 15:41:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
2881 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2882 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2883 * gst/vaapi/gstvaapidecode.c:
2884 * gst/vaapi/gstvaapidecode_props.c:
2885 * gst/vaapi/gstvaapidecode_props.h:
2886 vaapih264dec: Add a property to assume constrained-baseline
2887 When baseline-as-constrained is set, the decoder will expose support
2888 for baseline decoding and assume that the baseline content is
2889 constrained-baseline. This can be handy to decode streams in hardware
2890 that would otherwise not be possible to decode. A lot of baseline
2891 content is in fact constrained.
2893 2020-01-17 16:19:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2895 * gst/vaapi/gstvaapiencode_h264.c:
2896 * gst/vaapi/gstvaapipluginutil.c:
2897 vaapih264enc: accept baseline as constrained baseline compatible
2899 2020-01-17 14:24:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2901 * gst/vaapi/gstvaapiencode_h264.c:
2902 vaapih264enc: update level in src caps
2903 And, if downstream requests a specific level, the caps are not
2904 negotiated, because there is no mechanism right now to specify a
2905 custom level in the internal encoder.
2907 2020-01-17 17:12:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2909 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2910 libs: encoder: h264: document gst_vaapi_encoder_h264_supports_avc()
2912 2020-01-17 13:38:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2914 * gst/vaapi/gstvaapiencode_h264.c:
2915 vaapih264enc: force byte-stream if avc isn't supported
2916 Removing the validation in gst_vaapiencode_h264_get_caps() since that
2917 ought be handled in gst_vaapiencode_h264_set_config()
2919 2020-01-08 17:37:22 +0100 Philipp Zabel <p.zabel@pengutronix.de>
2921 * gst/vaapi/gstvaapiencode_h264.c:
2922 vaaph264enc: suppress avc if the driver does not support packed headers
2923 Do not negotiate AVC output if the driver does not support it.
2925 2020-01-08 17:16:35 +0100 Philipp Zabel <p.zabel@pengutronix.de>
2927 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2928 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2929 libs: encoder: h264: Add gst_vaapi_encoder_h264_supports_avc()
2930 AVC output requires packed header support in the driver.
2932 2020-01-17 13:07:04 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2934 * gst/vaapi/gstvaapiencode_h264.c:
2935 vaapih264enc: intersect the new proposed caps
2936 Instead of just leave to keep the proposed caps, with the best profile
2937 in the allowed caps, is its intersected again.
2939 2020-01-17 12:58:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2941 * gst/vaapi/gstvaapiencode_h264.c:
2942 vaapih264enc: propose new profile caps and fixate it
2943 When the available caps doesn't intersect with the allowed caps in the
2944 pipeline, a new caps is proposed rather than just expecting to
2946 Later, the intersected caps (profile_caps) is fixated in order to
2947 extract the configuration.
2949 2020-01-17 13:18:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2951 * gst/vaapi/gstvaapiencode_h264.c:
2952 vaapih264enc: common fail for gst_vaapiencode_h264_set_config()
2953 Add a common fail code path for gst_vaapiencode_h264_set_config().
2955 2020-01-17 12:54:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2957 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2958 libs: encoder: unref formats array if none
2959 The formats array is always created, in order to keep the logic and
2960 to avoid broken caps, if this formats array doesn't contain any
2961 elements, it has to be unref and the function should return NULL.
2963 2020-01-17 14:22:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2965 * gst/vaapi/gstvaapiencode_h264.c:
2966 vaapih264enc: fix log message
2967 Before the log wasn't processed because wrong instance pointer.
2969 2019-06-22 00:44:25 +0800 He Junyan <junyan.he@hotmail.com>
2971 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2972 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2973 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2974 * gst/vaapi/gstvaapiencode_h265.c:
2975 plugin: encode: Add H265 main-444 profile.
2976 Expose the main-444 profile to h265enc caps, when the upstream
2977 chooses to use VUYA as input, we choose main 4:4:4 profile to encode
2980 2020-01-15 19:36:00 +0800 He Junyan <junyan.he@hotmail.com>
2982 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2983 libs: encoder: h265: Consider main-444 profile when encoding.
2984 Add support of main-444 profile for parameter setting and packed header
2987 2020-01-15 23:04:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2989 * gst-libs/gst/vaapi/gstvaapiencoder.c:
2990 * gst-libs/gst/vaapi/gstvaapiencoder.h:
2991 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
2992 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
2993 * gst/vaapi/gstvaapiencode.c:
2994 vaapiencode: DMABuf only if PRIME is available
2995 Add DMABuf capsfeature in encoders' allowed sinkcaps only if PRIME
2996 memory type is available in the VA surface attributes of codec
2999 2020-01-16 09:14:30 +0800 Haihao Xiang <haihao.xiang@intel.com>
3001 * hooks/pre-commit.hook:
3002 Add hooks/pre-commit.hook
3003 meson.build in gstreamer-vaapi requires hooks/pre-commit.hook
3004 Copied and pasted pre-commit.hook from other gstreamer modules to make
3005 sure gstreamer-vaapi follows the same code style
3007 2019-12-26 16:45:51 +0800 He Junyan <junyan.he@hotmail.com>
3009 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3010 libs: encoder: h265: Set encoder paramters base on entrypoint.
3011 When the tune is NONE, we now can choose entrypoint freely. So the
3012 GST_VAAPI_ENCODER_TUNE macro may not return the correct current
3014 We also delay CTU size calculation after entrypoint has been decided.
3016 2019-12-28 19:18:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3018 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3019 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
3020 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
3021 * gst-libs/gst/vaapi/gstvaapicontext.c:
3022 * gst-libs/gst/vaapi/gstvaapicontext.h:
3023 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3024 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3025 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3026 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
3027 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3028 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
3029 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3030 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
3031 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
3032 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
3033 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3034 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
3035 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3036 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
3037 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
3038 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
3039 * gst-libs/gst/vaapi/gstvaapiprofile.c:
3040 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3041 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3042 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
3043 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3044 * gst-libs/gst/vaapi/meson.build:
3045 * gst/vaapi/gstvaapi.c:
3046 * gst/vaapi/gstvaapiencode.c:
3047 * gst/vaapi/gstvaapiencode.h:
3048 * gst/vaapi/gstvaapiencode_h264_fei.c:
3049 * gst/vaapi/gstvaapiencode_h264_fei.h:
3050 * gst/vaapi/gstvaapifeivideometa.c:
3051 * gst/vaapi/gstvaapifeivideometa.h:
3052 * gst/vaapi/meson.build:
3054 * tests/internal/meson.build:
3055 * tests/internal/test-fei-enc-in.c:
3056 * tests/internal/test-fei-enc-out.c:
3057 Remove all FEI related
3058 FEI encoders are not actively mantained neither tested, and it is
3059 using infrastructure that is changing and FEI is stopping this
3061 Also it is required to rethink how FEI can be used in GStreamer.
3063 2020-01-14 11:17:49 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3065 * gst/vaapi/gstvaapioverlay.c:
3066 vaapioverlay: ensure sinkpad has current buffer
3067 Use the gst_video_aggregator_pad_has_current_buffer API
3068 to check if the current sinkpad has a queued buffer before
3069 attempting to obtain a input buffer from the base plugin.
3070 If the sinkpad does not have a current buffer, then it is
3071 either not producing them yet (e.g. current time < sinkpad
3072 start time) or it has reached EOS.
3073 Previously, we only handled EOS case.
3075 gst-launch-1.0 videotestsrc num-buffers=100 \
3076 ! vaapipostproc ! vaapioverlay name=overlay \
3077 ! vaapisink videotestsrc timestamp-offset=1000000000 \
3078 num-buffers=100 ! video/x-raw,width=160,height=120 \
3081 2020-01-14 18:57:31 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3083 * gst/vaapi/gstvaapioverlay.c:
3084 vaapioverlay: unroll the recursive call
3085 Recursive functions are elegant but dangerous since they might
3086 overflow the stack. It is better to turn them into a list tranversal
3087 if possible, as this case.
3089 2020-01-14 18:46:49 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3091 * gst-libs/gst/vaapi/gstvaapiblend.c:
3092 * gst/vaapi/gstvaapioverlay.c:
3093 vaapioverlay: add minimal documentation
3095 2020-01-14 18:25:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3097 * gst-libs/gst/vaapi/gstvaapiblend.c:
3098 * gst-libs/gst/vaapi/gstvaapiblend.h:
3099 * gst/vaapi/gstvaapioverlay.c:
3100 libs: blend: simplify generator API
3101 Instead of using a parent structure that has to be derived by API
3102 consumers, this change propse a simplification by using the common
3103 pattern of GTK of passing a function pointer and user data which will
3104 be passed as its parameter. That user data contains the state and the
3105 function will be called to update that state.
3107 2020-01-10 10:14:38 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3109 * gst-libs/gst/vaapi/gstvaapiblend.c:
3110 * gst-libs/gst/vaapi/gstvaapiblend.h:
3111 libs: blend: remove begin/render/end API
3112 This API was risky and is superseded by the surface
3113 generator (process) API.
3116 2020-01-10 10:12:36 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3118 * gst/vaapi/gstvaapioverlay.c:
3119 vaapioverlay: use blend surface generator API
3122 2020-01-10 09:54:30 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3124 * gst-libs/gst/vaapi/gstvaapiblend.c:
3125 * gst-libs/gst/vaapi/gstvaapiblend.h:
3126 libs: blend: add surface generator API
3127 This new API allows the user to call a single method (process)
3128 which handles the [display] lock/unlock logic internally for
3130 This API supersedes the risky begin, render, end API.
3131 It eliminates the need for the user to call a lock method
3132 (process_begin) before processing the input buffers
3133 (process_render) and calling an unlock method (process_end)
3137 2019-12-23 14:29:08 +0800 He Junyan <junyan.he@hotmail.com>
3139 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3140 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3141 * gst/vaapi/gstvaapiencode.c:
3142 * gst/vaapi/gstvaapiencode.h:
3143 * gst/vaapi/gstvaapiencode_h264.c:
3144 * gst/vaapi/gstvaapiencode_h265.c:
3145 plugin: encode: List all possible profiles to detect input formats.
3146 The current get_profile just return one possible profile for the encode,
3147 which is not enough. For example, if we want to support HEVC 4:4:4
3148 profile, the input of encode should be VYUA rather than NV12 in HEVC
3149 main profile. So the command line:
3150 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3151 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3152 tune=low-power init-qp=30 ! fakesink
3153 can not work because vaapih265enc just report NV12 in sink caps, we need
3154 to specify the profile obviously like:
3155 gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3156 caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3157 tune=low-power init-qp=30 ! capsfilter caps=video/x-h265, \
3158 profile=main-444 ! fakesink
3159 The encode should have the ability to choose the profile based on input
3160 format automatically. If the input video format is VUYA, the main-444
3161 profile should be auto choosed.
3162 We modify to let get_allowed_profiles of each encode sub class to return
3163 an array of all supported profiles based on downstream's allowed caps, or
3164 return NULL if no valid profiles specified by downstream.
3165 If no allowed profiles found, all profiles which belong to the current
3166 encoder's codec will be the candidates.
3167 The function gst_vaapi_encoder_get_surface_attributes collects the surface's
3168 attributes for that profile list we just get.
3169 So for this case, both NV12 and VUYA should be returned.
3170 TODO: some codec like VP9, need to implement the get_profile() function.
3172 2020-01-08 15:07:36 +0800 He Junyan <junyan.he@hotmail.com>
3174 * gst/vaapi/gstvaapipluginutil.c:
3175 * gst/vaapi/gstvaapipluginutil.h:
3176 plugin: util: add helper function to detect profiles in caps.
3178 2020-01-08 15:04:18 +0800 He Junyan <junyan.he@hotmail.com>
3180 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3181 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3182 libs: encoder: add a helper function to get all supported profiles
3184 2020-01-13 15:34:54 +0900 Seungha Yang <seungha.yang@navercorp.com>
3186 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3187 libs: decoder: Don't unref null object
3188 ** (gst-launch-1.0:9789): CRITICAL **: 15:29:09.330:
3189 gst_vaapi_context_unref: assertion 'context != NULL' failed
3191 2020-01-10 09:26:44 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3193 * gst/vaapi/gstvaapioverlay.c:
3194 plugins: overlay: use proper NULL check on double pointer
3195 Check the address of the variable is not NULL,
3196 not the address of the pointer.
3198 2020-01-08 23:42:21 +0800 He Junyan <junyan.he@hotmail.com>
3200 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3201 libs: codedbuf: delete a useless field.
3202 The context field in GstVaapiCodedBuffer is not inited correctly
3203 and is never used, just delete it.
3205 2019-12-29 17:57:52 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3207 * gst/vaapi/gstvaapipluginutil.c:
3208 plugins: add iHD driver in whitelist
3210 2020-01-02 21:02:40 +0800 He Junyan <junyan.he@hotmail.com>
3212 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3213 libs: encoder: modify 265 SPS header's profile compatibility flag.
3214 Make the SPS profile compatibility flags more precisely conform to
3217 2020-01-06 19:39:06 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3219 * tests/check/elements/vaapioverlay.c:
3220 test: vaapioverlay: bail test if not available
3221 vaapioverlay is only registered if the VA driver support the blend
3223 This patch only executes the test if vaapioverlay is available,
3224 otherwise the test is bail out without raising an error.
3226 2020-01-06 14:53:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3228 * tests/check/elements/vaapioverlay.c:
3229 tests: vaapioverlay: force drm backend
3231 2019-12-22 17:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3233 * gst-libs/gst/vaapi/gstvaapiblend.c:
3234 libs: blend: update to new mini-object API
3236 2019-11-19 13:48:22 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3238 * tests/check/elements/vaapioverlay.c:
3239 * tests/check/meson.build:
3240 tests: check: add basic vaapioverlay test
3241 Add test_overlay_position test to verify sink_1 input
3242 is overlayed onto sink_0 input at the appropriate
3245 2019-11-14 12:03:57 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3247 * gst/vaapi/gstvaapi.c:
3248 * gst/vaapi/gstvaapioverlay.c:
3249 * gst/vaapi/gstvaapioverlay.h:
3250 * gst/vaapi/meson.build:
3251 plugins: add vaapioverlay plugin
3252 A plugin similar to the base compositor element but
3253 uses VA-API VPP blend functions to accelerate the
3254 overlay/compositing.
3256 gst-launch-1.0 -vf videotestsrc ! vaapipostproc \
3257 ! tee name=testsrc ! queue \
3258 ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 \
3259 name=overlay ! vaapisink testsrc. ! queue ! overlay.
3261 2019-11-14 12:02:19 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3263 * gst-libs/gst/vaapi/gstvaapiblend.c:
3264 * gst-libs/gst/vaapi/gstvaapiblend.h:
3265 * gst-libs/gst/vaapi/meson.build:
3266 libs: add a vaapi blend class
3267 Support for the VA-API VPP blend functions.
3269 2019-11-14 11:54:59 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3271 * gst/vaapi/gstvaapipluginbase.c:
3272 * gst/vaapi/gstvaapipluginbase.h:
3273 plugins: base: add GstVideoAggregator subclass support
3275 2020-01-05 19:32:16 +0800 He Junyan <junyan.he@hotmail.com>
3277 * gst-libs/gst/vaapi/gstvaapiimage.c:
3278 libs: image: init all image fields correctly.
3280 2020-01-06 17:41:53 +0100 Stéphane Cerveau <scerveau@collabora.com>
3282 * gst/vaapi/gstvaapipostproc.c:
3283 doc: fix pipeline typo in vaapipostproc
3285 2020-01-02 21:11:44 +0800 He Junyan <junyan.he@hotmail.com>
3287 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3288 libs: encoder: modify 265 VPS header fields.
3289 vps_base_layer_internal_flag and vps_base_layer_available_flag
3290 have been clearly defined now.
3292 2020-01-01 19:54:13 +0800 He Junyan <junyan.he@hotmail.com>
3294 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
3295 libs: display: fix a resource leak in X11 pixmap format.
3297 2020-01-02 18:00:21 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3299 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3300 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3301 libs: utils: delete useless gst_vaapi_profile_caps_append_encoder.
3303 2019-12-30 14:09:17 +0800 He Junyan <junyan.he@hotmail.com>
3305 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3306 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3307 * gst/vaapi/gstvaapiencode.c:
3308 libs: encoder: get surfaces resolution the same time with formats.
3309 We can get all the information about the video format at one shot
3310 when we create the test context for getting the supported formats.
3311 The current way to get the width and height ranges are inefficient,
3312 since it calls the function gst_vaapi_profile_caps_append_encoder()
3313 and it creates another temporal context to detect the resolution
3315 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3317 2019-12-28 17:42:55 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3319 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3320 libs: encoder: vp9: fix code style
3322 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3324 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3325 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3326 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3327 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3328 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3329 libs: encoder: set entrypoint based on tune automatically
3330 Some profile, such as H265_MAIN_444 on new Intel platform, may only
3331 support ENTRYPOINT_SLICE_ENCODE_LP entrypoint. This leads two
3333 1. We need to specify the tune mode like `vaapih265enc tune=low-power`
3334 every time when we need to use this kind of profile. Or we can not
3335 create the encoder context successfully.
3336 2. More seriously, we set the entrypoint to a fixed value in
3337 init_context_info() and so the create_test_context_config() can not
3338 create the test context for these profile and can not get the
3339 supported video formats, either.
3340 We now change the entrypoint setting based on the tune option of the
3341 encoder. If no tune property provided, we just choose the first
3342 available entrypoint.
3344 2019-12-16 23:19:46 +0800 He Junyan <junyan.he@hotmail.com>
3346 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3347 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3348 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3349 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3350 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3351 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3352 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3353 libs: encoder: set context info profile by encoder
3354 Instead of init_context_info() setting the passed profile, it is
3355 assumed that it has to be set by each encoder.
3356 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3358 2019-12-27 18:49:02 +0100 He Junyan <junyan.he@hotmail.com>
3360 * gst-libs/gst/vaapi/gstvaapicontext.c:
3361 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3362 libs: context: add invalid entrypoint symbol
3363 The symbol GST_VAAPI_ENTRYPOINT_INVALID is just a representation of
3364 zero, which was already used as an invalid value tacitly. This patch
3365 only makes it explicit.
3366 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3368 2019-12-29 01:13:29 +0800 He Junyan <junyan.he@hotmail.com>
3370 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3371 libs: pixmap: Fix a pixmap creation crash.
3372 We use GST_VAAPI_OBJECT_NATIVE_DISPLAY with wrong parameter for x11
3373 pixmap creation, which causes crash if we run the internal test case
3375 test-decode --pixmap
3377 2019-12-22 14:35:18 +0800 He Junyan <junyan.he@hotmail.com>
3379 * gst/vaapi/gstvaapiencode.c:
3380 plugin: encode: set allowed_sinkpad_caps to empty.
3381 We now set encode->allowed_sinkpad_caps to NULL if we fail to get
3382 surfaces formats. This causes two problem:
3383 1. gst_video_encoder_proxy_getcaps use NULL as its caps parameter,
3384 which changes its behavior. It will use encode's sinkpad template
3385 rather than empty caps to do the clip job. So even if we fail to set
3386 allowed_sinkpad_caps, gst_video_encoder_proxy_getcaps can still return
3388 2. We should just set the allowed_sinkpad_caps once. The NULL point
3389 make the ensure_allowed_sinkpad_caps function works again and again.
3391 2019-12-22 15:22:57 +0800 He Junyan <junyan.he@hotmail.com>
3393 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3394 libs: encoder: Add NULL pointer check for context when finalize.
3395 Context may be NULL if pipeline fail in early stage, and the
3396 ensure_context will not be called. Need to add a pointer protection
3399 2019-12-20 06:38:42 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3401 * gst/vaapi/gstvaapipluginbase.c:
3402 plugins: base: do not reset can_dmabuf
3403 Don't reset the can_dmabuf field. This restores the
3404 close/reset logic that existed prior to commit
3405 ca2942176b5632e07eebac23336954f9aaf1cb26 in regards to
3407 Plugins only call gst_vaapi_plugin_base_set_srcpad_can_dmabuf
3408 once during startup, but may need to reset the other private
3409 fields multiple times during negotiation. Thus, can_dmabuf
3410 should be exempt from the resets.
3413 2019-12-06 00:21:12 +0800 He Junyan <junyan.he@hotmail.com>
3415 * gst/vaapi/gstvaapiencode.c:
3416 plugin: encode: Refine encode's sink caps.
3417 The old manner to get the encode's sink caps is not correct.
3418 Such as 264 encode, it gets:
3419 video/x-raw(memory:VASurface),
3420 format=(string){ ENCODED, NV12, I420, YV12, YUY2, UYVY, Y210,
3421 P010_10LE, AYUV, Y410, Y444 }, width=(int)[ 32, 4096 ],
3422 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3423 video/x-raw(memory:DMABuf), format=(string){ I420, YV12, RGBA },
3424 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3425 framerate=(fraction)[ 0/1, 2147483647/1 ];
3426 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3427 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3428 where the formats for memory:VASurface and memory:DMABuf are superfluous.
3429 All the "I420, YV12, YUY2, UYVY, Y210, RGBA" can not be really used as
3430 input format for encoder.
3432 video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3433 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3434 video/x-raw(memory:VASurface), format=(string){ NV12 },
3435 width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3436 framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf),
3437 format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3438 height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3439 as the correct result.
3441 2019-12-20 08:37:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3443 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3444 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3445 libs: display: code clean up
3447 2019-12-12 21:34:21 +0800 He Junyan <junyan.he@hotmail.com>
3449 * gst-libs/gst/vaapi/gstvaapidisplay.c:
3450 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3451 * gst-libs/gst/vaapi/gstvaapiprofile.h:
3452 libs: display: refine the profile/entrypoint map.
3453 The old way make the one config for each profile/entrypoint pair,
3454 which is not very convenient for description the relationship
3455 between them. One profile may contain more than one entrypoints
3456 to within it, so a set like data structure should be more suitable.
3458 2019-12-19 14:19:10 +0100 He Junyan <junyan.he@hotmail.com>
3460 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3461 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
3462 * gst-libs/gst/vaapi/gstvaapicontext.c:
3463 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3464 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3465 * gst-libs/gst/vaapi/gstvaapifilter.c:
3466 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3467 * gst-libs/gst/vaapi/gstvaapisurface.c:
3468 * gst-libs/gst/vaapi/gstvaapisurface.h:
3469 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3470 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
3471 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3472 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3473 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3474 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
3475 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
3476 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3477 * gst-libs/gst/vaapi/gstvaapiwindow.c:
3478 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3479 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3480 * gst/vaapi/gstvaapipluginbase.c:
3481 * gst/vaapi/gstvaapivideomemory.c:
3482 * gst/vaapi/gstvaapivideometa.c:
3483 * gst/vaapi/gstvaapivideometa_texture.c:
3484 * tests/internal/image.c:
3485 * tests/internal/test-filter.c:
3486 * tests/internal/test-surfaces.c:
3487 * tests/internal/test-windows.c:
3488 libs: surface: port to GstMiniObject
3489 GstVaapiMiniObject and GstVaapiObject are deprecated.
3490 This is the first step to remove them by porting GstVaapiSurface as
3491 a GstMiniBuffer descendant.
3492 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3494 2019-12-19 18:26:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3496 * gst-libs/gst/vaapi/gstvaapisurface.c:
3497 libs: surface: rename create function names to init
3498 There are several internal functions with 'create' name, but they
3499 don't create any new structure, but rather it initializes that
3500 structure. Renaming those function to reflect better their purpose.
3502 2019-12-19 14:17:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3504 * gst-libs/gst/vaapi/gstvaapisurface.c:
3505 libs: surface: use macro accessors
3507 2019-12-19 13:46:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3509 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3510 libs: surface: fix internal documentation
3512 2019-12-18 18:00:49 +0100 He Junyan <junyan.he@hotmail.com>
3514 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3515 * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
3516 * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3517 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3518 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3519 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3520 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3521 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3522 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3523 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3524 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3525 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3526 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3527 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3528 libs: codedbuffer: port to GstMiniObject
3529 GstVaapiMiniObject and GstVaapiObject are deprecated.
3530 This is the first step to remove them by porting GstVaapiCodedBuffer
3531 as a GstMiniBuffer descendant.
3532 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3534 2019-12-18 12:57:01 +0100 He Junyan <junyan.he@hotmail.com>
3536 * gst-libs/gst/vaapi/gstvaapiimage.c:
3537 * gst-libs/gst/vaapi/gstvaapiimage.h:
3538 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
3539 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
3540 * gst-libs/gst/vaapi/gstvaapisurface.c:
3541 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3542 * gst-libs/gst/vaapi/gstvaapivideopool.c:
3543 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3544 * gst/vaapi/gstvaapipluginbase.c:
3545 * gst/vaapi/gstvaapivideomemory.c:
3546 * gst/vaapi/gstvaapivideometa.c:
3547 * tests/internal/image.c:
3548 * tests/internal/simple-encoder.c:
3549 * tests/internal/test-fei-enc-in.c:
3550 * tests/internal/test-filter.c:
3551 * tests/internal/test-windows.c:
3552 libs: image: port to GstMiniObject base class
3553 GstVaapiMiniObject and GstVaapiObject are deprecrated. This is the
3554 first step to remove them, by porting GstVaapiImage as a
3556 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3558 2019-09-24 01:01:22 +0800 He Junyan <junyan.he@hotmail.com>
3560 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3561 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
3562 * gst-libs/gst/vaapi/gstvaapicontext.c:
3563 * gst-libs/gst/vaapi/gstvaapicontext.h:
3564 * gst-libs/gst/vaapi/gstvaapidecoder.c:
3565 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3566 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3567 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3568 libs: context: port to a plain C structure
3569 The GstVaapiMiniObject is obsolete and we need to replace it. This
3570 patch turns GstVaapiContext into a plain C structure with its own
3571 reference counting mechanism.
3572 Also this patch removes unused overlays attributes.
3573 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3575 2019-12-18 00:40:58 +0800 He Junyan <junyan.he@hotmail.com>
3577 * gst/vaapi/gstvaapiencode_h264.c:
3578 * gst/vaapi/gstvaapiencode_h264_fei.c:
3579 * gst/vaapi/gstvaapiencode_h265.c:
3580 * gst/vaapi/gstvaapiencode_jpeg.c:
3581 * gst/vaapi/gstvaapiencode_mpeg2.c:
3582 * gst/vaapi/gstvaapiencode_vp8.c:
3583 * gst/vaapi/gstvaapiencode_vp9.c:
3584 plugin: encode: change the dmabuf caps to all supported formats.
3585 The encode's dmabuf caps definition is obsolete, it can support
3586 more formats now. Re-define it to include all supported formats
3587 in video format map.
3589 2019-12-17 17:09:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3591 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3592 libs: encoder: h264fei: remove unnecessary check
3593 Issue detected by Coverity
3594 `info_to_pack.h264_slice_header` is always allocated by
3595 gst_vaapi_feipak_h264_encode(), thus checking it to free it afterwards
3596 in doesn't make much sense. But it requires to be free on the error
3598 There may be a null pointer dereference, or else the comparison
3599 against null is unnecessary.
3600 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3601 pointer comparison already dereference the pointer earlier
3603 2019-12-17 17:05:22 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3605 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3606 libs: encoder: h264fei: remove unnecessary assert
3607 Issue detected by Coverity
3608 An unsigned value can never be negative, so this test will always
3609 evaluate the same way.
3610 In add_slice_headers: An unsigned value can never be less than 0
3612 2019-12-17 16:57:41 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3614 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3615 libs: encoder: h264fei: remove unnecessary check
3616 Issue detected by Coverity
3617 There may be a null pointer dereference, or else the comparison
3618 against null is unnecessary.
3619 In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3620 pointer comparison already dereference the pointer earlier
3622 2019-12-17 16:49:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3624 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3625 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3626 libs: encoder: h264fei: don't free memory on stack
3627 Issue detected by Coverity
3628 `info_to_pak` variable in gst_vaapi_encoder_h264_fei_encode() is
3629 declared in the stack, but it is free in
3630 gst_vaapi_feienc_h264_encode() as if declared on the heap.
3631 This patch initializes the structure and removes the free.
3632 A non-heap pointer is placed on the free list, likely causing a crash
3634 In gst_vaapi_encoder_h264_fei_encode: Free of an address-of
3635 expression, which can never be heap allocated.
3637 2019-12-17 13:22:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3639 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3640 libs: encoder: h264fei: fix surface leak
3641 Issue detected by Coverity
3642 If the FEI mode is not handled the created resources should be
3643 released and return and error code.
3644 The system resource will not be reclaimed and reused, reducing the
3645 future availability of the resource.
3646 In gst_vaapi_encoder_h264_fei_encode: Leak of memory or pointers to
3649 2019-12-17 13:09:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3651 * tests/check/elements/vaapipostproc.c:
3652 tests: check return calling of gst_navigation_event_parse.*
3653 This issue was detected by Coverity.
3654 If the function returns an error value, the error value may be mistaken
3656 In cb_mouse_event: Value returned from a function is not checked for
3657 errors before being used
3659 2019-12-16 16:25:02 +0800 He Junyan <junyan.he@hotmail.com>
3661 * gst/vaapi/gstvaapiencode_h264.c:
3662 * gst/vaapi/gstvaapiencode_h264_fei.c:
3663 * gst/vaapi/gstvaapiencode_h265.c:
3664 * gst/vaapi/gstvaapiencode_jpeg.c:
3665 * gst/vaapi/gstvaapiencode_mpeg2.c:
3666 * gst/vaapi/gstvaapiencode_vp8.c:
3667 * gst/vaapi/gstvaapiencode_vp9.c:
3668 plugin: encode: set sink's raw caps to GST_VAAPI_FORMATS_ALL.
3669 Then encode plugin just supports raw formats declared in vaapi video
3670 format map. This modification makes the template caps more precise.
3672 2019-11-14 11:13:51 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3674 * gst/vaapi/gstvaapipluginbase.c:
3675 plugins: base: add GstPad param to internal helper functions
3676 The base plugin public API function implementations determine
3677 which pad should be passed to the internal helper functions.
3678 Currently, only the base plugin static sinkpad and static
3679 srcpad are supported/used. However, this change enables future
3680 API functions to be added that can accept a pad (i.e. request pad)
3681 from an element subclass (e.g. a GstVideoAggregator subclass).
3683 2019-11-12 12:21:52 -0800 U. Artie Eoff <ullysses.a.eoff@intel.com>
3685 * gst/vaapi/gstvaapipluginbase.c:
3686 * gst/vaapi/gstvaapipluginbase.h:
3687 plugins: base: manage pad-specific data in a single struct
3688 Define a struct (GstVaapiPadPrivate) to encapsulate the
3689 pad-specific data (i.e. buffer pool, allocator, info,
3691 Add an interface to retrieve the data struct for a given
3693 Finally, update the base plugin to use the data struct
3694 throughout the implementation.
3695 This will enable us to easily extend the base plugin in the
3696 future to allow for N-to-1 pad subclasses (e.g. overlay/
3699 2019-10-29 15:13:44 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3701 * gst/vaapi/gstvaapidecode.c:
3702 * gst/vaapi/gstvaapiencode.c:
3703 * gst/vaapi/gstvaapipluginbase.h:
3704 * gst/vaapi/gstvaapipostproc.c:
3705 plugins: use plugin base macros to access pad specific data
3706 Don't access base struct fields directly since the underlying
3707 definition can change. Instead, use the accessor macros.
3709 2019-12-03 00:52:45 +0800 He Junyan <junyan.he@hotmail.com>
3711 * gst/vaapi/gstvaapidecode.c:
3712 libs: decoder: Modify decode src's template raw formats
3713 We do not need to maintain a standalone list of decoder's output
3714 template for raw formats and that is easy to make mistake(for
3715 example, the AYVU is wrong in that list, should be VUYA).
3716 Just use GST_VAAPI_FORMATS_ALL to replace the raw formats list for
3719 2019-12-11 14:11:13 +0800 He Junyan <junyan.he@hotmail.com>
3721 * gst/vaapi/gstvaapipostproc.c:
3722 libs: postproc: Modify src/sink template raw formats
3723 We need to provide more precise template caps for postproc's src
3724 and sink pads. The GST_VIDEO_FORMATS_ALL make all video formats
3725 available which are really superfluous.
3727 2019-12-10 18:40:42 -0300 Thibault Saunier <tsaunier@igalia.com>
3729 * tests/check/elements/vaapipostproc.c:
3730 Do not mix declaration and code
3732 2019-11-03 17:59:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3734 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3735 libs: decoder: h265: skip all pictures prior the first I-frame
3736 Don't try to decode until the first I-frame is received within the
3737 currently active sequence. i965 H265 decoder don't show any artifact
3741 2019-11-27 01:44:05 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3743 * gst-libs/gst/vaapi/video-format.c:
3744 libs: video-format: remove dead code
3746 2019-10-31 00:59:34 +0800 He Junyan <junyan.he@hotmail.com>
3748 * gst-libs/gst/vaapi/video-format.c:
3749 * gst-libs/gst/vaapi/video-format.h:
3750 * gst/vaapi/gstvaapipluginutil.h:
3751 libs: video-format: add GST_VAAPI_FORMATS_ALL
3752 GST_VAAPI_FORMATS_ALL collects all declared formats in video-format
3753 as a caps template string, and make them available in caps with
3754 memory:VASurface feature.
3757 2019-11-06 22:37:12 +0800 He Junyan <junyan.he@hotmail.com>
3759 * gst-libs/gst/vaapi/video-format.c:
3760 * tests/internal/test-windows.c:
3761 libs: video-format: change GST_VIDEO_FORMAT_AYUV to VUYA.
3762 We only support VUYA format in gst vaapi now, need to correct
3765 2019-10-09 15:13:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3767 * tests/check/elements/vaapipostproc.c:
3768 tests: check: vaapipostproc test_orientation_mouse_events
3769 Test that vaapipostproc properly translates mouse events
3770 when using video-direction (orientation).
3772 2019-10-09 10:11:54 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3774 * tests/check/elements/vaapipostproc.c:
3775 * tests/check/meson.build:
3776 tests: check: vaapipostproc test_crop_mouse_events
3777 Test that vaapipostproc properly translates mouse events
3780 2019-10-08 12:20:26 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3783 * meson_options.txt:
3784 * tests/check/elements/vaapipostproc.c:
3785 * tests/check/meson.build:
3786 * tests/meson.build:
3787 tests: check: initial unit test support
3788 Add minimal unit test toolchain files and a simple
3789 vaapipostproc unit test.
3791 2019-10-08 12:19:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3794 * tests/examples/meson.build:
3795 * tests/examples/test-roi.c:
3796 * tests/examples/test-vaapicontext.c:
3797 * tests/examples/test-vaapipostproc.c:
3798 * tests/examples/test-vaapisink.c:
3799 * tests/internal/codec.c:
3800 * tests/internal/codec.h:
3801 * tests/internal/decoder.c:
3802 * tests/internal/decoder.h:
3803 * tests/internal/image.c:
3804 * tests/internal/image.h:
3805 * tests/internal/meson.build:
3806 * tests/internal/output.c:
3807 * tests/internal/output.h:
3808 * tests/internal/simple-decoder.c:
3809 * tests/internal/simple-encoder.c:
3810 * tests/internal/test-decode.c:
3811 * tests/internal/test-decode.h:
3812 * tests/internal/test-display.c:
3813 * tests/internal/test-fei-enc-in.c:
3814 * tests/internal/test-fei-enc-out.c:
3815 * tests/internal/test-filter.c:
3816 * tests/internal/test-h264.c:
3817 * tests/internal/test-h264.h:
3818 * tests/internal/test-jpeg.c:
3819 * tests/internal/test-jpeg.h:
3820 * tests/internal/test-mpeg2.c:
3821 * tests/internal/test-mpeg2.h:
3822 * tests/internal/test-mpeg4.c:
3823 * tests/internal/test-mpeg4.h:
3824 * tests/internal/test-subpicture-data.c:
3825 * tests/internal/test-subpicture-data.h:
3826 * tests/internal/test-subpicture.c:
3827 * tests/internal/test-surfaces.c:
3828 * tests/internal/test-textures.c:
3829 * tests/internal/test-vc1.c:
3830 * tests/internal/test-vc1.h:
3831 * tests/internal/test-windows.c:
3832 * tests/internal/y4mreader.c:
3833 * tests/internal/y4mreader.h:
3834 * tests/meson.build:
3835 tests: move examples and tests to subfolders
3836 This makes way for adding unit (check) tests.
3838 2019-10-14 01:01:27 +0100 Tim-Philipp Müller <tim@centricular.com>
3846 * gst-libs/Makefile.am:
3847 * gst-libs/gst/Makefile.am:
3848 * gst-libs/gst/vaapi/Makefile.am:
3850 * gst/vaapi/Makefile.am:
3852 * tests/Makefile.am:
3853 * tests/elements/Makefile.am:
3854 Remove autotools build
3856 2019-10-10 15:26:36 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3858 * gst/vaapi/gstvaapipostproc.c:
3859 vaapipostproc: fix off-by-one coord translations
3860 When translating navigation x,y coordinates for
3861 video-direction, it is necessary to subtract 1
3862 when using the video dimensions to compute the
3863 new x,y coordinates. That is, a 100x200 image
3864 should map coordinates in x=[0-99],y=[0-199].
3865 This issue was found with unit tests provided
3868 2019-10-11 17:34:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3870 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3871 libs: window: x11: Avoid usage of deprecated API
3873 2019-10-11 17:13:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3876 build: halt meson configuration if no renderer API
3877 We should halt meson configuration if there is no render API
3878 installed (either DRM, Wayland or X11).
3879 That behavior was already in autotools but missed in meson. This patch
3883 2019-10-09 12:12:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3885 * gst-libs/gst/vaapi/gstvaapifilter.c:
3886 libs: filter: fix default orientation regression
3887 Fix regression introduced in f232f87f7082
3889 2019-10-07 11:53:23 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3891 * gst-libs/gst/vaapi/gstvaapifilter.c:
3892 libs: filter: use OP_DATA_DEFAULT_VALUE macro
3894 2019-10-07 11:39:19 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3896 * gst-libs/gst/vaapi/gstvaapifilter.c:
3897 libs: filter: use macro for returning op default value
3898 The code is essentially the same for getting all op default
3899 values. Thus, use a macro to help minimize code duplication
3900 and [hopefully] encourage using the same mechanism for all
3903 2019-10-07 09:56:37 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3905 * gst-libs/gst/vaapi/gstvaapifilter.c:
3906 libs: filter: query param spec for default scale method
3909 2019-10-07 09:44:06 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3911 * gst-libs/gst/vaapi/gstvaapifilter.c:
3912 libs: filter: query param spec for default skin-tone values
3915 2019-10-02 12:54:52 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3917 * gst-libs/gst/vaapi/gstvaapifilter.c:
3918 libs: filter: query param spec for default video-direction
3921 2019-10-07 10:23:09 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3926 2019-09-05 16:40:52 +0800 Yan Wang <yan.wang@linux.intel.com>
3928 * gst-libs/gst/vaapi/gstvaapifilter.c:
3929 * gst-libs/gst/vaapi/gstvaapifilter.h:
3930 * gst/vaapi/gstvaapipostproc.c:
3931 * gst/vaapi/gstvaapipostproc.h:
3932 vaapipostproc: Use level value for skin-tone-enhancement filter.
3933 Currently the parameter of skin-tone-enhancement filter is forced
3934 to zero. In fact it could be set different value by the user.
3935 So create a new property named as "skin-tone-enhancement-level"
3936 for accepting the used defined parameter value.
3937 At the same time, skin-tone-enhancement is marked as deprecated.
3938 When skin-tone-enhancement-level is set, skin-tone-enhancement
3941 2019-09-21 13:39:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3943 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3944 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3945 libs: decoder: h264, h266: fix g_return_val_if_fail() missuse
3946 g_return_val_fail() documentations says:
3947 If expr evaluates to FALSE, the current function should be
3948 considered to have undefined behaviour (a programmer error).
3949 The only correct solution to such an error is to change the
3950 module that is calling the current function, so that it avoids
3951 this incorrect call.
3952 So it was missused in a couple parts of the H264 and H265 internal
3953 decoders. This patch changes that to plain conditionals.
3954 Also, it was included a couple code-style fixes.
3956 2019-09-23 19:52:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3958 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3959 * gst-libs/gst/vaapi/gstvaapiencoder.h:
3960 * tests/simple-encoder.c:
3961 * tests/test-fei-enc-in.c:
3962 libs: encoder: remove gst_vaapi_encoder_{ref,unref}()
3963 Since GstVaapiEncoder is a descendant of of GstObject, there is no
3964 need to keep a custom ref()/unref() methods. This patch deletes them.
3966 2019-09-24 01:03:02 +0800 He Junyan <junyan.he@hotmail.com>
3968 * gst-libs/gst/vaapi/gstvaapiencoder.c:
3969 libs: encoder: correct encoder's ref/unref function.
3970 GstVaapiEncoder now is a standard gstobject and need to use
3971 gst_object_ref/unref functions.
3973 2019-09-19 12:09:20 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3975 * gst/vaapi/gstvaapiencode_h264_fei.c:
3976 gst: encode: h264_fei: remove useless comparison
3977 The expression "len >= 0" is always true since "len"
3978 is an unsigned type. And it is clear that the writers
3979 intention was not to write "len > 0" since we handle
3980 len == 0 in the ensuing "if (len < 3)" conditional
3983 2019-09-19 11:17:24 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3985 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3986 libs: encoder: h264_fei: fix potential overflow before widen
3987 Found by static analysis. encoder->mb_width * encoder->mb_height
3988 is evaluated using 32-bit arithmetic before widen. Thus, cast
3989 at least one of these to guint64 to avoid overflow.
3991 2019-09-19 10:56:13 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
3993 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3994 libs: encoder: h264_fei: remove dead error condition
3995 Found by static analysis. The feipak is always null
3996 when we reach the error target.
3998 2019-09-19 10:49:11 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4000 * gst-libs/gst/vaapi/gstvaapiutils.c:
4001 libs: utils: add missing break in switch
4003 2019-09-11 11:56:35 +0800 He Junyan <junyan.he@hotmail.com>
4005 * gst-libs/gst/vaapi/video-format.c:
4006 libs: video-format: Make all YUV format available
4007 The YUV formats have no ambiguity for drivers, so we can add them all.
4008 Some old driver(i965) does not implement full get/put image functions
4009 but can use derive image funtions for the YUV format. It does not
4010 report that kind of formats correctly in image query, but will derive
4011 that YUV format image from surface. The dynamic mapping of YUV format
4012 will block that manner.
4013 Adding more YUV format mapping has no side effect. So considering the
4014 legacy driver conformance, we add all YUV formats mapping statically
4015 and dynamic mapping RBG formats
4019 2019-09-18 15:30:03 +1000 Matthew Waters <matthew@centricular.com>
4021 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4022 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
4023 egl: Fix racyness in display thread creation
4024 Multiple different scenarios could break the display thread creation and
4025 end up blocking waiting for thread o be created. Fix them all by
4026 correctly waiting for a new boolean to become valid.
4028 2019-09-18 15:29:03 +1000 Matthew Waters <matthew@centricular.com>
4030 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4031 egl: don't advertise a wrapped EGLContext as actually wrapped
4032 It's not actually wrapped as we create a new EGLContext from the passed
4033 in EGLContext. As a result, the created EGLContext was never destroyed.
4035 2019-09-16 23:28:31 +0800 He Junyan <junyan.he@hotmail.com>
4037 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4038 libs: h264decoder: do not return error for unhandled NAL unit.
4039 Some streams have error data introducing unknown NAL type. There are
4040 also kinds of NAL types we do not want to handle. The old manner will
4041 set a decoder error when encounter this, which cause a latent crash bug.
4042 The decoder may successfully decode the picture and insert it into DPB.
4043 But there are error NAL units after the AU which cause the post unit error
4044 and make that frame dropped. The later output of the picture still want
4045 to ref that frame and crash.
4046 No need to set decoder error when can not recognize or handle the NAL
4047 unit, just skip it and continue.
4050 2019-09-11 14:32:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4052 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4053 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4054 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4055 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4056 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4057 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4058 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4059 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4060 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4061 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4062 * gst/vaapi/gstvaapiencode.c:
4063 libs: encoders: use GST_PARAM_USER_SHIFT to define internal params
4064 This patch makes use of GST_PARAM_USER_SHIFT to define the internal
4065 param in encoders to decide which parameters to expose. Thus
4066 gstreamer-vaapi will not interfere with any change in GStreamer in the
4068 Also, the internal symbol was change to
4069 GST_VAAPI_PARAM_ENCODER_EXPOSURE to keep the namespacing.
4071 2019-09-09 18:06:51 +0800 He Junyan <junyan.he@hotmail.com>
4073 * gst-libs/gst/vaapi/gstvaapiimage.c:
4074 * gst-libs/gst/vaapi/video-format.c:
4075 libs: Add BGR10A2_LE support for color space conversion.
4078 2019-08-23 14:41:06 +0800 He Junyan <junyan.he@hotmail.com>
4080 * gst-libs/gst/vaapi/gstvaapisurface.c:
4081 libs: surface: add pointer check for surface_new_from_formats.
4083 gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse !
4084 vaapijpegdec ! videoconvert ! video/x-raw,format=I420 ! vaapisink
4085 will crash on i965 driver because of no pointer check.
4086 We now generate the video format map between GST format and VA format
4087 dynamically based on the image format returned by vaQueryImageFormats.
4088 i965 driver does to report image format of 444P and Y800 forcc, while
4089 the jpeg decoder context VASurfaceAttribPixelFormat use them. We can
4090 not recognize these format and pass a NULL pointer to
4091 gst_vaapi_surface_new_from_formats.
4092 We need to add a pointer check here and let the fallback logic handle
4093 this case correctly.
4094 Other drivers work well.
4096 2019-09-07 13:23:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4098 * gst-libs/gst/vaapi/gstvaapiutils.c:
4099 libs: utils: guard the VAEntrypointFEI symbol
4100 VAEntrypointFEI appeared in libva 2.0.0 (API version 1.0.0)
4102 2019-09-05 14:48:22 +0800 He Junyan <junyan.he@hotmail.com>
4104 * gst-libs/gst/vaapi/gstvaapidisplay.c:
4105 * gst-libs/gst/vaapi/video-format.c:
4106 * gst-libs/gst/vaapi/video-format.h:
4107 libs: video-format: Refine the video format mapping.
4108 Improve the mapping between va format and gst format. The new map
4109 will be generated dynamically, based on the query result of image
4110 format in VA driver. Also consider the ambiguity of RGB color
4113 2019-04-15 16:51:26 +0100 Philippe Normand <philn@igalia.com>
4115 * gst/vaapi/gstvaapipluginutil.c:
4116 pluginutil: Remove Mesa from drivers white list
4117 The Mesa Gallium driver is poorly tested currently, leading to bad user
4118 experience for AMD users. The driver can be added back to the white list at
4119 runtime using the GST_VAAPI_ALL_DRIVERS environment variable.
4121 2019-07-08 14:18:00 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4123 * gst/vaapi/gstvaapipostproc.c:
4124 * gst/vaapi/gstvaapipostproc.h:
4125 * gst/vaapi/gstvaapipostprocutil.c:
4126 vaapipostproc: allow cropping via properties
4127 Add crop-left, crop-right, crop-top and crop-bottom
4128 properties to vaapipostproc.
4130 2019-08-30 17:31:45 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4132 * gst/vaapi/gstvaapipostproc.c:
4133 vaapipostproc: rotate outbuf and crop meta if forwarding
4134 When forwarding crop meta to downstream, the output
4135 buffer and crop meta need to be rotated, too.
4137 for i in 90r 180 90l vert horiz ul-lr ur-ll
4139 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4140 ! videocrop top=100 bottom=30 left=40 right=20 \
4141 ! vaapipostproc video-direction=$i \
4143 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4144 ! videocrop top=100 bottom=30 left=40 right=20 \
4145 ! vaapipostproc video-direction=$i \
4146 ! identity drop-allocation=true \
4150 2019-08-30 14:14:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4152 * gst/vaapi/gstvaapipostproc.c:
4153 vaapipostproc: fix output buffer WxH for crop meta forwarding
4154 Adding crop meta x,y to w,h only compensates for left,top
4155 cropping. But we also need to compensate for right,bottom
4157 The video meta contains the appropriate w,h (uncropped)
4158 values, so use it instead.
4160 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4161 ! videocrop top=50 bottom=30 left=40 right=20 \
4162 ! vaapipostproc ! vaapisink & \
4163 gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4164 ! videocrop top=50 bottom=30 left=40 right=20 \
4165 ! vaapipostproc ! identity drop-allocation=1 \
4168 2019-09-04 10:52:51 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4170 * gst/vaapi/gstvaapipostproc.c:
4171 vaapipostproc: handle size and direction together in src events
4172 Mapping a pointer event needs to consider both size and
4173 video-direction operations together, not just one or the other.
4174 This fixes an issue where x,y were not being mapped correctly
4175 for 90r, 90l, ur-ll and ul-lr video-direction. In these directions,
4176 the WxH are swapped and GST_VAAPI_POSTPROC_FLAG_SIZE is set. Thus,
4177 the first condition in the pointer event handling was entered and
4178 x,y scale factor were incorrectly computed due to srcpad WxH
4180 This also fixes all cases where both video-direction and scaling
4181 are enabled at the same time.
4182 Test that all pointer events map appropriately:
4185 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4186 ! vaapipostproc video-direction=${i} width=300 \
4188 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4189 ! vaapipostproc video-direction=${i} width=300 height=200 \
4191 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4192 ! vaapipostproc video-direction=${i} height=200 \
4194 GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4195 ! vaapipostproc video-direction=${i} \
4199 2019-08-20 14:22:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4201 * gst/vaapi/gstvaapipostproc.c:
4202 * gst/vaapi/gstvaapipostproc.h:
4203 vaapipostproc: advertise crop meta is handled
4204 Advertise to upstream that vaapipostproc can handle
4206 When used in conjunction with videocrop plugin, the
4207 videocrop plugin will only do in-place transform on the
4208 crop meta when vaapipostproc advertises the ability to
4209 handle it. This allows vaapipostproc to apply the crop
4210 meta on the output buffer using vaapi acceleration.
4211 Without this advertisement, the videocrop plugin will
4212 crop the output buffer directly via software methods,
4213 which is not what we desire.
4214 vaapipostproc will not apply the crop meta if downstream
4215 advertises crop meta handling; vaapipostproc will just
4216 forward the crop meta to downstream. If crop meta is
4217 not advertised by downstream, then vaapipostproc will
4218 apply the crop meta.
4220 1. vaapipostproc will forward crop meta to vaapisink
4221 gst-launch-1.0 videotestsrc \
4222 ! videocrop left=10 \
4225 2. vaapipostproc will do the cropping
4226 gst-launch-1.0 videotestsrc \
4227 ! videocrop left=10 \
4229 ! identity drop-allocation=1 \
4232 2019-08-29 18:44:36 +0800 He Junyan <junyan.he@hotmail.com>
4234 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4235 libs: encoder: clean two virtual func in encoder class
4236 set_property and get_default_properties functions are no longer
4237 needed for encoder class.
4239 2019-08-29 18:43:30 +0800 He Junyan <junyan.he@hotmail.com>
4241 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4242 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4243 libs: encoder: delete old set_property and property enum feienc264
4245 2019-08-29 18:39:27 +0800 He Junyan <junyan.he@hotmail.com>
4247 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4248 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4249 libs: encoder: delete old set_property and property enum in h264 fei
4251 2019-08-29 18:37:58 +0800 He Junyan <junyan.he@hotmail.com>
4253 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4254 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4255 libs: encoder: delete old set_property and property enum in vp9
4257 2019-08-29 18:36:51 +0800 He Junyan <junyan.he@hotmail.com>
4259 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4260 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4261 libs: encoder: delete old set_property and property enum in vp8
4263 2019-08-29 18:35:59 +0800 He Junyan <junyan.he@hotmail.com>
4265 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4266 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4267 libs: encoder: delete old set_property and property enum in mpeg2
4269 2019-08-29 18:34:57 +0800 He Junyan <junyan.he@hotmail.com>
4271 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4272 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4273 libs: encoder: delete old set_property and property enum in jpeg
4275 2019-08-29 18:31:56 +0800 He Junyan <junyan.he@hotmail.com>
4277 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4278 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4279 libs: encoder: delete old set_property and property enum in h265
4281 2019-08-29 18:30:07 +0800 He Junyan <junyan.he@hotmail.com>
4283 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4284 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4285 libs: encoder: delete old set_property and property enum in h264
4287 2019-08-29 18:17:42 +0800 He Junyan <junyan.he@hotmail.com>
4289 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4290 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4291 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4292 libs: encoder: delete EncoderPropInfo related functions
4294 2019-08-29 16:13:19 +0800 He Junyan <junyan.he@hotmail.com>
4296 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4297 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4298 libs: encoder: delete encoder_set_property
4299 We no longer need this obsolete set_property function now after
4300 switch to standard gobject's property manner.
4301 Also delete the old encoder's property enum in the header file.
4303 2019-08-29 15:59:43 +0800 He Junyan <junyan.he@hotmail.com>
4305 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4306 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4307 libs: encoder: delete properties_get_default for base class
4309 2019-08-29 15:52:04 +0800 He Junyan <junyan.he@hotmail.com>
4311 * gst/vaapi/gstvaapiencode.c:
4312 * gst/vaapi/gstvaapiencode.h:
4313 plugin: encode: delete useless init_properties.
4314 Also delete the get_properties function in encode class. We now
4315 use g_object_class_list_properties to get all properties for
4316 internal encoder class.
4318 2019-08-29 15:43:45 +0800 He Junyan <junyan.he@hotmail.com>
4320 * gst/vaapi/gstvaapiencode.c:
4321 * gst/vaapi/gstvaapiencode.h:
4322 plugin: encode: delete set/get_property func in encode class
4323 Use standard gobject's property functions to replace the old way.
4325 2019-08-29 15:31:16 +0800 He Junyan <junyan.he@hotmail.com>
4327 * gst/vaapi/gstvaapiencode.c:
4328 * gst/vaapi/gstvaapiencode.h:
4329 plugin: encode: delete gst_vaapiencode_init_properties
4330 No need to init the properties got by get_default_properties func
4331 now. The properties are inited correctly in internal encoder class.
4333 2019-08-29 15:19:10 +0800 He Junyan <junyan.he@hotmail.com>
4335 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4336 libs: encoder: delete 3 useless init macro
4338 2019-08-29 15:16:26 +0800 He Junyan <junyan.he@hotmail.com>
4340 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4341 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4342 libs: encoder: delete get_default_properties of feienc
4344 2019-08-29 15:14:14 +0800 He Junyan <junyan.he@hotmail.com>
4346 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4347 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4348 libs: encoder: delete get_default_properties of H264 Fei
4350 2019-08-29 15:07:17 +0800 He Junyan <junyan.he@hotmail.com>
4352 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4353 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4354 libs: encoder: delete get_default_properties of VP9
4356 2019-08-29 15:06:25 +0800 He Junyan <junyan.he@hotmail.com>
4358 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4359 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4360 libs: encoder: delete get_default_properties of VP8
4362 2019-08-29 15:03:52 +0800 He Junyan <junyan.he@hotmail.com>
4364 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4365 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4366 libs: encoder: delete get_default_properties of MPEG2
4368 2019-08-29 15:03:19 +0800 He Junyan <junyan.he@hotmail.com>
4370 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4371 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4372 libs: encoder: delete get_default_properties of JPEG
4374 2019-08-30 19:15:38 +0800 He Junyan <junyan.he@hotmail.com>
4376 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4377 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4378 libs: encoder: delete get_default_properties of H265
4380 2019-08-29 14:59:12 +0800 He Junyan <junyan.he@hotmail.com>
4382 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4383 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4384 libs: encoder: delete get_default_properties of H264
4386 2019-08-29 14:53:59 +0800 He Junyan <junyan.he@hotmail.com>
4388 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4389 libs: encoder: delete the useless constructed func for encoder.
4391 2019-08-26 23:16:33 +0800 He Junyan <junyan.he@hotmail.com>
4393 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4394 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4395 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4396 libs: encoder: implement get_view_ids for h264 encoder.
4398 2019-08-20 23:56:33 +0800 He Junyan <junyan.he@hotmail.com>
4400 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4401 * gst/vaapi/gstvaapiencode.c:
4402 * gst/vaapi/gstvaapiencode_h264.c:
4403 * gst/vaapi/gstvaapiencode_h264_fei.c:
4404 * gst/vaapi/gstvaapiencode_h265.c:
4405 * gst/vaapi/gstvaapiencode_jpeg.c:
4406 * gst/vaapi/gstvaapiencode_mpeg2.c:
4407 * gst/vaapi/gstvaapiencode_vp8.c:
4408 * gst/vaapi/gstvaapiencode_vp9.c:
4409 gst: encode: enable new type of property mechanism.
4411 2019-08-20 22:16:35 +0800 He Junyan <junyan.he@hotmail.com>
4413 * gst/vaapi/gstvaapiencode.c:
4414 * gst/vaapi/gstvaapiencode.h:
4415 gst: encode: add property help functions for encoder properties.
4416 The encoder is a true gstobject now and all the properties are using
4417 gobject's properties mechanism. Add help functions to handle the properties
4418 between encode and encoder class.
4419 The basic idea is mapping the same property between encoder and encode. All
4420 the encoder's properties will have the same name, the same type in encode.
4421 The set/get property function just forward the property setting/getting to
4422 the encoder using the same property name and value. Because the encoder is
4423 created on needed, we need to cache the property setting in encode.
4425 2019-08-30 18:39:32 +0800 He Junyan <junyan.he@hotmail.com>
4427 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4428 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4429 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4430 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4431 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4432 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4433 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4434 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4435 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4436 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4437 libs: encoder: add flags to all encoder properties.
4438 G_PARAM_CONSTRUCT make all properties init correctly, we do not
4439 need to init the properties manually.
4440 G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific
4441 flag, means need to expose the property to according encode class.
4443 2019-08-20 17:00:39 +0800 He Junyan <junyan.he@hotmail.com>
4445 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4446 libs: encoder: Add properties for h264 encoder fei.
4447 Install properties for h264 encoder fei class. Also set the new get/set
4448 property functions for gobject class. Still use the old properties
4449 way now and this new feature will be enabled later.
4451 2019-08-20 15:58:30 +0800 He Junyan <junyan.he@hotmail.com>
4453 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4454 libs: encoder: Add properties for h264 fei encoder.
4455 Install properties for h264 fei encoder class. Also set the new get/set
4456 property functions for gobject class. Still use the old properties
4457 way now and this new feature will be enabled later.
4459 2019-08-20 15:29:27 +0800 He Junyan <junyan.he@hotmail.com>
4461 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4462 libs: encoder: Add properties for vp9 encoder.
4463 Install properties for vp9 encoder class. Also set the new get/set
4464 property functions for gobject class. Still use the old properties
4465 way now and this new feature will be enabled later.
4467 2019-08-20 15:01:02 +0800 He Junyan <junyan.he@hotmail.com>
4469 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4470 libs: encoder: Add properties for vp8 encoder.
4471 Install properties for vp8 encoder class. Also set the new get/set
4472 property functions for gobject class. Still use the old properties
4473 way now and this new feature will be enabled later.
4475 2019-08-20 14:31:58 +0800 He Junyan <junyan.he@hotmail.com>
4477 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4478 libs: encoder: Add properties for mpeg2 encoder.
4479 Install properties for mpeg2 encoder class. Also set the new get/set
4480 property functions for gobject class. Still use the old properties
4481 way now and this new feature will be enabled later.
4483 2019-08-20 14:53:06 +0800 He Junyan <junyan.he@hotmail.com>
4485 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4486 libs: encoder: Add properties for jpeg encoder.
4487 Install properties for jpeg encoder class. Also set the new get/set
4488 property functions for gobject class. Still use the old properties
4489 way now and this new feature will be enabled later.
4491 2019-08-20 14:12:36 +0800 He Junyan <junyan.he@hotmail.com>
4493 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4494 libs: encoder: Add properties for h265 encoder.
4495 Install properties for h265 encoder class. Also set the new get/set
4496 property functions for gobject class. Still use the old properties
4497 way now and this new feature will be enabled later.
4499 2019-08-20 01:33:40 +0800 He Junyan <junyan.he@hotmail.com>
4501 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4502 libs: encoder: Add properties for h264 encoder.
4503 Install properties for h264 encoder class. Also set the new get/set
4504 property functions for gobject class. Still use the old properties
4505 way now and this new feature will be enabled later.
4507 2019-08-19 15:38:09 +0800 He Junyan <junyan.he@hotmail.com>
4509 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4510 libs: encoder: add properties and prop help functions
4511 Add all common properties to encoder base class. rate-control and
4512 tune are moved to sub class.
4514 2019-08-29 14:38:49 +0800 He Junyan <junyan.he@hotmail.com>
4516 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4517 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4518 libs: encoder: delete useless gst_vaapi_encoder_new func.
4519 GstVaapiEncoder is a abstract gobject and never be created directly.
4521 2019-07-27 00:55:53 +0800 He Junyan <junyan.he@hotmail.com>
4523 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4524 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4525 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4526 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4527 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4528 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4529 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4530 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4531 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4532 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4533 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4534 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4535 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4536 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4537 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4538 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4539 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4540 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4541 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4542 lib: encoder: gstobjectfy all vaapi encoders.
4543 Replace all gstvaapiobject in vaapi encoders with standard gstobject.
4544 Let the gstobject common logic to handle all the init and finalize
4545 works. But the property install/set/get still use the old way, need
4546 to be improved later.
4548 2019-08-29 12:11:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4550 * gst/vaapi/gstvaapipostproc.c:
4551 vaapipostproc: check for filter before appending caps
4552 While ensuring the allowed sink pad caps, the filter attributes set
4553 the frame size restriction, but it is not ensured, at that moment,
4554 that the filter is already instantiaded.
4555 In order to silence the glib logs, this patch add only calls
4556 gst_vaapi_filter_append_caps() if the filter is instantiated.
4558 2019-08-28 12:49:03 -0400 Thibault Saunier <tsaunier@igalia.com>
4560 * gst/vaapi/gstvaapidecodebin.c:
4561 Classify vaapidecodebin as a hardware decoder
4563 2019-08-27 18:12:45 +0800 He Junyan <junyan.he@hotmail.com>
4565 * gst/vaapi/gstvaapipostproc.c:
4566 libs: postproc: fix a memory leak point.
4567 filter_ops and filter_formats should already have valid value when
4568 the function gst_vaapipostproc_ensure_filter_caps re-enter
4570 2019-08-27 01:30:36 +0800 He Junyan <junyan.he@hotmail.com>
4572 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4573 libs: util: Fix a memory leak in config_surface_attributes_get
4575 2019-08-22 14:33:54 +0800 Wangfei <fei.w.wang@intel.com>
4577 * gst/vaapi/gstvaapidecode.c:
4578 vaapidecode: support transform ROI meta
4579 This will benefit the use case like:
4580 src ---> encode ---> decode ---> circle ROI ---> sink
4585 2019-08-23 19:10:15 +0200 Mathieu Duponchelle <mathieu@centricular.com>
4587 * gst/vaapi/gstvaapidecodedoc.c:
4588 docstrings: port ulinks to markdown links
4590 2019-08-20 17:05:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4592 * gst-libs/gst/vaapi/Makefile.am:
4593 * gst-libs/gst/vaapi/gstvaapicontext.c:
4594 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
4595 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
4596 * gst-libs/gst/vaapi/meson.build:
4597 libs: remove context's overlay
4598 The context overlay was an optimization to apply a video composition
4599 to all the surfaces bound to a context.
4600 But since commit 18031dc6 this optimization was disabled, so it is
4601 better just get rid of it.
4603 2019-08-20 16:50:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4605 * gst-libs/gst/vaapi/gstvaapicontext.c:
4606 * gst-libs/gst/vaapi/gstvaapisurface.c:
4607 * gst-libs/gst/vaapi/gstvaapisurface.h:
4608 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
4609 * gst/vaapi/gstvaapipluginutil.c:
4610 * tests/test-subpicture.c:
4611 libs: remove surface's parent context
4612 In commit 18031dc6 surface's parent context is not assigned because of
4613 circular references. Since then (2013), there's has no issue with
4614 subpictures attached to a context, the current only users of this API.
4615 This patch cleans up all of related code with the unused surface's
4618 2019-08-18 13:53:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4620 * gst/vaapi/gstvaapidecode.c:
4621 vaapidecode: guard if no structure is available in caps
4623 2019-08-18 13:53:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4625 * gst-libs/gst/vaapi/gstvaapifilter.c:
4626 * gst-libs/gst/vaapi/gstvaapifilter.h:
4627 * gst/vaapi/gstvaapipostproc.c:
4628 vaapipostproc: append frame size restrictions in caps
4630 2019-08-18 13:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4632 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4633 libs: profilecaps: refactor common code
4635 2019-08-16 19:35:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4637 * gst/vaapi/gstvaapiencode.c:
4638 vaapiencode: set frame size restrictions in caps
4641 2019-08-16 19:28:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4643 * gst-libs/gst/vaapi/gstvaapiencoder.c:
4644 * gst-libs/gst/vaapi/gstvaapiencoder.h:
4645 * gst/vaapi/gstvaapiencode.c:
4646 vaapiencode: enhance how the profile is defined
4647 This code doesn't define the profile used by the internal encoder, but
4648 it used to "predict" which is going to be used and to get the caps
4650 Before the profile was predicted by checking the donwstream caps, but
4651 sometimes they are not defined, setting an unknown profile. In order
4652 to enhances this situation, the encoder asks to internal encoder if it
4653 has one. If so, it is used.
4654 To ask the internal encoder's profile a new accessor function was
4655 added: gst_vaapi_encoder_get_profile()
4657 2019-08-16 19:26:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4659 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4660 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4661 libs: profilecaps: defines gst_vaapi_profile_caps_append_encoder()
4662 Previously it was just a boilerplate. Now it is real implementation.
4664 2019-08-16 19:17:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4666 * gst-libs/gst/vaapi/gstvaapiutils.c:
4667 libs: utils: treat va_rt_format as bitwise flag
4668 The return value of vaGetConfigAttributes() of VAConfigAttribRTFormat
4669 is a bitwise flag with *all* the supported chroma types.
4670 Previously it was assumed that the return value was a single value,
4671 thus when returning the GST_VAAPI_CHROMA_TYPE_XXX the code was a
4672 simple case. But it is wrong.
4673 This patch changes the case block with a sequence of ifs testing the
4674 bitwise. For now we assume a "priority" list in the testing sequence.
4676 2019-08-16 18:07:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4678 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4679 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4680 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4681 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4682 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4683 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4684 * gst-libs/gst/vaapi/gstvaapiprofile.c:
4685 * gst-libs/gst/vaapi/gstvaapiprofile.h:
4686 * tests/test-display.c:
4687 libs: profile: add gst_vaapi_profile_get_va_name()
4688 gst_vaapi_profile_get_name() returns a proper name for
4689 GstCaps. Nonetheless, there are many profiles which don't have a name
4690 representation for that realm.
4691 gst_vaapi_profile_get_va_name() returns the name of the profile
4692 according to its VAProfile name.
4693 This new funtion is used in the encoder error message.
4695 2019-08-05 19:47:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4697 * gst-libs/gst/vaapi/Makefile.am:
4698 * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4699 * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4700 * gst-libs/gst/vaapi/meson.build:
4701 * gst/vaapi/gstvaapidecode.c:
4702 libs: profilecaps: move caps config into a new file
4703 Implement all the appending of frame size restrictions in caps, for
4704 encoders and decoders, in a new source file.
4706 2019-08-05 19:45:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4708 * gst-libs/gst/vaapi/gstvaapidecoder.c:
4709 libs: decoder: ref the caps as property
4711 2019-08-02 16:56:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4713 * gst-libs/gst/vaapi/gstvaapicontext.c:
4714 * gst-libs/gst/vaapi/gstvaapicontext.h:
4715 libs: context: add gst_vaapi_context_get_surface_attributes()
4716 This function copies the surface attributes from the context's object
4719 2019-08-02 12:46:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4721 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
4722 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
4723 * gst-libs/gst/vaapi/gstvaapiutils.c:
4724 * gst-libs/gst/vaapi/gstvaapiutils.h:
4725 libs: move memory types conversions to gstvaapiutils
4726 And add more supported memory types by current VA.
4728 2019-08-01 19:48:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4730 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4731 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4732 libs: utils: remove unused function gst_vaapi_get_surface_formats()
4734 2019-08-01 19:46:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4736 * gst-libs/gst/vaapi/gstvaapicontext.c:
4737 * gst-libs/gst/vaapi/gstvaapicontext.h:
4738 * gst-libs/gst/vaapi/gstvaapifilter.c:
4739 libs: context, filter: use new surface attributes API
4741 2019-08-01 19:13:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4743 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4744 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4745 libs: utils: add gst_vaapi_config_surface_attributes_get()
4746 To extract the surface restrictions per config using a new structure:
4747 GstVaapiConfigSurfaceAttributes
4749 2019-07-31 13:08:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4751 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4752 Split the surface attribute retrieval
4754 2019-07-15 21:51:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4756 * gst/vaapi/gstvaapipostproc.c:
4757 vaapipostproc: handle navigation downstream event
4758 When navigation events contains coordiantes those have to be mapped
4759 to the new size and/or orientation.
4761 2019-07-15 21:23:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4763 * tests/elements/test-vaapisink.c:
4764 test-vaapisink: also use vaapipostproc to change orientation
4766 2019-07-15 21:27:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4768 * gst-libs/gst/vaapi/gstvaapifilter.c:
4769 * gst-libs/gst/vaapi/gstvaapifilter.h:
4770 * gst/vaapi/gstvaapipostproc.c:
4771 * gst/vaapi/gstvaapipostproc.h:
4772 * gst/vaapi/gstvaapipostprocutil.c:
4773 vaapipostproc: handle image-orientation upstream event
4774 Now that vaapipostproc can possible handle video-direction, it
4775 should also handle the image-orientation event from upstream if
4776 video-direction property is set to auto.
4778 2019-07-26 22:09:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4780 * gst/vaapi/gstvaapipostproc.c:
4781 vaapipostproc: add missing locks when adding flags
4783 2019-07-26 22:05:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4785 * gst/vaapi/gstvaapipostproc.c:
4786 vaapipostproc: update filter before fixate caps
4787 It is requiered to know if postproc is capable to change the video
4788 direction before fixating the source caps.
4789 In order to do it, it'ss required to know if there's a functional VPP,
4790 but that's checked at create() vmethod, which occurs after caps
4792 This patch checks for a functional VPP at fixate caps and, if so,
4793 checks for the enabled filtes and later do the caps fixations.
4795 2019-07-26 19:46:09 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4797 * gst-libs/gst/vaapi/gstvaapifilter.c:
4798 * gst-libs/gst/vaapi/gstvaapivalue.c:
4799 * gst-libs/gst/vaapi/gstvaapivalue.h:
4800 * gst/vaapi/gstvaapipostproc.c:
4801 vaapipostproc: element warning if video direction is unsupported
4802 If the video direction is unsupported by the driver, an element
4803 warning is posted in the bus to notify the application.
4804 gst_vaapi_enum_type_get_nick() was added in the library thus it can
4805 be used elsewhere. It retrives the nick from an enum gtype.
4807 2019-07-26 19:09:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4809 * gst-libs/gst/vaapi/gstvaapifilter.c:
4810 libs: filter: check mirror and rotation caps only once
4811 This patch locks the display before querying the pipeline caps and
4812 stores the mirror and rotation capabilities, thus they are not queried
4813 every time the video direction is set.
4815 2019-08-16 19:51:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4817 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4818 libs: encoder: vp9: set VP9_0 profile as default
4819 Commit 0afc8131 introduced a regression and only NV12 format were
4820 admitted, failing in any other valid color format.
4821 This patch sets the profile to GST_VAAPI_PROFILE_VP9_0 by default.
4823 2019-08-16 13:25:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4825 * gst-libs/gst/vaapi/gstvaapifilter.c:
4826 libs: filter: fail if first color balance value is invalid
4828 2019-08-06 19:24:08 +0800 Yan Wang <yan.wang@linux.intel.com>
4830 * gst-libs/gst/vaapi/gstvaapifilter.c:
4831 * gst-libs/gst/vaapi/gstvaapiutils.c:
4832 * gst-libs/gst/vaapi/gstvaapiutils.h:
4833 libs: filter: set all color balance values
4834 When set multiple settings of color balance like hue, saturation,
4835 brightness and contrast for vaapipostproc, they should be set as
4836 parameters of color balance filter, at the same color balance
4838 Otherwise, multiple color balance filter calling will cause
4839 previous setting get reset by the last calling with default value.
4841 Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
4843 2019-08-16 11:02:08 +0800 Wangfei <fei.w.wang@intel.com>
4845 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4846 libs: h265dec: remove limitation of get iq matrix
4847 According hevc spec, scaling_list_data is not related
4848 to chroma_format_idc.
4850 2019-05-30 23:52:51 +0800 He Junyan <junyan.he@hotmail.com>
4852 * gst-libs/gst/vaapi/gstvaapivideopool.c:
4853 libs: videopool: fix undocumented behavior and counting
4854 gst_vaapi_video_pool_reserve_unlocked() hit an undocumented behavoir
4855 because it locks twice the same mutex.
4856 Also, n had different meanings in the current code: as an increase
4857 value and as a new total of allocated surfaces.
4858 This patche removes the undocumented behavoir (usually a deadlock) and
4859 fixes the meaning of n as the new total of allocated surfaces.
4860 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4862 2019-07-17 11:56:45 +0800 He Junyan <junyan.he@hotmail.com>
4864 * gst-libs/gst/vaapi/gstvaapiutils.c:
4865 libs: utils: Add missing entries for string_of_VAEntrypoint.
4867 2019-07-18 22:01:01 +0800 He Junyan <junyan.he@hotmail.com>
4869 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4870 libs: encoder: Consider vp9 profiles based on input format.
4871 Only support GST_VAAPI_PROFILE_VP9_0 and GST_VAAPI_PROFILE_VP9_2 now.
4874 2019-08-12 18:41:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4876 * gst/vaapi/gstvaapivideomemory.c:
4877 vaapivideomemory: demote error message to info
4878 The main reason to demote the message's level is because it is not an
4879 error, it's a possible output of the trial and there's a code path
4881 Secondly, it's very annoying when using gallium driver for radeon.
4883 2019-07-18 13:32:46 +0800 Wangfei <fei.w.wang@intel.com>
4885 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4886 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4887 * gst-libs/gst/vaapi/gstvaapitypes.h:
4888 * gst-libs/gst/vaapi/gstvaapiutils.c:
4889 * gst-libs/gst/vaapi/gstvaapivalue.c:
4890 libs: encoder: h264: support ICQ/QVBR bitrate control mode
4891 ICQ is Intelligent Constant Quality. It will use the initial QP
4892 vaule of icq-quality-factor to adjust QP at MB level intelligently
4893 to improve subjective quality.
4894 QVBR is Quality defined VBR. It will use qvbr-quality-factor to
4895 adjust QP for each MB to get enough quality picture without waste
4898 2019-08-05 10:51:24 +0800 Wangfei <fei.w.wang@intel.com>
4900 * gst-libs/gst/vaapi/gstvaapitypes.h:
4901 libs: Let GST_VAAPI_RATECONTROL_MASK return unsigned int
4902 The value return from GST_VAAPI_RATECONTROL_MASK will be used by
4903 GST_VAAPI_POPCOUNT32 as its inpput. GST_VAAPI_POPCOUNT32 can only
4904 deal with unsigned int. Otherwise there may be an error of out of
4905 range of integer if we define few more rate-control mode.
4907 2019-06-07 09:54:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4909 * gst/vaapi/gstvaapidecodebin.c:
4910 vaapidecodebin: set queue's max size buffers to 1
4911 Otherwise the queue will swallow all the available decoder's surfaces
4912 reaching a dead-lock.
4913 This setting might impact the bin's peformance, but it's a trade-off.
4915 2019-06-07 09:53:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4917 * gst/vaapi/gstvaapidecodebin.c:
4918 vaapidecodebin: set properties default values
4920 2019-05-31 13:12:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4922 * gst/vaapi/gstvaapidecode.c:
4923 vaapidecode: don't error if can't push buffers downtream
4924 When the code path goes to push buffers downstream when no surface
4925 available in decoder context, and it fails the code bails out with a
4927 That behavior is wrong, since it shouldn't be fatal. The use case is
4928 when the video stream is disabled.
4929 This patch just ignores the errors in this situation and demotes the
4930 level of a log message.
4932 2019-05-18 13:24:35 +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/gstvaapiencoder_h264_fei.c:
4937 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4938 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4939 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4940 libs: encoder: h264,h265: add new property "max-qp"
4941 Add new property "max-qp" to allow set the maximum quantisation
4944 2019-05-23 10:18:52 -0400 Wangfei <fei.w.wang@intel.com>
4946 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4947 libs: encoder: vp9: add low power mode encode
4948 By now, this feature only support by media-driver on Ice Lake
4949 platform, more information you can reference:
4950 https://github.com/intel/media-driver
4952 2019-07-15 15:33:07 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4954 * gst/vaapi/gstvaapipostprocutil.c:
4955 vaapipostproc: update PAR when rotating
4956 When rotating, swap pixel-aspect-ratio during
4960 2019-07-01 15:26:18 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
4962 * gst-libs/gst/vaapi/gstvaapifilter.c:
4963 * gst-libs/gst/vaapi/gstvaapiutils.c:
4964 * gst-libs/gst/vaapi/gstvaapiutils.h:
4965 * gst/vaapi/gstvaapipostprocutil.c:
4966 vaapipostproc: add rotation support
4967 Adds vpp rotation support to vaapipostproc. Uses
4968 property video-direction. Default is identity (no
4972 2019-05-22 10:47:30 -0400 Wangfei <fei.w.wang@intel.com>
4974 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4975 libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver
4976 Intel media-driver requires enablement of diff_cu_qp_delta_depth when
4977 cu_qp_delta_enabled_flag enabled.
4980 2019-07-01 17:02:33 +0800 Wangfei <fei.w.wang@intel.com>
4982 * gst-libs/gst/vaapi/gstvaapiutils.c:
4983 libs: encoder: Add MB ratecontrol mode to get its string
4985 2019-07-01 16:52:00 +0800 Wangfei <fei.w.wang@intel.com>
4987 * gst-libs/gst/vaapi/gstvaapiutils.c:
4988 libs: encoder: refine guard of bitrate control mode
4989 Remove useless guard of all bitrate control mode's guard except MB
4990 which is define in VA-API version 0.39.1.
4992 2019-06-29 00:08:40 +1000 Jan Schmidt <jan@centricular.com>
4994 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4995 h264: Update for parse_vui_params parameter removal.
4996 Update calls to the h264 parser lib for removal of the
4997 parse_vui_params parameter.
4999 2019-06-24 16:26:56 -0400 Wang Zhanjun <zhanjunx.wang@intel.com>
5001 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5002 libs: dec: vp9: do not use display size as decoded size
5003 If display size is smaller than current frame size, then the crop size
5004 will be set as display size, which either crashes the pipeline or the
5005 output MD5 does not match. Rather it should use the actual decoded size.
5006 This patch removes the cropping set. For rendering we can use aspect
5007 ratio to set display size.
5009 Signed-off-by: Wang Zhanjun <zhanjunx.wang@intel.com>
5010 Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
5012 2019-06-28 16:32:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5017 2019-06-25 19:11:12 +0800 He Junyan <junyan.he@hotmail.com>
5019 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5020 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5021 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
5022 libs: dec: h265: Consider chroma_bit_depth to choose chrome type
5023 For some main-10 stream, sometime the luma is 8 bits while chrome is more
5024 than 8 bits, which cause using the wrong NV12 surface as the render target
5028 2019-06-25 10:31:20 +0800 Wangfei <fei.w.wang@intel.com>
5030 * gst/vaapi/gstvaapidecode.c:
5031 vaapidecode: set initial decode format according surface chroma type
5032 For surfaces with different chroma type, it is prefer to initialize
5033 a format which chroma type should be same with surface chroma type
5034 instead of using fixed NV12.
5036 2019-05-30 09:48:51 -0400 Wangfei <fei.w.wang@intel.com>
5038 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5039 * gst-libs/gst/vaapi/gstvaapiimage.c:
5040 * gst-libs/gst/vaapi/video-format.c:
5041 * gst/vaapi/gstvaapidecode.c:
5042 * gst/vaapi/gstvaapipluginutil.h:
5043 libs: decoder: jpeg: add support 400/411/422/444 chroma type
5044 When create vaapi surface, it is better to use the chroma type get
5045 from jpeg file instead of using fixed 420 format. And the correct
5046 chroma type can be determined by horizontal_factor/vertical_factor
5047 flags that get from jpegparse.
5049 2019-06-22 00:05:24 +0800 He Junyan <junyan.he@hotmail.com>
5051 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5052 libs: dec: h265: Fix profile_idc mapping.
5053 The old mapping values return by gst_vaapi_utils_h265_get_profile_idc is
5054 wrong, though GST_H265_PROFILE_IDC_MAIN and GST_H265_PROFILE_IDC_MAIN_10
5055 happened to be the correct value.
5056 We only support Annex A profile_idc (1-4).
5058 2019-06-10 20:46:30 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5060 * gst/vaapi/gstvaapipluginbase.c:
5061 plugins: remove last negotiated video info if caps are same
5062 If the allocation caps and negotiated caps are the same,
5063 then ensure any previously negotiated video info is also
5064 removed. This can occur when multi-resolution video
5065 decoding returns to it's original resolution.
5068 2019-06-10 20:39:28 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5070 * gst/vaapi/gstvaapivideomemory.c:
5071 vaapivideomemory: allow negotiated info to be removed
5072 Allow NULL negotiated_vinfo to be passed into
5073 gst_allocator_set_vaapi_negotiated_video_info to allow
5074 any previously set info to be removed.
5076 2019-06-06 17:24:30 +0300 Freyr <freyrnjordrson@gmail.com>
5078 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5079 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5080 libs: encoder: vp8,vp9: reset frame_counter when input frame's format changes
5081 When input frame's formate changes, vp{8,9} encoders don't reset their frame
5082 counter, hence the newly created frame could become a P-frame, leading to some
5083 major troubles (sigabrt in libdrm in case of vp9). This patch adds some frame
5084 prediction-related reset logic to the `flush' methods of GstVaapiEncoderVP8 and
5085 GstVaapiEncoderVP9 implementations.
5087 2019-05-31 12:30:03 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5089 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5090 libs: encoder: increase bitrate prop max value
5091 There are many profile levels that can support
5092 more than 102400 kbps. Thus, increase the max
5093 allowed bitrate property value from 102400 kbps
5094 to 2048000 kbps (same as msdk encoder plugins).
5096 2019-06-04 13:27:50 +0800 He Junyan <junyan.he@hotmail.com>
5098 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5099 libs: mpeg2 encoder: No packed header for SPS and PPS
5100 Dislable passing down packed PPS and PPS to driver if driver does
5104 2019-05-31 23:10:33 +0200 Niels De Graef <niels.degraef@barco.com>
5109 meson: Bump minimal GLib version to 2.44
5110 This means we can use some newer features and get rid of some
5111 boilerplate code using the G_DECLARE_* macros.
5112 As discussed on IRC, 2.44 is old enough by now to start depending on it.
5114 2019-05-31 13:08:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5116 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5117 libs: dec: vp9: clear parser pointer after release
5118 Fix an use-after-release of the parser pointer in VP9 decoder.
5120 2019-05-28 12:09:36 +0300 Freyr666 <sky_rider_93@mail.ru>
5122 * gst/vaapi/gstvaapiencode.c:
5123 vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function
5124 This fixes a deadlock in gst_vaapiencode_change_state, which was due to
5125 srcpad's chain function was locked waiting for available buffers. Since the
5126 coded buffers in codedbuf_queue become available after sinkpad consume the
5127 encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers
5128 are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for
5129 available buffers and holds the stream_lock of the srcpad.
5131 2019-05-29 23:08:22 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5133 * gst-libs/gst/vaapi/gstvaapitypes.h:
5134 * gst/vaapi/gstvaapidecodebin.c:
5135 * gst/vaapi/gstvaapidecodedoc.c:
5136 * gst/vaapi/gstvaapiencode_h264.c:
5137 * gst/vaapi/gstvaapiencode_h264_fei.c:
5138 * gst/vaapi/gstvaapiencode_h265.c:
5139 * gst/vaapi/gstvaapiencode_jpeg.c:
5140 * gst/vaapi/gstvaapiencode_mpeg2.c:
5141 * gst/vaapi/gstvaapiencode_vp8.c:
5142 * gst/vaapi/gstvaapiencode_vp9.c:
5143 * gst/vaapi/gstvaapipostproc.c:
5144 * gst/vaapi/gstvaapisink.c:
5145 doc: remove xml from comments
5147 2019-05-13 16:39:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5149 * gst-libs/gst/vaapi/gstvaapifilter.c:
5150 * gst-libs/gst/vaapi/gstvaapifilter.h:
5151 * gst-libs/gst/vaapi/gstvaapiutils.c:
5152 * gst-libs/gst/vaapi/gstvaapiutils.h:
5153 * gst/vaapi/gstvaapipostproc.c:
5154 * gst/vaapi/gstvaapipostproc.h:
5155 vaapipostproc: add mirror support
5156 Adds vpp mirroring support to vaapipostproc. Use
5157 property video-direction. Valid values are identity,
5158 horiz or vert. Default is identity (no mirror).
5160 v2: Use GstVideoOrientationMethod enum
5161 v3: Don't warn for VA_MIRROR_NONE.
5162 Use GST_TYPE_VIDEO_ORIENTATION_METHOD type.
5163 v4: Query VAAPI caps when setting mirror value
5164 instead of during per-frame processing.
5165 v5: Return TRUE in warning cases when setting mirror value.
5167 2019-05-29 01:35:17 +0200 Mathieu Duponchelle <mathieu@centricular.com>
5169 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
5170 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5171 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5172 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5173 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
5174 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5175 * gst/vaapi/gstvaapidecodebin.c:
5176 * gst/vaapi/gstvaapisink.c:
5177 doc: fix some incorrect gtk-doc links
5179 2019-05-16 09:22:42 -0400 Thibault Saunier <tsaunier@igalia.com>
5181 * docs/gst_plugins_cache.json:
5182 docs: Update plugin cache
5183 Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
5185 2019-05-16 16:46:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5187 * gst-libs/gst/vaapi/gstvaapisurface.h:
5188 libs: surface: fix documentation format
5190 2019-05-16 10:05:17 +0800 Wangfei <fei.w.wang@intel.com>
5192 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5193 libs: enc: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
5194 When enable low delay B, the reference list 1 will be same with
5195 reference list 0, so need reset the num_ref_idx_l1_active_minus1
5196 to num_ref_idx_l0_active_minus1.
5199 2019-05-13 19:05:43 -0400 Thibault Saunier <tsaunier@igalia.com>
5202 meson: Fix call to wrong function
5204 2018-10-22 11:48:29 +0200 Thibault Saunier <tsaunier@igalia.com>
5209 * docs/gst_plugins_cache.json:
5212 * docs/plugins/Makefile.am:
5213 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5214 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
5215 * docs/plugins/gstreamer-vaapi-plugins.types:
5216 * docs/plugins/inspect/plugin-vaapi.xml:
5217 * docs/plugins/running.xml:
5219 * docs/version.entities.in:
5220 * gst/vaapi/meson.build:
5222 * meson_options.txt:
5223 docs: Port to hotdoc
5225 2019-05-10 18:29:10 +0800 He Junyan <junyan.he@hotmail.com>
5227 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5228 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5229 libs: encoder: not call ensure_num_slices inside g_assert
5230 g_assert will take no effect when glib's G_DISABLE_ASSERT macro is
5231 defined. The function inside the g_assert will take no effect and
5232 we will fail to set the correct slice number.
5234 2019-04-29 09:52:39 +0800 Wangfei <fei.w.wang@intel.com>
5236 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5237 libs: h265: dec: Add extension flags setting.
5238 Use VAPictureParameterBufferHEVCExtension&
5239 VASliceParameterBufferHEVCExtension to pass extension setting from
5240 some extension profile clips which may include these information.
5241 The hevc extension setting only supported after libva release 2.2.0
5244 2019-05-01 12:56:55 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5246 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5247 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5248 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5249 libs: encoder: add target-percentage property
5250 Allow users to set the target-percentage for
5251 variable rate controls. The default value is
5252 70 (as hard-coded prior).
5253 v2: minimum allowed value changed from 0 to 1
5254 v3: target-percentage unchanged if CBR used
5257 2019-05-09 00:09:21 +0800 He Junyan <junyan.he@hotmail.com>
5259 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5260 libs: encoder: Add a missing comment for DEFAULT_ROI_VALUE property.
5262 2019-05-08 23:39:20 +0800 He Junyan <junyan.he@hotmail.com>
5264 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5265 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5266 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5267 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
5268 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5269 libs: encoder: Enable trellis quantization method.
5270 The advanced trellis algorithm is supported in VA driver. We add
5271 its support as a property named "trellis" of encoder.
5272 It only works for H264 now, should be more in future.
5274 2019-05-07 11:03:51 +0800 Wangfei <fei.w.wang@intel.com>
5276 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5277 libs: decoder: vp9: support 422/444 8bit/10bit chroma type.
5278 According to the vp9 sepc, profile 1/3 support 422/440/444 chroma
5279 type, so we need to add subsampling_x&subsampling_y to fix it.
5280 Here is the relationship between chroma type and profile and
5281 subsampling_x&subsampling_y according to vp9 spec:
5282 ------------------------------------------
5283 Profile | Bit depth | Chroma subsampling |
5284 ------------------------------------------
5286 ------------------------------------------
5287 1 | 8 | 422,440,444 |
5288 ------------------------------------------
5290 ------------------------------------------
5291 3 | 10, 12 | 422,440,444 |
5292 ------------------------------------------
5293 -----------------------------------------------
5294 Subsampling_x | Subsampling_y | Chroma format |
5295 -----------------------------------------------
5297 -----------------------------------------------
5299 -----------------------------------------------
5301 -----------------------------------------------
5303 -----------------------------------------------
5305 2019-04-16 18:33:54 +0800 He Junyan <junyan.he@hotmail.com>
5307 * gst-libs/gst/vaapi/gstvaapiimage.c:
5308 * gst-libs/gst/vaapi/video-format.c:
5309 libs: Add packed 24 RGB format support.
5310 Can not find a suitable chrome_type for this GST_VIDEO_FORMAT_RGB
5311 packed 24 format. Just use GST_VAAPI_CHROMA_TYPE_RGB32 as its chrome
5312 type. This kind of surface will just be created by new API with fourcc
5313 and no old style chrome based creation is available.
5316 2019-03-15 14:29:41 +0800 Wangfei <fei.w.wang@intel.com>
5318 * gst/vaapi/gstvaapiencode.c:
5319 * gst/vaapi/gstvaapiencode_h264.c:
5320 * gst/vaapi/gstvaapiencode_h264_fei.c:
5321 * gst/vaapi/gstvaapiencode_h265.c:
5322 * gst/vaapi/gstvaapiencode_jpeg.c:
5323 * gst/vaapi/gstvaapiencode_mpeg2.c:
5324 * gst/vaapi/gstvaapiencode_vp8.c:
5325 * gst/vaapi/gstvaapiencode_vp9.c:
5326 vaapiencode: handle DMABuf caps feature in sink pad
5327 Add DMABuff caps features in all encoders' sink pad.
5329 2019-05-03 10:31:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5331 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5332 libs: encoder: continue if roi meta is NULL
5334 If the function actually returns a null value, a null pointer
5335 dereference will occur.
5336 In gst_vaapi_encoder_ensure_param_roi_regions(): Return value of
5337 function which returns null is dereferenced without checking
5339 2019-04-15 19:58:14 +0800 He Junyan <junyan.he@hotmail.com>
5341 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5342 lib: decoder: vp9: Set chroma_type by VP9 bit_depth
5343 The decoder's surface chroma type should depend on the bit depth
5344 of VP9's parser. For 10bits VP9 stream, we need to use P10LE kind
5345 10 bits surface as the decoder result.
5348 2019-05-02 16:00:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5350 * gst/vaapi/gstvaapipostprocutil.c:
5351 vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD
5352 https://bugzilla.gnome.org/show_bug.cgi?id=748184 has resurrected
5353 with commit 3e992d8a
5354 Since gst_vaapi_find_preferred_caps_feature() returns a color format
5355 from caps negotiation, different from the default one (NV12), the
5356 postproc enables the color transformation. But when GL_TEXTURE_UPLOAD
5357 feature is negotiated, no color transformation shall be done.
5358 Nonetheless, with commit 3e992d8a the requested format changes
5359 firstly, because there's no video sink yet, so ANY caps are
5360 negotiated; but later, when there's a video sink and a caps
5361 renegotiation, the GL_TEXTURE_UPLOAD is negotiated though the color
5362 format conversion still ongoing. It is required to reset that
5364 This patch force default color format when GL_TEXTURE_UPLOAD is
5365 selected as preferred, thus avoiding the color conversion.
5368 2019-04-19 15:49:37 -0700 Julien Isorce <jisorce@oblong.com>
5370 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
5371 libs: surface: fix double free when dmabuf export fails
5372 Happens if vaAcquireBufferHandle fails.
5374 2019-04-29 20:10:39 +0800 He Junyan <junyan.he@hotmail.com>
5376 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5377 libs: h264encoder: fix a typo of GstVaapiEncoderH264PredictionType
5379 2019-04-19 10:43:35 +0100 Tim-Philipp Müller <tim@centricular.com>
5383 * docs/plugins/inspect/plugin-vaapi.xml:
5387 === release 1.16.0 ===
5389 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5395 * gstreamer-vaapi.doap:
5399 2019-04-19 00:38:12 +0100 Tim-Philipp Müller <tim@centricular.com>
5401 * docs/plugins/inspect/plugin-vaapi.xml:
5404 2019-04-15 19:34:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5406 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5407 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5408 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5409 libs: encoder: h264,h265: guard VA version for max_qp property
5410 This patch fixes a regression from commit 5b1fe9c6.
5411 max_qp, in rate control configuration, appeared in libva release
5412 2.1 (API 1.1), thus it is required to guard the VA API version.
5415 2019-04-08 18:29:35 +0800 He Junyan <junyan.he@hotmail.com>
5417 * gst-libs/gst/vaapi/gstvaapiimage.c:
5418 * gst-libs/gst/vaapi/video-format.c:
5419 libs: Add RGB565 image format support.
5421 2019-04-10 13:59:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5424 build: configure: delay USE_GTK conditional until check libva-x11
5425 libva-x11 is used for X11 applications, so it is required to build
5426 any GTK application.
5427 Later, when Wayland test is added, we should change this.
5429 2019-04-10 13:25:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5432 build: configure: disable GLX if libva-x11 is not found
5434 2019-04-15 13:55:26 +0200 He Junyan <junyan.he@hotmail.com>
5436 * gst-libs/gst/vaapi/gstvaapiutils.c:
5437 libs: utils: avoid macro evaluation when stringify
5438 string_of_va_chroma_format() gets a wrong string format description.
5439 For example, the YUV420_10BPP get a string of 0x00000100 as output.
5440 It's because VA_RT_FORMAT_xxx values are macro definitions. And
5441 STRINGIFY(VA_RT_FORMAT_xxx) will expand to its real value
5443 To avoid the macro evaluation, it is changed to show only the color
5444 format without VA_RT_FORMAT_ prefix.
5446 2019-04-15 13:54:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5448 * gst-libs/gst/vaapi/gstvaapiutils.c:
5449 libs: utils: use glib's macros
5450 Don't reinvent the wheel.
5452 2019-04-11 15:05:02 +0800 Wangfei <fei.w.wang@intel.com>
5454 * gst/vaapi/gstvaapipluginutil.c:
5455 plugins: find the preferred format from right caps.
5456 When the downstream has any caps, then raw video feature will
5457 be used. At this situation, the preferred format should be chose
5458 from caps which contains "vide/x-raw" feature instead of from
5459 the fist allowed caps.
5462 2019-04-10 11:43:33 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
5464 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5465 libs: encoder: h265: fill tier in va seq param buf
5466 Now that tier is calculated in commit 58e74f9440fe (!68),
5467 ensure we fill in the general_tier_flag in the
5468 VAEncSequenceParameterBufferHEVC.
5470 === release 1.15.90 ===
5472 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5478 * gstreamer-vaapi.doap:
5482 2019-04-11 00:40:03 +0100 Tim-Philipp Müller <tim@centricular.com>
5484 * docs/plugins/inspect/plugin-vaapi.xml:
5487 2019-04-09 20:42:04 +0800 He Junyan <junyan.he@hotmail.com>
5489 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5490 libs: encoder: h265: Recognize the correct level and tier.
5491 The current manner can not recognize the correct level and always
5492 set the tier to main. Need to add frame rate check to recognize
5493 levels such as 4.1, 6.2, etc. We also add a logic to check main
5494 and high tier based on bitrate.
5497 2019-04-03 14:12:23 +0800 He Junyan <junyan.he@hotmail.com>
5499 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5500 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5501 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5502 libs: encoder: h264,h265: Set max_qp if min_qp is non-zero.
5503 media-driver currently fails to set a correct value of max_qp when
5504 min_qp is different to zero, in CBR and VBR mode, generating full
5505 quality frames, thus unexpected huge output.
5506 This patch sets max_qp to an arbitrary value to avoid this output
5510 2019-04-09 12:42:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5512 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5513 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5514 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5515 libs: encoder: h264,h265: initial and minimal QP can be zero
5516 Currently the minimal value for either min_qp and init_qp are 1,
5517 but VA documentation specifiy that zero is also valid and means
5518 to ignore the quantiser.
5519 The default value is not changed though to avoid behaivor changes
5522 2019-04-09 09:20:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
5524 * tests/elements/meson.build:
5525 meson: build test-vaapicontext when using X11
5526 x11_dep and libva_x11_dep are optional and meson ignores these
5527 dependencies even if they are added into the dependency list.
5528 This fixes the error below when libva-x11 is not avaiblabe:
5529 cc -Itests/elements/tests@elements@@test-vaapicontext@exe
5530 -Itests/elements -I../../gstreamer-vaapi/tests/elements -I.
5531 -I../../gstreamer-vaapi/ -Igst-libs -I../../gstreamer-vaapi/gst-libs
5532 -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0
5533 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4
5534 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0
5535 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
5536 -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/
5537 -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/pango-1.0
5538 -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo
5539 -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2
5540 -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
5541 -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
5542 -Winvalid-pch -O2 -g -fvisibility=hidden -fno-strict-aliasing -pthread
5543 -DHAVE_CONFIG_H -MD -MQ
5544 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5546 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o.d'
5548 'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5549 -c ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c
5550 ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c:29:10: fatal
5551 error: va/va_x11.h: No such file or directory
5552 #include <va/va_x11.h>
5554 2019-04-01 12:56:28 +0800 He Junyan <junyan.he@hotmail.com>
5556 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5557 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
5558 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
5559 libs: encoder: h264_fei: Use gst_param_spec_array for view-ids
5560 GValueArray is deprecated. Use GstValueArray instead.
5562 2019-03-30 18:29:31 +0100 Danilo Spinella <danyspin97@protonmail.com>
5564 * gst/vaapi/gstvaapipluginutil.c:
5565 vaapipluginutil: Fix #endif for USE_X11
5567 2019-03-29 18:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5569 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5570 libs: encoder: h264: simplify the view-ids setting
5572 2019-03-26 14:54:47 +0800 He Junyan <junyan.he@hotmail.com>
5574 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5575 libs: encoder: h264: Use gst_param_spec_array for view-ids
5576 GValueArray is deprecated. Use GstValueArray instead.
5577 gst_param_spec_array can be deserialized from command line using:
5578 vaapih264enc view-ids="<(uint)40,(uint)100>" num-views=2
5579 While the g_param_spec_value_array() can not, and always get
5580 error: "gst_value_deserialize_g_value_array: unimplemented"
5581 Also fixed an out-of-range bug.
5583 2019-03-29 13:33:41 +0800 He Junyan <junyan.he@hotmail.com>
5585 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
5586 libs: Change the parameter setting order when encode picture.
5587 The order in gst_vaapi_enc_picture_encode when encoding one
5588 picture is not very correct. The misc parameters are set before
5589 the picture parameters. Some of the misc parameters such as
5590 ROI may change the current picture parameters. But the later
5591 setting of picture parameter will re-init all picture related
5592 parameters and clear the previous setting. The right order
5593 should be picture parameter first and then misc parameters.
5594 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5596 2019-03-26 14:20:34 +0800 Wangfei <fei.w.wang@intel.com>
5598 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5599 libs: decoder: jpeg: support dynamic resolution change decode.
5600 Add size_changed flag to watch out resolution. if change, reset
5601 jpeg decoder's context.
5603 2019-03-23 15:34:03 +0800 Wangfei <fei.w.wang@intel.com>
5605 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5606 libs: encoder: h265: add low power mode encode.
5607 By now, this feature only support by media-driver on Ice Lake
5608 platform, more information you can reference:
5609 https://github.com/intel/media-driver
5611 2019-03-15 18:40:21 +0800 He Junyan <junyan.he@hotmail.com>
5613 * gst/vaapi/gstvaapiencode.c:
5614 vaapiencode: gobject's prop_id differ from vaapi encoder
5615 The vaapi internal encoder's property id are negative, thus they are
5616 different from GObject's property ids.
5617 gst_vaapi_encoder_set_property() should map to the internal encoder
5618 property id, assigned in gst_vaapiencode_default_set_property().
5620 2019-03-21 16:56:34 +0000 Tim-Philipp Müller <tim@centricular.com>
5623 meson: disable compiler warnings for unused vars and args if gst debug system is disabled
5625 2019-03-21 13:31:57 +0000 Tim-Philipp Müller <tim@centricular.com>
5628 meson: use new 'python' module instead of deprecated 'python3' one
5630 2019-03-11 18:38:36 -0300 Thibault Saunier <tsaunier@igalia.com>
5633 Update common submodule back to 59cb678164719ff59dcf6c8b93df4617a1075d11
5634 It was wrongly changed in 3d9555a86d45565870c684fe00ec8bbb0fed7205
5636 2019-03-04 09:16:17 +0000 Tim-Philipp Müller <tim@centricular.com>
5641 * docs/plugins/inspect/plugin-vaapi.xml:
5645 2019-03-01 12:33:26 +0800 He Junyan <junyan.he@hotmail.com>
5647 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
5648 libs: Fix a typo in comments.
5649 Fix a typo in function description of
5650 gst_vaapi_surface_pool_new_with_chroma_type.
5651 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5653 2019-02-27 13:02:10 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5655 * gst/vaapi/gstvaapipluginutil.c:
5656 plugin: if any caps in downstream, negotiate raw video
5657 When downstream has any caps, vaapi should not shovel vaapi featured
5658 buffers, but rather plain raw video, assuming always the worst case
5659 scenario (downstream cannot handle featured video memory but raw
5660 system memory buffers).
5661 This patch query the peer caps without any filter, to know if
5662 donwstream just ask for any caps, if so jump to the color space
5663 checking, otherwise do the caps intersection and continue with the
5664 feature selection algorithm.
5667 === release 1.15.2 ===
5669 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
5675 * gstreamer-vaapi.doap:
5679 2019-02-26 12:01:53 +0000 Tim-Philipp Müller <tim@centricular.com>
5681 * docs/plugins/inspect/plugin-vaapi.xml:
5684 2019-02-05 16:59:40 +0800 He Junyan <junyan.he@hotmail.com>
5686 * gst/vaapi/gstvaapivideomemory.c:
5687 vaapivideomemory: Prefer same format for surface and image
5688 We prefer to use the same format between image and surface for gst
5689 vaapi allocator. The old way may choose different formats between
5690 image and surface. For example, the RGBA image may have a NV12 surface.
5691 So we need to do format conversion when we put/get image to surface.
5692 Some drivers such as iHD can not support such conversion and always
5693 cause a data flow error. There may also have some performance cost
5694 for format conversion when put/get images.
5695 So we prefer to use the same format for image and surface in the
5696 allocator. If the surface can not support that format, we then
5697 fallback to find a best one as the surface format.
5698 Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
5700 2019-02-15 15:19:51 +0800 He Junyan <junyan.he@hotmail.com>
5702 * gst-libs/gst/vaapi/video-format.c:
5703 libs: Delete the duplicated ARGB video format.
5704 Two ARGB formats with the same format information.
5705 Should be verbose and delete one.
5706 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5708 2019-02-13 10:39:59 -0500 Adam Jackson <ajax@redhat.com>
5711 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
5712 glx: Stop specifying GLX_DEPTH_SIZE
5713 This code is just confused. It's asking for at least as many bits of
5714 (z-axis) depth as the root window has bits of (color) depth. For rgb565
5715 or rgb888 this is harmless, but at 10 bits per channel this demands a
5716 30-bit or deeper Z buffer. While some hardware could in principle do a
5717 32-bit Z buffer, Mesa does not expose such fbconfigs (at least on Intel
5719 We're not actually using the Z buffer, so just stop asking for one.
5721 2019-01-14 11:30:48 +0100 Niels De Graef <niels.degraef@barco.com>
5724 * gst-libs/gst/vaapi/Makefile.am:
5725 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5726 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5727 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5728 * gst-libs/gst/vaapi/meson.build:
5729 * gst/vaapi/gstvaapisink.c:
5731 libs: wayland: add support for XDG-shell protocol
5732 [wl_shell] is officially [deprecated], so provide support for the
5733 XDG-shell protocol should be provided by all desktop-like compositors.
5734 (In case they don't, we can of course fall back to wl_shell).
5735 Note that the XML file is directly provided by the `wayland-protocols`
5736 dependency and generates the protocol marshalling code.
5737 [wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
5738 [deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c
5740 2019-02-16 19:09:50 +0100 Niels De Graef <nielsdegraef@gmail.com>
5742 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5743 libs: window: wayland: Prefix wl_shell_surface field with `wl_`
5744 It will help us to distinguish from other Wayland shell surface
5745 (such as XDG-shell) later on.
5747 2019-01-14 09:58:19 +0100 Niels De Graef <nielsdegraef@gmail.com>
5749 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5750 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5751 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5752 libs: wayland: Prefix wl_shell field with `wl_`
5753 It will help us to distinguish from other Wayland shells (such as
5754 XDG-shell) later on.
5756 2019-02-08 09:21:28 +0300 Denis Nagorny <denis.nagorny@intel.com>
5758 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5759 libs: display: lock ensure_profile()
5760 Thread safety patch for ensure_profile() function
5763 2019-02-08 16:35:39 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5766 meson: bump the minimum wayland version requirement to 1.11.0
5767 This was missed on commit 77bb3424
5769 2019-01-24 21:08:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5771 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5772 * gst/vaapi/gstvaapisink.c:
5773 vaapisink: x11: trap WM_DELETE_WINDOW message
5774 Register the WM_DELETE_WINDOW message from window manager and
5775 trap it to stop the pipeline cleanly.
5776 Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/130
5778 2019-01-21 19:22:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5780 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5781 libs: window: remove native-id property
5782 native-id property is problematic since the variable that stores it is
5783 gsize, which is platform specific, and in some is bigger than unsigned
5784 long, and there are not way to handle gsize properties.
5785 Also, GST_VAAPI_ID_INVALID is defined in gsize terms, and we would
5786 like to keep using it for this scope.
5787 This patch removes the native-id property and set it manually in
5788 gst_vaapi_window_new_internal().
5790 2019-01-18 10:33:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5792 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5793 libs: window: use G_GSIZE_MODIFIER for window id
5794 gsize type is not equal in all platforms, then the 'l' print modifier
5795 shall not be used always.
5796 This issue was found in Debian builds.
5798 2019-01-17 10:27:13 +0800 Wangfei <fei.w.wang@intel.com>
5800 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5801 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5802 encoder: h264/h265: set SPS cbr_flag with correct value.
5803 The flag only set as 1 when the rate-control mode is CBR.
5805 === release 1.15.1 ===
5807 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
5813 * gstreamer-vaapi.doap:
5817 2019-01-17 02:36:52 +0000 Tim-Philipp Müller <tim@centricular.com>
5819 * docs/plugins/inspect/plugin-vaapi.xml:
5822 2019-01-14 19:35:34 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5824 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5825 libs: encoder: refactor to avoid code duplication
5826 gst_vaapi_encoder_put_frame() and gst_vaapi_encoder_flush() duplicates
5827 the same code segment where the coded buffer is created, the picture
5828 encoded on it and pushed to the async queue.
5829 The function gst_vaapi_encoder_encode_and_queue() refactor this.
5831 2019-01-14 18:21:30 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5833 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5834 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5835 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5836 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5837 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5838 libs: encoder: h264/h265: flush pending ordered pictures
5839 In order to flush the pending pictures, a new internal encoder vmethod
5840 is used: get_pending_reordered()
5841 This method follows an iterator pattern which will return the next
5842 picture to encode and push.
5843 The base encoder will call this function in a loop when flush() is called.
5844 For now, only H.264 and H.265 encoders implement this flushing mechanism.
5846 2018-12-06 10:18:53 +0800 Wangfei <fei.w.wang@intel.com>
5848 * gst-libs/gst/vaapi/gstvaapiencoder.c:
5849 * gst-libs/gst/vaapi/gstvaapiencoder.h:
5850 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5851 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5852 libs: encoder: h264/h265: fix encode lose frame issue.
5853 Instead of dropping all remain frames in reorder_frame_list during
5854 flush, keep encoding.
5855 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/97
5857 2019-01-15 14:33:11 +0800 Wangfei <fei.w.wang@intel.com>
5859 * gst/vaapi/gstvaapipostproc.c:
5860 vaapipostproc: before set surface proxy, check if it already been created and exist.
5861 Fix the deinterlace black frame when playing with glimagesink:
5862 gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \
5863 ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink
5865 2019-01-11 13:48:29 +0800 Wangfei <fei.w.wang@intel.com>
5867 * gst-libs/gst/vaapi/gstvaapiutils.c:
5868 vaapipostproc: clean up USE_VA_VPP macro since it already removed from configure file.
5870 2018-12-26 14:36:23 +0800 Haihao Xiang <haihao.xiang@intel.com>
5872 * gst-libs/gst/vaapi/meson.build:
5873 * gst/vaapi/meson.build:
5875 * tests/meson.build:
5876 meson: build h264 fei encoder if possible
5878 2018-12-26 14:04:08 +0800 Haihao Xiang <haihao.xiang@intel.com>
5881 configure: bump the minimum wayland version requirement to 1.11.0
5883 2018-12-24 12:58:53 +0800 Haihao Xiang <haihao.xiang@intel.com>
5886 * gst-libs/gst/vaapi/Makefile.am:
5887 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
5888 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
5889 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
5890 * gst-libs/gst/vaapi/gstvaapicompat.h:
5891 * gst-libs/gst/vaapi/gstvaapicontext.c:
5892 * gst-libs/gst/vaapi/gstvaapidisplay.c:
5893 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
5894 * gst-libs/gst/vaapi/gstvaapifilter.c:
5895 * gst-libs/gst/vaapi/gstvaapiprofile.c:
5896 * gst-libs/gst/vaapi/gstvaapisurface.c:
5897 * gst-libs/gst/vaapi/gstvaapiutils.c:
5898 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5899 * gst-libs/gst/vaapi/meson.build:
5900 * gst/vaapi/Makefile.am:
5901 * gst/vaapi/gstvaapi.c:
5902 * gst/vaapi/gstvaapidecode.c:
5903 * gst/vaapi/gstvaapidecodebin.c:
5904 * gst/vaapi/gstvaapipluginbase.c:
5905 * gst/vaapi/meson.build:
5908 * tests/simple-decoder.c:
5909 vaapi: bump the minimum vaapi version requirement to 0.39.0
5910 And reduce unnecessary API version and structures check as well.
5911 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/108
5913 2018-12-22 18:07:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5915 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5916 * gst-libs/gst/vaapi/gstvaapiwindow.h:
5917 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5918 * tests/test-decode.c:
5919 * tests/test-filter.c:
5920 * tests/test-subpicture.c:
5921 * tests/test-textures.c:
5922 * tests/test-windows.c:
5923 libs: window: remove custom ref() and unref()
5924 Use gst_object_ref() and gst_object_unref() instead.
5926 2018-12-22 13:25:09 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5928 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5929 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
5930 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
5931 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5932 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5933 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5934 libs: window: use its own debug category
5936 2018-12-22 18:02:38 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5938 * gst-libs/gst/vaapi/gstvaapiwindow.c:
5939 * gst-libs/gst/vaapi/gstvaapiwindow.h:
5940 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
5941 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
5942 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
5943 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
5944 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5945 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
5946 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
5947 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5948 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
5949 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5950 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
5951 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5952 libs: window: refactor as gobject
5953 This is another step in the gobjectification of the internal library
5954 of gstreamer-vaapi. Now it is the turn of GstVaapiWindow and its
5956 The idea is to minimize the changeset keeping the same design as
5958 GstVaapiWindow is defined as an abstract class with two properties:
5959 the GstVaapiDisplay and the native ID. Thus, many of the
5960 GstVaapiObject macros were copied as GstVaapiWindow macros.
5961 The function gst_vaapi_window_new_internal() is kept as a decorator
5962 of for calling gst_vaapi_window_create() and the possibility of
5964 The descendant classes, such as glx, still use the private
5965 structures, but through the gobject mechanism.
5967 2018-12-03 22:05:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5969 * gst-libs/gst/vaapi/gstvaapifilter.c:
5970 libs: filter: use its own debug category
5972 2018-12-24 14:08:42 +0800 He Junyan <junyan.he@hotmail.com>
5974 * gst/vaapi/gstvaapidecode.c:
5975 * gst/vaapi/gstvaapipluginbase.c:
5976 * gst/vaapi/gstvaapipluginbase.h:
5977 * gst/vaapi/gstvaapipostproc.c:
5978 * gst/vaapi/gstvaapisink.c:
5979 plugins: Add more check for allowed raw caps.
5980 The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink
5981 pad and src pad, which cause some bugs. For sink pad, we need to verify
5982 vaPutImage() while for the src pad we need to verify vaGetImage().
5983 For vaapidecoderXXX kind of plugins, the case is more complex. We need
5984 to verify whether the decoded result(in some surface, NV12 format most
5985 of the time) can be vaGetImage to some raw image format. Add more check
5986 to fix all these problems.
5987 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/123
5988 Signed-off-by: He Junyan <junyan.he@hotmail.com>
5990 2018-12-18 10:44:21 +0800 Wangfei <fei.w.wang@intel.com>
5992 * gst/vaapi/gstvaapipostproc.c:
5993 vaapipostproc: fix csc fail when only change width or height.
5995 2018-12-15 09:47:15 +0900 Wonchul Lee <chul0812@gmail.com>
5997 * tests/elements/meson.build:
5998 meson: Add gtk guard
6000 2018-12-15 14:48:03 +0800 Wangfei <fei.w.wang@intel.com>
6002 * gst/vaapi/gstvaapiencode_h264.c:
6003 libs: enc: h264: set max profile idc with correct profile.
6004 Use the highest rank of available profile as the max profile to
6006 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/124
6008 2018-12-03 13:56:52 +0100 Niels De Graef <nielsdegraef@gmail.com>
6010 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6011 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6012 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6013 Use G_DEFINE_TYPE_WITH_PRIVATE if applicable
6014 This gets rid of the strange `do_init` macro and makes the intent a bit
6017 2018-12-05 17:24:53 -0300 Thibault Saunier <tsaunier@igalia.com>
6020 Automatic update of common submodule
6021 From ed78bee to 59cb678
6023 2018-11-27 09:47:44 -0500 Wangfei <fei.w.wang@intel.com>
6025 * gst-libs/gst/vaapi/gstvaapiimage.c:
6026 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6027 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6028 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6029 * gst-libs/gst/vaapi/video-format.c:
6030 * gst/vaapi/gstvaapidecode.c:
6031 * gst/vaapi/gstvaapipluginutil.h:
6032 libs: dec: h265: support decode for main-444 10bit streams.
6033 Add 444 10bit yuv format Y410, which can be used to decode
6034 main-444 10bit streams. Currently, this feature is only
6035 supported by media-driver in Icelake.
6037 2018-11-28 05:56:44 +0200 Jordan Petridis <jordan@centricular.com>
6039 * gst/vaapi/gstvaapidecode.c:
6040 * gst/vaapi/gstvaapisink.c:
6041 Run gst-indent through the files
6042 This is required before we enabled an indent test in the CI.
6043 https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
6045 2018-11-14 13:11:56 +0800 He Junyan <junyan.he@hotmail.com>
6047 * gst/vaapi/gstvaapipluginbase.c:
6048 plugins: modify image check of extract_allowed_surface_formats.
6049 The extract_allowed_surface_formats function just check whether
6050 we can support some kind of surface/image format pair. We just
6051 need to create a surface, create an image with the same video-format
6052 and putImage from image to surface. All these operations success,
6053 that kind of video-format is supported.
6054 The old manner do not work for some kind of video-format. For example,
6055 the RGBA kind of format will create a NV12 surface and RGBA image,
6056 and the putImage will fail because the format is not same. And so
6057 the RGBA format is not supported but actually it is supported.
6059 2018-11-14 11:34:20 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6061 * gst/vaapi/gstvaapipostproc.c:
6062 vaapipostproc: add some missing locking
6063 gst_vaapi_plugin_base_close() removed the raw caps that are used indirectly
6064 in gst_vaapipostproc_transform_caps(). The usage is already protected by
6066 This is needed when the pipeline is stopped during startup.
6068 2018-11-20 16:07:44 +0800 Xiang, Haihao <haihao.xiang@intel.com>
6070 * gst/vaapi/gstvaapivideomemory.c:
6072 Otherwise it will result in resource leak when failed to create
6075 2018-11-12 13:39:51 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
6077 * gst/vaapi/gstvaapiencode.c:
6078 vaapiencode: don't start src pad task in set_format
6079 Otherwise the task may be restarted during shutdown. Start the task in
6080 gst_vaapiencode_handle_frame() instead.
6082 2018-11-14 13:52:48 +0800 Wangfei <fei.w.wang@intel.com>
6084 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6085 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6086 * gst-libs/gst/vaapi/gstvaapiutils.c:
6087 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6088 * gst/vaapi/gstvaapidecode.c:
6089 * gst/vaapi/gstvaapipluginutil.h:
6090 libs: dec: h265: support decode for main-444 8bit streams.
6091 Add 444 8bit yuv format AYUV, which can be used to decode
6092 main-444 8bit streams. Currently, this feature is only
6093 supported by media-driver in Icelake.
6094 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/119
6096 2018-11-12 17:43:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6099 Add Gitlab CI configuration
6100 This commit adds a .gitlab-ci.yml file, which uses a feature
6101 to fetch the config from a centralized repository. The intent is
6102 to have all the gstreamer modules use the same configuration.
6103 The configuration is currently hosted at the gst-ci repository
6104 under the gitlab/ci_template.yml path.
6105 Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
6107 2018-11-09 22:03:43 +0800 He Junyan <junyan.he@hotmail.com>
6109 * gst-libs/gst/vaapi/gstvaapisurface.h:
6110 * gst-libs/gst/vaapi/gstvaapiutils.c:
6111 libs: Sync the GstVaapiChromaType to VA header file.
6112 Add more kinds of chrometype which will be used to describe
6113 new video formats. Sync it with 1.4.0 version header file.
6114 Alse delete useless GST_VAAPI_CHROMA_TYPE_YUV410 chrome type.
6115 Signed-off-by: He Junyan <junyan.he@hotmail.com>
6117 2018-11-09 23:55:05 +0000 Tim-Philipp Müller <tim@centricular.com>
6119 * gst-libs/gst/vaapi/meson.build:
6120 meson: link with -lm
6121 Fixes #117 hopefully.
6123 2018-11-09 23:46:53 +0000 Tim-Philipp Müller <tim@centricular.com>
6126 meson: bump meson required to 0.47 for feature options
6128 2018-11-06 14:38:08 +0800 Junyan He <junyan.he@intel.com>
6130 * gst-libs/gst/vaapi/video-format.c:
6131 libs: Modify the video format of endianness.
6132 We lack some video format because endianness declare.
6133 The video format should not directly relate to endianness. For example,
6134 ARGB on big endian should not be simplely seen as BGRA on little endian
6135 machine. We should provide endianess convert or format convert help
6136 functions if endianness does not match.
6137 https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/112
6138 Signed-off-by: Junyan He <junyan.he@intel.com>
6140 2018-10-17 18:36:52 +0800 Junyan He <junyan.he@intel.com>
6142 * gst/vaapi/gstvaapipluginutil.c:
6143 plugins: Fix build error when GL is enabled while EGL is disabled.
6144 gl_platform_type in gst_vaapi_get_display_type_from_gl_env generate
6145 unused-variable warning and may block build when Werror enabled.
6146 Several functions like gst_vaapi_display_egl_new_with_native_display
6147 have no prototype warning and link error when GL is enabled but EGL
6148 is disabled. Fix all these warning and link error.
6149 https://bugzilla.gnome.org/show_bug.cgi?id=797358
6150 Signed-off-by: Junyan He <junyan.he@intel.com>
6152 2018-11-03 15:06:09 +0800 Wangfei <fei.w.wang@intel.com>
6154 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6155 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
6156 libs: encoder: h264/h264fei: remove unuseless code.
6157 The variable are set twice, remove previous one.
6158 https://bugzilla.gnome.org/show_bug.cgi?id=797365
6160 2018-11-03 15:28:35 +0800 Wangfei <fei.w.wang@intel.com>
6162 * tests/simple-encoder.c:
6163 * tests/test-fei-enc-in.c:
6164 tests: check return value when using gst_buffer_map.
6165 https://bugzilla.gnome.org/show_bug.cgi?id=797366
6167 2018-11-02 16:50:47 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6170 * meson_options.txt:
6171 * tests/elements/meson.build:
6172 * tests/meson.build:
6173 build: meson: build examples
6175 2018-11-02 16:50:00 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6177 * gst-libs/gst/vaapi/meson.build:
6178 build: meson: declare headers for libgstvaapi
6179 Thus handling its recompilation if needed.
6181 2018-11-05 05:41:13 +0000 Matthew Waters <matthew@centricular.com>
6184 Update common submodule location
6185 Remove the git directory
6187 2018-11-05 13:00:28 +0800 Haihao Xiang <haihao.xiang@intel.com>
6190 * gstreamer-vaapi.doap:
6191 Clone the code from gitlab
6192 This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/116
6194 2018-10-24 14:18:37 -0400 Wangfei <fei.w.wang@intel.com>
6196 * gst-libs/gst/vaapi/gstvaapiimage.c:
6197 * gst-libs/gst/vaapi/gstvaapisurface.h:
6198 * gst-libs/gst/vaapi/gstvaapiutils.c:
6199 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6200 * gst-libs/gst/vaapi/video-format.c:
6201 * gst/vaapi/gstvaapidecode.c:
6202 * gst/vaapi/gstvaapipluginutil.h:
6203 libs: dec: h265: support decode for main-10-422 10bit streams.
6204 Add 422 10bit yuv format Y210, which can be used to decode
6205 main-10-422 10bit streams. Currently, this feature is only
6206 supported by media-driver in Icelake.
6207 https://bugzilla.gnome.org/show_bug.cgi?id=797264
6209 2018-10-13 15:00:32 +0800 Wangfei <fei.w.wang@intel.com>
6211 * gst-libs/gst/vaapi/gstvaapicontext.c:
6212 libs: context: roi_rc_qp_delta_support should not be checked when CQP.
6213 VA_ROI_RC_QP_DELTA_SUPPORT return value will be ignored when the
6214 rate control mode is set as CQP. In CQP mode, it shouldn't check
6215 roi_rc_qp_delta_support return value from driver backend.
6216 https://bugzilla.gnome.org/show_bug.cgi?id=797087
6218 2018-10-15 17:55:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6220 * gst/vaapi/gstvaapipostproc.c:
6221 vaapipostproc: fix classification string
6222 The classification string is splitted by '/' and then looks for the
6224 This patch removes the ';' by unifying all the components.
6226 2018-10-15 16:05:02 +0100 Philippe Normand <philn@igalia.com>
6228 * gst/vaapi/gstvaapipostproc.c:
6229 vaapipostproc: Add Hardware classifier to metadata
6231 2018-10-12 16:37:34 +0800 Wangfei <fei.w.wang@intel.com>
6233 * gst-libs/gst/vaapi/gstvaapicontext.c:
6234 libs: context: create context first before using it to create surface.
6235 In gst_vaapi_context_reset(), if the context has to be destroyed, make
6236 sure to create it first before allocating its associated surfaces.
6237 This patch fixes a regression introduced in commit 82872f4 because
6238 the formats available in the current context now are ensured before
6239 creating the context's surfaces.
6240 https://bugzilla.gnome.org/show_bug.cgi?id=797277
6242 2018-10-12 15:39:53 +0100 Philippe Normand <philn@igalia.com>
6244 * docs/plugins/inspect/plugin-vaapi.xml:
6245 * gst/vaapi/gstvaapidecode.c:
6246 * gst/vaapi/gstvaapiencode_h264.c:
6247 * gst/vaapi/gstvaapiencode_h264_fei.c:
6248 * gst/vaapi/gstvaapiencode_h265.c:
6249 * gst/vaapi/gstvaapiencode_jpeg.c:
6250 * gst/vaapi/gstvaapiencode_mpeg2.c:
6251 * gst/vaapi/gstvaapiencode_vp8.c:
6252 * gst/vaapi/gstvaapiencode_vp9.c:
6253 gst: Advertise elements interacting with hardware devices
6255 2018-10-01 09:26:05 +0800 Wangfei <fei.w.wang@intel.com>
6257 * gst-libs/gst/vaapi/gstvaapicontext.c:
6258 * gst-libs/gst/vaapi/gstvaapisurface.c:
6259 * gst-libs/gst/vaapi/gstvaapisurface.h:
6260 libs: context: query surface format before context to create surface.
6261 Before using context to create surface, the supported surface format
6262 should be checked first.
6263 https://bugzilla.gnome.org/show_bug.cgi?id=797222
6265 2018-10-09 17:23:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6267 * gst-libs/gst/vaapi/gstvaapiimage.c:
6268 * gst-libs/gst/vaapi/gstvaapivalue.c:
6269 libs: replace g_error with GST_ERROR
6270 And handle those errors rather than halting.
6272 2018-10-09 17:23:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6274 * gst-libs/gst/vaapi/gstvaapiimage.c:
6275 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6276 * gst-libs/gst/vaapi/gstvaapisurface.c:
6277 libs: replace g_warning with GST_WARNING
6279 2018-09-26 14:55:32 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6281 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6282 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6283 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6284 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
6285 libs: Move from g_debug to GST_DEBUG.
6286 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6288 2018-10-04 02:20:10 +0800 Soon, Thean Siew <thean.siew.soon@intel.com>
6290 * gst/vaapi/gstvaapipostproc.c:
6291 vaapipostproc: change the way of handling deinterlace
6292 The current vaapipostproc calls driver's video processing
6293 pipeline for deinterlacing only if it is Advance deinterlacing.
6294 Modify in the way that it always tries with driver's video
6295 processing pipeline for deinterlacing, and falls back to software
6296 method of appending picture structure meta data only if it fails
6297 with driver's method.
6298 https://bugzilla.gnome.org/show_bug.cgi?id=797095
6300 2018-09-24 16:54:29 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6302 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6303 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
6304 libs: h264: Update level table to "Recommendation H.264 (04/17)".
6305 Added level 6, 6.1 and 6.2. Reference Table A-1 – Level limits
6306 from T-REC-H.264-201704.
6307 https://bugzilla.gnome.org/show_bug.cgi?id=797202
6309 2018-09-20 09:57:33 +0800 Wangfei <fei.w.wang@intel.com>
6311 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6312 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6313 * gst-libs/gst/vaapi/gstvaapiprofile.h:
6314 * gst-libs/gst/vaapi/gstvaapisurface.c:
6315 * gst-libs/gst/vaapi/gstvaapiutils.c:
6316 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6317 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
6318 * gst-libs/gst/vaapi/video-format.c:
6319 * gst-libs/gst/vaapi/video-format.h:
6320 * gst/vaapi/gstvaapidecode.c:
6321 * gst/vaapi/gstvaapipluginbase.c:
6322 * gst/vaapi/gstvaapipluginutil.h:
6323 libs: dec: h265: add 422 chroma format support.
6324 Add main-422-10 profile which support 422 chroma format stream.
6325 Currently, this feature is only supported by media-driver in Icelake.
6326 https://bugzilla.gnome.org/show_bug.cgi?id=797143
6328 2018-09-26 19:34:06 +0200 U. Artie Eoff <ullysses.a.eoff@intel.com>
6330 * tests/y4mreader.c:
6331 tests: include sysdeps.h in compilation unit
6332 Fixes https://bugzilla.gnome.org/show_bug.cgi?id=797204
6333 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6335 2018-09-26 18:04:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6337 * tests/y4mreader.c:
6338 * tests/y4mreader.h:
6339 tests: fix compilation
6340 https://bugzilla.gnome.org/show_bug.cgi?id=797204
6342 2018-09-25 20:28:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6344 * tests/y4mreader.h:
6345 tests: don's use sysdeps.h in header
6347 2018-09-14 19:30:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6349 * gst-libs/gst/vaapi/gstvaapiutils.h:
6350 libs: utils: no need of include config.h
6352 2018-09-13 18:12:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6356 * tests/test-decode.c:
6357 * tests/test-subpicture.c:
6358 tests: remove already include string.h
6359 Since sysdeps.h includes string.h there's no need to include it again.
6361 2018-09-13 18:11:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6363 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6364 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6365 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6366 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6367 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6368 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6369 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6370 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6371 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6372 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6373 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6374 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6375 * gst-libs/gst/vaapi/gstvaapiimage.c:
6376 * gst-libs/gst/vaapi/gstvaapiprofile.c:
6377 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6378 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6379 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6380 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6381 libs: remove already include string.h
6382 Since sysdeps.h includes string.h there's no need to include it again.
6384 2018-09-13 18:26:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6386 * gst-libs/gst/vaapi/gstvaapiobject.h:
6387 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6388 * gst/vaapi/gstvaapivideometa_texture.c:
6389 libs: object: separation of internal API and plugins
6390 Removed exposed macros GST_VAAPI_OBJECT_DISPLAY() and
6391 GST_VAAPI_OBJECT_ID() to plugins, keeping them only for internal
6393 The purpose is readability.
6394 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6396 2018-09-13 16:34:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6398 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
6399 libs: parser_frame: change macros for inlined functions
6400 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6402 2018-09-13 16:10:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6404 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
6405 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
6406 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6407 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
6408 libs: videopool: remove unneeded code
6409 The removed code comes frome the bad practice of copy&paste. Better
6410 move it as internal function.
6411 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6413 2018-09-13 12:22:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6415 * gst-libs/gst/vaapi/Makefile.am:
6416 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6417 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6418 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
6419 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
6420 * gst-libs/gst/vaapi/gstvaapiobject.c:
6421 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6422 * gst-libs/gst/vaapi/gstvaapipixmap.c:
6423 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
6424 * gst-libs/gst/vaapi/gstvaapitexture.c:
6425 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
6426 * gst-libs/gst/vaapi/gstvaapiwindow.c:
6427 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6428 * gst-libs/gst/vaapi/meson.build:
6429 libs: remove dependency on IN_LIBGSTVAAPI_CORE
6430 This conditional code was when libgstvaapi was intended to be library
6431 used outside GStreamer. This not the case anymore, thus removing it.
6432 https://bugzilla.gnome.org/show_bug.cgi?id=797139
6434 2018-09-19 10:16:36 +0800 Wangfei <fei.w.wang@intel.com>
6436 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6437 libs: dec: h265: fix the macros used for IDC profile
6438 profile_idc flag in SPS only indicate the IDC profile, which may
6439 need some other flags together to get the real profile.
6440 https://bugzilla.gnome.org/show_bug.cgi?id=797160
6442 2018-09-12 19:06:22 +0900 Jimmy Ohn <yongjin.ohn@lge.com>
6444 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6445 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6446 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6447 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6448 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6449 libs: use g_clear_pointer() when possible
6450 https://bugzilla.gnome.org/show_bug.cgi?id=797131
6452 2018-09-03 13:56:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6454 * gst-libs/gst/vaapi/gstvaapifilter.h:
6455 libs: filter: add gobject's cleanup function
6457 2018-05-22 14:28:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6459 * gst-libs/gst/vaapi/gstvaapifilter.c:
6460 * gst-libs/gst/vaapi/gstvaapifilter.h:
6461 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
6462 * tests/test-filter.c:
6463 libs: filter: remove custom ref() and unref()
6464 Replacing them by gst_object_ref() and gst_object_unref()
6465 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6467 2018-05-22 14:26:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6469 * gst-libs/gst/vaapi/gstvaapifilter.c:
6470 * gst-libs/gst/vaapi/gstvaapifilter.h:
6471 libs: filter: refactor filter as gobject
6472 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6474 2018-05-21 13:38:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6476 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6477 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6478 libs: decoder: remove destoy() and create() callbacks
6479 They were all replaced by reset()
6480 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6482 2018-05-21 13:26:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6484 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6485 libs: decoder: vp9: implement reset() callback
6486 remove destroy() and create() callback
6487 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6489 2018-05-21 13:25:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6491 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6492 libs: decoder: vp8: implement reset() callback
6493 remove create() and destroy() callbacks
6494 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6496 2018-05-21 13:24:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6498 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6499 libs: decoder: vc1: implement reset() callback
6500 remove destroy() and create() callbacks
6501 use g_clear_pointer for rbdu_buffer
6503 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6505 2018-05-21 13:24:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6507 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6508 libs: decoder: mpeg4: implement reset() callback
6509 remove destroy() and create() callback
6510 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6512 2018-05-21 13:22:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6514 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6515 libs: decoder: mpeg2: implement reset() callback
6516 remove create() and destroy() callbacks
6517 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6519 2018-05-21 13:22:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6521 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6522 libs: decoder: jpeg: implement reset() callback
6523 and remove create() and destroy() callbacks.
6524 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6526 2018-05-21 13:13:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6528 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6529 libs: decoder: h265: implement reset() callback
6530 and remove create() and destroy()
6531 and use g_clear_pointer for dpb structure
6532 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6534 2018-05-21 13:11:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6536 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6537 libs: decoder: h264: remove create() and destroy() callbacks
6538 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6540 2018-05-21 11:56:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6542 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6543 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6544 * tests/test-decode.c:
6545 * tests/test-subpicture.c:
6546 libs: decoder: remove gst_vaapi_decoder_unref()
6547 Replaced by gst_object_unref() in tests
6548 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6550 2018-05-21 11:51:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6552 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6553 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6554 libs: decoder: remove gst_vaapi_decoder_ref()
6555 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6557 2018-05-21 11:50:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6559 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6560 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6561 libs: decoder: remove gst_vaapi_decoder_new()
6562 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6564 2018-05-18 16:09:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6566 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6567 * gst-libs/gst/vaapi/gstvaapidecoder.h:
6568 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6569 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
6570 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6571 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
6572 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6573 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
6574 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6575 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
6576 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6577 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
6578 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6579 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6580 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
6581 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6582 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
6583 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6584 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
6585 libs: decoder: refactor decoders as gobject
6586 https://bugzilla.gnome.org/show_bug.cgi?id=796308
6588 2018-08-31 20:56:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6590 * gst/vaapi/gstvaapidecode.c:
6591 vaapidecode: Requests upstream a key unit at parse or decode error.
6592 This is done to resume decoding after a parse error or decode error.
6593 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6595 2018-08-31 20:48:13 -0500 Matteo Valdina <matteo.valdina@gmail.com>
6597 * gst/vaapi/gstvaapidecode.c:
6598 vaapidecode: sets return value in failure case.
6599 In gst_vaapidecode_handle_frame, when there is a decode error
6600 there is a code path the returns an uninitialized value.
6601 Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6603 2018-08-30 18:56:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6605 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6606 libs: display: lock at extracting available image formates
6607 When running several vaapi elements at the concurrently, at
6608 initialization, there is a race condition when extractin the avaible
6609 formats for images and subpictures.
6610 This patch add a lock when the those arrays are filled.
6611 https://bugzilla.gnome.org/show_bug.cgi?id=797039
6613 2018-08-31 14:47:55 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
6616 meson: Sync libversion and osxversion code from other repos
6617 gstreamer-vaapi does not build any libraries, only plugins, so this is
6618 not used, but sync it just in case someone does add it in the future.
6620 2018-08-29 13:44:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6622 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6623 libs: encoder: h265: trivial documentation fix
6625 2018-08-30 11:08:07 +0800 Wangfei <fei.w.wang@intel.com>
6627 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6628 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6629 libs: encoder: h265: add low delay B frame support.
6630 Low delay B frame provide the function of transforming
6631 P frame into low delay B frame which frame type is B, but
6632 only reference predictive frames. This can be used when P
6633 frame unsupported. Especially for P and B both unsupported,
6634 in this case, I and low delay B frame can be encoded in a
6636 https://bugzilla.gnome.org/show_bug.cgi?id=796984
6638 2018-08-27 20:42:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6640 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6641 libs: decoder: h264: Avoid using picture after it has been free
6642 In some cases, the found_picture ended up being evicted and freed, which
6643 would lead to a use after free when accessing picture->base.poc. In this
6644 fix, we take a ref on the picture before calling dpb_evict.
6645 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6647 2018-07-25 17:03:19 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6649 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6650 h264decoder: Fail decoding slice with missing inter-view reference
6651 Similarly to previous patch, we have no error concealment. As a side
6652 effect, it's better to skip slices with missing references then passing
6653 NULL pointers to the accelerator. Passing NULL pointer would lead to
6654 major visual artifact, a behaviour that is likely undefined.
6655 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6657 2017-09-14 14:25:41 +0900 Hyunjun Ko <zzoon@igalia.com>
6659 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6660 libs: decoder: h264: reset context when the number of view is increased
6661 Usually in case of MVC decoding, dpb size is increasedi if subset sps.
6662 That's why it resets context without this patch.
6663 But for some media it doesn't increase dpb size. Even in this case we
6664 should reset context to deal with MVC decoding.
6665 Otherwise, it leads to assert.
6666 https://bugzilla.gnome.org/show_bug.cgi?id=787124
6668 2018-07-25 13:50:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6670 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6671 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6672 * gst/vaapi/gstvaapidecode.c:
6673 vaapidecode: Skip unparsable units from adapter
6674 If the unit could not be parsed, just skip this nal and keep parsing
6675 what is left in the adapter. We need to flush the broken unit in the
6676 decoder specific parser because the generic code does not know about
6677 units boundary. This increases error resilliance.
6678 Before this, the broken unit would stay in the adapter and EOS would be
6679 returned. Which stopped the streaming. Just removing the EOS would have
6680 lead to the adapter size growing indefinitely.
6681 https://bugzilla.gnome.org/show_bug.cgi?id=796863
6683 2018-07-24 12:40:00 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6685 * gst/vaapi/gstvaapidecode.c:
6686 vaapidecoder: Don't error out on decode errors
6687 This is problematic on live pipeline where loosing network can
6688 cause an important amount of errors.
6689 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6691 2018-07-25 15:47:49 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6693 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6694 h265decoder: Don't scan empty buffer
6695 Same as what we did for H264 decoder, this is to avoid an assertion
6697 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6699 2018-07-25 20:21:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6701 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6702 libs: h264: renable the vaapi category for logging
6703 h264 log messages were logged in default category because a regression
6704 in code. This patch renable the usage of vaapi logging category.
6705 This regression was introduced in commit 7c365bdd.
6707 2018-07-18 13:09:42 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6709 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6710 h264decoder: Fail decoding slice if modification process failed
6711 This patch chains up failure to executing the modification process. The
6712 end result is that we now fail decoding the slice if this process fails.
6713 This avoid sending a corrupted state to the accelerator. In some special
6714 cases, this could lead to unrecoverable errors.
6715 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6717 2018-07-18 13:07:51 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6719 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6720 h264decoder: Don't scan empty buffer
6721 gst_adapter_masked_scan_uint32_peek() asserts if size is 0. Don't
6722 try and scan in that case. This fixes assertion that would some times
6723 happen when the stream is corrupted.
6724 https://bugzilla.gnome.org/show_bug.cgi?id=796832
6726 2018-07-04 12:51:10 +0800 Tianhao Liu <tianhao.liu@intel.com>
6728 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
6729 libs: encoder: jpeg: set component id and Tqi
6730 This change is due a problem encoding JPEGs with Intel's
6731 media-driver: green/black image when playback jpeg
6732 This patch sets component identifier and quantization table
6733 destination selector in frame header to support packing headers
6734 by Intel's media-driver that does not accept packed header
6736 https://bugzilla.gnome.org/show_bug.cgi?id=796705
6738 2018-06-25 14:20:32 +0200 Mathieu Duponchelle <mathieu@centricular.com>
6740 * gst/vaapi/gstvaapipluginutil.c:
6741 pluginutil: downgrade unsupported driver logging
6742 On systems with an Nvidia card, this error is output each time
6743 the registry is rebuilt, which happens pretty often when
6744 using gst-build as a development environment.
6745 https://bugzilla.gnome.org/show_bug.cgi?id=796663
6747 2018-06-24 13:07:20 +0200 Tim-Philipp Müller <tim@centricular.com>
6749 * gst/vaapi/gstvaapivideobufferpool.c:
6750 Update for g_type_class_add_private() deprecation in recent GLib
6752 2018-05-30 16:01:36 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6754 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6755 h264dec: Remove false assumption about parity order
6756 The decoder was trying to detect earlier that a field was lost base
6757 on guessing the parity order. This breaks in streams were the parity
6759 This patch reverts the field order prediction code added by commit
6761 https://bugzilla.gnome.org/show_bug.cgi?id=796169
6763 2018-05-18 17:03:57 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
6765 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6766 h264dec: Properly set sentinel in ref frame list
6767 This ensure that we always have sentinels set in the reference
6768 pictures arrays. The code wasn't unsafe, this simply improve the
6769 tracing, so instead of printing 32 lines of zeros, va tracer
6770 prints proper empty lists.
6771 https://bugzilla.gnome.org/show_bug.cgi?id=796169
6773 2018-06-13 18:00:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6775 * gst-libs/gst/vaapi/gstvaapidecoder.c:
6776 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6777 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6778 * gst-libs/gst/vaapi/gstvaapiencoder.c:
6779 * gst-libs/gst/vaapi/gstvaapifilter.c:
6780 * gst-libs/gst/vaapi/gstvaapiobject.c:
6781 * gst-libs/gst/vaapi/gstvaapivideopool.c:
6782 * gst/vaapi/gstvaapipluginbase.c:
6783 * gst/vaapi/gstvaapivideometa.c:
6784 * tests/test-decode.c:
6785 libs: display: remove gst_vaapi_display_ref()
6786 Replace it with gst_object_ref()
6787 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6789 2018-06-13 17:54:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6791 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6792 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6793 * gst/vaapi/gstvaapi.c:
6794 * gst/vaapi/gstvaapidecode.c:
6795 * gst/vaapi/gstvaapiencode.c:
6796 * gst/vaapi/gstvaapipluginbase.c:
6797 * gst/vaapi/gstvaapipluginutil.c:
6799 * tests/simple-encoder.c:
6800 * tests/test-decode.c:
6801 * tests/test-display.c:
6802 * tests/test-fei-enc-in.c:
6803 * tests/test-filter.c:
6804 * tests/test-subpicture.c:
6805 * tests/test-surfaces.c:
6806 * tests/test-textures.c:
6807 * tests/test-windows.c:
6808 libs: display: remove gst_vaapi_display_unref()
6809 Use gst_object_unref() instead.
6810 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6812 2018-06-13 18:10:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6814 * gst/vaapi/gstvaapivideobufferpool.c:
6815 vaapibufferpool: declare parameter display as object
6816 We have neglected to update this code since GstVaapiDisplay turned
6817 into a GstObject descendant.
6818 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6820 2018-06-01 12:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
6822 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6823 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6824 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6825 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
6826 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6827 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6828 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6829 libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config()
6830 Gobjectification for GstVaapiDisplay was almost done by the commit 185da3d1.
6831 But still something breaking GObject code convention remains, which is
6832 calling gst_vaapi_display_new() in each decendants.
6833 This patch replaces it with gst_vaapi_display_config(), defined in private
6835 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6837 2018-06-13 17:05:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6839 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6840 libs: display: redefine gst_vaapi_display_create()
6841 The function name was gst_vaapi_display_create_unlocked(), nonetheless
6842 it wasn't called unlocked. In order to keep the semantics this patch
6843 renames the gst_vaapi_display_create_unlocked() as
6844 gst_vaapi_display_create(), removing the previous function
6845 gst_vaapi_display_create().
6846 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6848 2018-06-12 15:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6851 Revert "build: meson: libva gst-uninstall friendly"
6852 This reverts commit fc3eef9c432c1628cb92ab56e74924cf1182da30.
6854 2018-06-12 15:13:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6856 * gst/vaapi/gstvaapipluginutil.c:
6857 plugins: fix compilation
6858 gstvaapipluginutil.c:171:1: error: old-style function definition [-Werror=old-style-definition]
6860 2018-04-20 18:05:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6863 build: meson: libva gst-uninstall friendly
6864 Make gstreamer-vaapi to use libva uninstalled.
6866 2018-06-10 10:44:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6868 * gst/vaapi/gstvaapipluginutil.c:
6869 plugins: refactor gst_vaapi_create_display_from_gl_context()
6870 gst_vaapi_create_display_from_gl_context() was a spaghetti mess.
6871 This path refactors it, in order to make the code readable and
6873 https://bugzilla.gnome.org/show_bug.cgi?id=796564
6875 2018-05-25 12:17:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6877 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6878 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6879 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6880 libs: display: resurrect parent private member
6881 This is, practically, a revert of commit dcf135e2.
6882 The parent logic is useful for the EGL display, which is a decorator
6883 of the real windowing subsystem (X11 or Wayland). Thus it is avoided
6884 calling vaInitialize() and vaTerminate() twice.
6885 https://bugzilla.gnome.org/show_bug.cgi?id=795391
6887 2018-04-27 18:35:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6889 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6890 libs: display: egl: initialize params structure
6891 Statically initialise the internal params structure.
6892 https://bugzilla.gnome.org/show_bug.cgi?id=795391
6894 2018-04-27 18:34:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6896 * gst/vaapi/gstvaapipluginutil.c:
6897 plugins: handle EGL when creating VAAPI display from gl
6898 If GstGL reports a EGL platform force to create a EGL display using
6899 the native EGL display.
6900 https://bugzilla.gnome.org/show_bug.cgi?id=795391
6902 2018-04-24 18:17:24 +0900 Hyunjun Ko <zzoon@igalia.com>
6904 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6905 * gst/vaapi/gstvaapipluginutil.c:
6906 display: egl: create VaapiDisplayEGL with native EGL display
6907 gst_vaapi_display_egl_new_with_native_display() has been broken since
6909 Currently it's needed to call this API to create a display providing
6910 the EGL display, so it could avoid duplicated calls to the native
6911 display (eg. eglTerminate).
6912 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
6913 https://bugzilla.gnome.org/show_bug.cgi?id=795391
6915 2018-06-07 09:34:11 +0800 Tianhao Liu <tianhao.liu@intel.com>
6917 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6918 libs: decoder: release VA buffers after vaEndPicture
6919 This change is due a problem decoding JPEGs with Intel's media-driver:
6920 no image was generated.
6921 This patch relases the VA buffers after vaEndPicture() is called,
6922 and not before (after vaRenderPicture()).
6923 https://bugzilla.gnome.org/show_bug.cgi?id=796505
6925 2018-06-07 19:49:02 +0100 Tim-Philipp Müller <tim@centricular.com>
6927 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6928 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6929 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
6930 meson: fix build when xrender or xrandr are not available
6931 HAVE_XRENDER are defined to 1 or 0, not defined or undefined.
6933 2018-05-25 16:47:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
6935 * gst/vaapi/gstvaapipostproc.c:
6936 vaapipostproc: don't copy the GstParentBufferMeta if use_vpp
6937 Otherwise a reference to a DMABuf input buffer is kept until the output
6939 https://bugzilla.gnome.org/show_bug.cgi?id=796399
6941 2018-05-22 21:13:08 +0900 Hyunjun Ko <zzoon@igalia.com>
6943 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6944 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6945 libs: display: remove unnecessary legacy code since gobjectification
6946 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6948 2018-05-22 21:05:54 +0900 Hyunjun Ko <zzoon@igalia.com>
6950 * gst-libs/gst/vaapi/gstvaapidisplay.c:
6951 * gst-libs/gst/vaapi/gstvaapidisplay.h:
6952 libs: display: remove unused code
6953 https://bugzilla.gnome.org/show_bug.cgi?id=796470
6955 2018-06-05 15:16:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6957 * gst/vaapi/gstvaapiencode_h264.c:
6958 vaapiencode: h264: log output caps
6960 2018-06-05 22:38:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6962 * gst/vaapi/gstvaapiencode_h264.c:
6963 vaapiencode: h264: find profile in available and allowed caps
6964 The commit 67e33d3de225d0e006d7bf606e7abb20d4544eab ("vaapiencode: h264:
6965 find best profile in those available") changed the code to pick a profile
6966 that is actually supported by the hardware. Unfortunately it dropped the
6967 downstream constraints. This can cause negotiation failures under certain
6969 The fix is split in two cases:
6970 1\ the available VA-API caps doesn't intersect with pipeline's allowed
6972 * The best allowed profile (pipeline's caps) is set as the encoding
6973 target profile (it will be adjusted later by the available profiles
6975 2\ the available VA-API caps does intersect with pipeline's allowed
6977 * The intersected caps are fixed, and its profile is set as the
6978 encoding target profile. In this case the is not the best profile,
6979 but the minimal one (if VA-API reports the profiles in order).
6980 Setting the minimal profile of the intersected caps is better for
6982 This patch fixes other tests related with caps negotiation, for
6983 example, it handles baseline profile, even when VA only supports
6984 constrained-baseline.
6985 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
6986 https://bugzilla.gnome.org/show_bug.cgi?id=794306
6988 2018-06-01 15:27:25 +0900 Hyunjun Ko <zzoon@igalia.com>
6990 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6991 libs: encoder: h265: increase log2_max_pic_order_cnt range according to spec
6992 The specification says,
6993 "log2_max_pic_order_cnt_lsb_minus4 shall be in the range of 0 to 12, inclusive."
6994 This patch changes the upper limit from 6 to 12.
6995 https://bugzilla.gnome.org/show_bug.cgi?id=796179
6997 2018-05-21 13:27:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6999 * gst/vaapi/gstvaapipluginutil.c:
7000 plugins: guard GstGL code
7002 2018-05-18 18:23:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7004 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7005 libs: decoder: h264: use g_clear_pointer()
7007 2018-05-18 17:27:46 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7009 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
7010 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
7011 libs: decoder: mpeg4, vc1: remove unused header
7013 2018-05-18 11:09:58 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7015 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7016 libs: decoder: remove unused forward declaration
7018 2018-05-07 07:59:25 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
7021 fix configure.ac regression
7022 Fixes regression introduced by 77527d67abe
7023 https://bugzilla.gnome.org/show_bug.cgi?id=795885
7025 2018-05-05 17:57:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7027 * gst-libs/gst/Makefile.am:
7028 * gst-libs/gst/base/Makefile.am:
7029 * gst-libs/gst/base/gstbitwriter.c:
7030 * gst-libs/gst/base/gstbitwriter.h:
7031 * gst-libs/gst/base/meson.build:
7032 * gst-libs/gst/meson.build:
7033 * gst-libs/gst/vaapi/Makefile.am:
7034 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7035 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7036 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7037 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7038 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7039 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7040 * gst-libs/gst/vaapi/meson.build:
7041 libs: remove gstbitwriter
7042 Since it is deployed in gstreamer-core, there is no need to use
7044 https://bugzilla.gnome.org/show_bug.cgi?id=795848
7046 2018-04-28 16:10:46 +0800 Wang,Fei <fei.w.wang@intel.com>
7048 * gst/vaapi/gstvaapidecode.c:
7049 vaapih264dec: add constrained and progressive profiles
7050 Those profiles have been added in the version 2012-01
7051 and 2011-06 of the AVC spec (A.2.4.1 and A.2.4.2).
7052 Both are supported by VAProfileH264High
7053 https://bugzilla.gnome.org/show_bug.cgi?id=795624
7055 2018-04-26 18:15:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7057 * gst/vaapi/gstvaapipluginbase.c:
7058 * gst/vaapi/gstvaapipluginutil.c:
7059 * gst/vaapi/gstvaapivideocontext.c:
7060 * gst/vaapi/gstvaapivideocontext.h:
7061 plugin: remove custom GstGL context handling
7062 Instead of using our own context handling for looking for GstGL
7063 parameters (display, context and other context), this patch changes
7064 the logic to use the utility function offered by GstGL.
7065 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7067 2018-04-26 15:03:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7069 * gst/vaapi/gstvaapipluginbase.c:
7070 plugins: GstGL API must use the member variables
7071 This commit basically is a revert of commits 8092537 and fc1c415
7072 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7074 2018-04-25 16:24:32 +0900 Hyunjun Ko <zzoon@igalia.com>
7076 * gst/vaapi/gstvaapipluginbase.c:
7077 plugins: pass members as parameters of gst_gl_ensure_element_data()
7078 The parameters of gst_gl_ensure_element_data() have to be not
7079 local variable since they are going to be used to see if they're
7080 set in gst_element_set_context() inside the API.
7081 This is basically a revert of commit 3d56306c
7082 https://bugzilla.gnome.org/show_bug.cgi?id=793643
7084 2018-04-25 17:50:14 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7087 meson: fix USE_GLES_VERSION_MASK
7088 1. The macro in the code is USE_GLES_VERSION_MASK
7089 2. glesv3 is provided by glesv2 pkg-config, then it's required to
7091 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7093 2018-04-24 18:12:44 +0900 Hyunjun Ko <zzoon@igalia.com>
7095 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7096 libs: egl: utils: mark context as wrapped when it is
7097 The returning egl context may be null, so we should check the
7099 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7101 2018-04-24 10:02:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7103 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7104 libs: egl: utils: fix usage of GstGL macros
7105 Include gl.h for the required GstGL symbols.
7106 https://bugzilla.gnome.org/show_bug.cgi?id=795391
7108 2018-04-25 11:01:45 +0100 Tim-Philipp Müller <tim@centricular.com>
7111 meson: use -Wl,-Bsymbolic-functions where supported
7112 Just like the autotools build.
7114 2018-04-20 16:01:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7117 meson: use get_pkgconfig_variable()
7118 Use get_pkgconfig_variable() method, of dependency class, rather
7119 than using run_command().
7121 2018-04-20 11:50:55 +0100 Tim-Philipp Müller <tim@centricular.com>
7123 * gst-libs/gst/base/meson.build:
7124 * gst-libs/gst/vaapi/meson.build:
7126 meson: fix miscellaneous meson warnings
7127 WARNING: Passed invalid keyword argument "rqeuired".
7128 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "version".
7129 gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "soversion".
7130 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "version".
7131 gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "soversion".
7133 2018-03-30 13:41:39 +0200 Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7135 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7136 display: drm: Allow finding DRM paths out of the PCI subsystem
7137 This removes hard-coded checks on the parent subsystem of potential DRM
7138 devices. These checks were set to exlude devices that do not originate
7139 from the PCI bus, which is only a valid approach on x86 devices.
7140 Other devices may have a DRM device originating from the platform
7141 subsystem, so the checks that were previously restricted to PCI are
7142 extended to cover platform devices as well.
7143 https://bugzilla.gnome.org/show_bug.cgi?id=794840
7144 Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7146 2017-11-08 13:27:06 +0900 Hyunjun Ko <zzoon@igalia.com>
7148 * gst/vaapi/gstvaapivideocontext.c:
7149 videocontext: support wl-display in "gst.vaapi.app.Display"
7150 Through "gst.vaapi.app.Display" context, users can set their own
7151 VADisplay and native display of their backend.
7152 So far we support only X11 display, from now we also support Wayland
7155 - wl-display : pointer of struct wl_display .
7156 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7158 2017-11-08 13:26:38 +0900 Hyunjun Ko <zzoon@igalia.com>
7160 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7161 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
7162 libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display()
7163 Implements new API function so that users could create GstVaapiDisplay
7164 with their own VADisplay within a native display as backend.
7165 https://bugzilla.gnome.org/show_bug.cgi?id=705821
7167 2018-04-13 09:28:53 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
7169 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
7170 wayland: don't poll if there are no pending frames
7171 Otherwise the following poll may not return for an arbitrary amount of
7172 time. This can happen if another wayland event queue has flushed and read
7174 https://bugzilla.gnome.org/show_bug.cgi?id=795224
7176 2017-10-16 12:09:08 +0900 Hyunjun Ko <zzoon@igalia.com>
7178 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7179 libs: encoder: h265: 16 bit rounding of picture width and height
7180 pic_width_in_luma_samples/pic_height_in_luma_samples can be 16-bit rounded
7182 In addition, codedbuf_size must be calculated according to this change.
7183 https://bugzilla.gnome.org/show_bug.cgi?id=753229
7185 2018-04-16 10:53:47 +0100 Tim-Philipp Müller <tim@centricular.com>
7188 Automatic update of common submodule
7189 From 3fa2c9e to ed78bee
7191 2018-03-30 20:39:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7193 * gst/vaapi/gstvaapiencode_h264.c:
7194 vaapiencode: h264: find best profile in those available
7195 Instead to look for the best profile in the allowed profiles by
7196 downstream, the encoder should look for the base profile in the
7197 available profile in VA-API.
7198 https://bugzilla.gnome.org/show_bug.cgi?id=794306
7200 2018-03-20 10:49:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7205 * docs/plugins/inspect/plugin-vaapi.xml:
7209 === release 1.14.0 ===
7211 2018-03-19 20:30:28 +0000 Tim-Philipp Müller <tim@centricular.com>
7216 * gstreamer-vaapi.doap:
7220 2018-03-12 16:59:01 +0000 Julien Isorce <jisorce@oblong.com>
7222 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7223 libs: decoder: h264: ensure num_ref_frames is greater than 0
7224 Even if it is the h264parse fault or bad video file, vaapih264dec
7225 should set a proper value for VAPictureParameterBufferH264.num_ref_frames
7226 as the driver might use it.
7227 Also see "info.ref_frames = dpb_size;" in
7228 gstvaapidecoder_h264.c::ensure_context
7229 https://bugzilla.gnome.org/show_bug.cgi?id=793836
7231 === release 1.13.91 ===
7233 2018-03-13 19:32:05 +0000 Tim-Philipp Müller <tim@centricular.com>
7238 * gstreamer-vaapi.doap:
7242 === release 1.13.90 ===
7244 2018-03-03 22:59:30 +0000 Tim-Philipp Müller <tim@centricular.com>
7249 * gstreamer-vaapi.doap:
7253 2018-03-01 07:33:27 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7255 * gst/vaapi/gstvaapipostproc.c:
7256 vaapipostproc: change how the metadata is copied
7257 Instead of copying the metada in prepare_output_buffer() vmethod,
7258 it is done in append_output_buffer_metadata() thus deinterlaced
7259 buffers could also have the proper metas.
7260 GstVideoCropMeta now it is copied internally and it is decided via
7261 transform_meta() vmethod.
7262 A new internal method, copy_metadata() was added to handle VPP
7263 transformation where non-GstVideoVaapiMeta metas were lost.
7265 2018-02-27 16:20:15 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7267 * gst/vaapi/gstvaapipostproc.c:
7268 postproc: Copy meta data from input to output
7269 This will ensure that meta data without memory tags will be copied. This
7270 was noticed when testing ROI.
7271 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7273 2018-02-23 10:48:36 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7275 * tests/elements/test-roi.c:
7276 tests: element: rewrite ROI test
7277 Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
7278 than injecting GstEvents. These meta are added as a pad probe in
7281 * Use of navigation messages to control de test
7282 * Use signal watch for processing messages
7283 * Change to H265 rather than H264 since current intel-vaapi-driver
7284 only supports ROI on kabylake.
7285 TODO: add a parameter to change the encoder/decoder to test.
7286 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7288 2018-02-22 14:20:42 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7290 * gst-libs/gst/vaapi/gstvaapicontext.c:
7291 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7292 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7293 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7294 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7295 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7296 libs: encoder: reimplement ROI using meta
7297 Check input buffers for ROI metas and pass them to VA. Also added a
7298 new "default-roi-delta-qp" property in order to tell the encoder what
7299 delta QP should be applied to ROI by default.
7300 Enabled it for H264 and H265 encoders.
7301 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7303 2018-02-22 08:22:35 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7305 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7306 * gst-libs/gst/vaapi/gstvaapiencoder.h:
7307 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7308 Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
7309 This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
7310 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7312 2018-02-22 14:29:19 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7314 * tests/simple-encoder.c:
7315 Revert "tests: simple-encoder: add an option to set ROI"
7316 This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
7317 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7319 2018-02-21 10:56:47 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7321 * gst/vaapi/gstvaapiencode.c:
7322 * gst/vaapi/gstvaapiencode_h264.c:
7323 Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
7324 This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
7325 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7327 2018-02-23 09:25:51 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7329 * gst/vaapi/gstvaapipluginbase.c:
7330 plugins: copy input buffer metas
7331 When importing buffers to a VA-base buffer, it is required to copy
7332 the metas in the original buffer, otherwise information will be
7333 lost, such as GstVideoRegionOfInterestMeta.
7334 https://bugzilla.gnome.org/show_bug.cgi?id=768248
7336 2018-02-27 06:10:09 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7338 * gst-libs/gst/vaapi/gstvaapisurface.c:
7339 libs: surface: cast to uintptr_t pointer
7340 According to Debian package auto-building, uintptr_t is not an
7341 unsigned long in i386 arch, raising an "incompatible pointer type"
7343 This patch adds a casting for compiler's satisfaction in i386.
7345 2018-02-25 20:46:56 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7347 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7348 libs: encoder: add zero as valid value for periodic keyframe.
7349 Enabled zero as valid value for keyframe-period property.
7350 https://bugzilla.gnome.org/show_bug.cgi?id=793829
7352 2018-02-22 08:24:12 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7354 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7355 libs: encoder: code-style fix
7357 2018-02-17 18:32:11 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7359 * gst/vaapi/gstvaapidecode.c:
7360 vaapidecode: generate system allocated buffers
7361 Generate system allocated output buffers when downstream doesn't
7362 support GstVideoMeta.
7363 The VA buffer content is copied to the new output buffer, and it
7364 replaces the VA buffer.
7365 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7367 2018-02-15 19:32:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7369 * gst/vaapi/gstvaapipostproc.c:
7370 vaapipostproc: handle system allocated buffers when required
7371 When downstream can't handle GstVideoMeta it is required to send
7372 system allocated buffers.
7373 The system allocated buffers are produced in prepare_output_buffer()
7374 vmethod if downstream can't handl GstVideoMeta.
7375 At transform() vmethod if the buffer is a system allocated buffer,
7376 a VA buffer is instanciated and replaces the out buffer. Later
7377 the VA buffer is copied to the system allocate buffer and it
7378 replaces the output buffer.
7379 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7381 2018-02-15 19:32:19 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7383 * gst/vaapi/gstvaapipluginbase.c:
7384 * gst/vaapi/gstvaapipluginbase.h:
7385 plugins: add gst_vaapi_copy_va_buffer()
7386 This helper function aims to copy buffers with VA memory to dumb
7387 buffers, when GstVideoMeta is not available dowstream.
7388 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7390 2018-02-15 19:29:51 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7392 * gst/vaapi/gstvaapipluginbase.c:
7393 * gst/vaapi/gstvaapipluginbase.h:
7394 plugins: add COPY_OUTPUT_FRAME flag
7395 This patch add the member copy_output_frame and set it TRUE when
7396 when downstream didn't request GstVideoMeta API, the caps are raw
7397 and the internal allocator is the VA-API one.
7398 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7400 2018-02-15 19:28:33 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7402 * gst/vaapi/gstvaapipluginbase.c:
7403 * gst/vaapi/gstvaapipluginbase.h:
7404 plugins: store the first downstream allocator if available
7405 The allocator will be required if we need to allocate a buffer
7406 to store the frame with the expected strides.
7407 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7409 2018-02-20 02:25:13 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7411 * gst/vaapi/gstvaapivideobufferpool.c:
7412 * gst/vaapi/gstvaapivideobufferpool.h:
7413 vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
7414 This function will inform the element if it shall copy the generated
7415 buffer by the pool to a system allocated buffer before pushing it
7417 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7419 2018-02-15 19:22:08 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7421 * gst/vaapi/gstvaapivideobufferpool.c:
7422 vaapibufferpool: don't change config when forcing video meta
7423 VA-API based buffer might need a video meta because of different
7424 strides. But when donwstream doesn't support video meta we need to
7425 force the usage of video meta.
7426 Before we changed the buffer pool configuration, but actually this
7427 is a hack and we cannot rely on that for downstream.
7428 This patch add a check fo raw video caps and allocator is VA-API,
7429 then the option is enabled without changing the pool configuration.
7430 In this case the element is responsible to copy the frame to a
7431 simple buffer with the expected strides.
7432 https://bugzilla.gnome.org/show_bug.cgi?id=785054
7434 2018-02-20 09:15:05 -0600 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7436 * gst/vaapi/gstvaapipostproc.c:
7437 vaapipostproc: set discont flag at vpp deinterlacing
7438 When deinterlacing with VPP the discont flag was not forwarded to
7439 the new created buffer. This patch sets the discont flag if input
7442 2018-02-20 02:14:37 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7444 * gst/vaapi/gstvaapivideobufferpool.h:
7445 vaapibufferpool: remove wrong gcc annotation
7447 2018-02-15 14:55:42 -0600 Matteo Valdina <matteo.valdina@gmail.com>
7449 * gst-libs/gst/vaapi/gstvaapiencoder.c:
7450 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7451 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7452 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7453 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
7454 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7455 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
7456 libs: encoder: h264,h265: extend max periodic keyframe.
7457 Increased max values of periodic key frame for h26x codecs.
7458 This allow more fine tunning of encoder that in certian scenario
7459 want higher periodic key frame.
7460 For example: it doesn't want a key frame each 10 seconds but
7462 https://bugzilla.gnome.org/show_bug.cgi?id=786320
7464 2018-02-15 19:44:35 +0000 Tim-Philipp Müller <tim@centricular.com>
7470 === release 1.13.1 ===
7472 2018-02-15 17:39:16 +0000 Tim-Philipp Müller <tim@centricular.com>
7477 * gstreamer-vaapi.doap:
7481 2018-02-15 18:15:33 +0000 Tim-Philipp Müller <tim@centricular.com>
7483 * gst/vaapi/Makefile.am:
7484 vaapi: dist new header
7486 2018-02-12 17:53:58 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7488 * gst/vaapi/gstvaapi.c:
7489 vaapi: register vaapisink as marginal on wayland
7490 vaapsink, when used with the Intel VA-API driver, tries to display
7491 surfaces with format NV12, which are handled correctly by
7492 Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
7493 pipelines on mutter.
7494 This shall be solved either by COGL or by making the driver to paint
7495 RGB surfaces. In the meanwhile, let's just demote vaapisink as
7496 marginal when the Wayland environment is detected, no matter if it is
7498 https://bugzilla.gnome.org/show_bug.cgi?id=775698
7500 2018-02-12 19:00:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7502 * gst/vaapi/gstvaapipluginutil.c:
7503 plugins: update mesa's vendor string in whitelist
7504 Mesa has updated its VA-API Gallium driver vendor string:
7505 https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
7506 This patch tries to cover both, the old and the new one.
7507 https://bugzilla.gnome.org/show_bug.cgi?id=793386
7509 2018-02-08 19:22:17 +0000 Tim-Philipp Müller <tim@centricular.com>
7512 meson: make version numbers ints and fix int/string comparison
7513 WARNING: Trying to compare values of different types (str, int).
7514 The result of this is undefined and will become a hard error
7515 in a future Meson release.
7517 2018-02-07 09:13:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7519 * gst/vaapi/gstvaapipluginbase.c:
7520 plugins: handle vaapi allocator in allocation query
7521 In propose_allocation() if the numer of allocation params is zero, the
7522 system's allocator is added first, and lastly the native VA-API
7524 In decide_allocation(), the allocations params in query are travered,
7525 looking for a native VA-API allocator. If it is found, it is reused as
7526 src pad allocator. Otherwise, a new allocator is instantiated and
7527 appended in the query.
7528 https://bugzilla.gnome.org/show_bug.cgi?id=789476
7530 2018-02-07 09:06:46 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7532 * gst/vaapi/gstvaapivideomemory.h:
7533 vaapivideomemory: remove unused macro
7534 GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
7535 was never used, since the native VA-API allocator name has been
7536 GST_VAAPI_VIDEO_MEMORY_NAME.
7537 This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
7538 https://bugzilla.gnome.org/show_bug.cgi?id=789476
7540 2018-02-02 08:54:00 +0000 VaL Doroshchuk <valkov@yandex.ru>
7542 * gst/vaapi/gstvaapisink.c:
7543 vaapisink: don't mask button events for foreign windows
7544 Don't subscribe to button press events when using a foreing window,
7545 because the user created window would trap those events, preveting the
7547 https://bugzilla.gnome.org/show_bug.cgi?id=791615
7549 2018-02-05 08:51:56 +0100 Tim-Philipp Müller <tim@centricular.com>
7552 autotools: use -fno-strict-aliasing where supported
7553 https://bugzilla.gnome.org/show_bug.cgi?id=769183
7555 2018-01-30 20:38:37 +0000 Tim-Philipp Müller <tim@centricular.com>
7558 meson: use -fno-strict-aliasing where supported
7559 https://bugzilla.gnome.org/show_bug.cgi?id=769183
7561 2018-01-30 12:56:49 +0000 Philippe Normand <philn@igalia.com>
7563 * gst/vaapi/gstvaapi.c:
7564 vaapi: add NULL-sentinel to kernel_names
7565 The array needs to be NULL-terminated according to the
7566 gst_plugin_add_dependency() documentation.
7568 2018-01-18 18:53:29 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7570 * gst/vaapi/gstvaapipostprocutil.c:
7571 vaapipostproc: remove spurious code
7572 This assignation is dead code, since gst_video_info_from_caps() set
7574 https://bugzilla.gnome.org/show_bug.cgi?id=790149
7576 2018-01-18 18:51:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7578 * gst/vaapi/gstvaapipostprocutil.c:
7579 vaapipostproc: if no p-a-r in out caps define a range
7580 Instead of copying the pixel-aspect-ratio from the sink caps, define
7581 an open range for the src caps pixel-aspect-ratio. Later it will be
7583 https://bugzilla.gnome.org/show_bug.cgi?id=790149
7585 2018-01-18 13:10:59 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7587 * gst/vaapi/gstvaapisink.c:
7588 vaapisink: check for display's color-balance properties
7589 Check for display's color-balance properties, available by the VA-API
7590 driver, before setting them.
7591 Also logs an info message of those unavailable properties.
7592 https://bugzilla.gnome.org/show_bug.cgi?id=792638
7594 2018-01-17 17:30:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7596 * gst/vaapi/gstvaapipluginbase.c:
7597 plugins: re-using buffer pool breaks renegotiation
7598 at propose_allocation() we should not reuse the proposed buffer,
7599 because it could break renegotiation.
7600 https://bugzilla.gnome.org/show_bug.cgi?id=792620
7602 2018-01-17 17:26:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7604 * gst/vaapi/gstvaapipluginbase.c:
7605 plugins: use g_clear_object() to unref sinkpad_buffer_pool
7606 https://bugzilla.gnome.org/show_bug.cgi?id=792620
7608 2018-01-17 12:42:12 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7610 * gst-libs/gst/vaapi/meson.build:
7611 build: meson: add missing GstGL dependency
7613 2018-01-17 12:41:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7615 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7616 libs: utils: egl: add missing guards for GstGL
7618 2018-01-11 11:48:02 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7620 * gst/vaapi/gstvaapipluginbase.c:
7621 plugins: remove dmabuf-import hack
7622 Remove the hack to check if an upstream element has enabled the
7623 property io-mode enabled as dmabuf-import.
7624 https://bugzilla.gnome.org/show_bug.cgi?id=792034
7626 2017-12-01 15:04:35 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7628 * gst-libs/gst/vaapi/Makefile.am:
7629 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7630 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7631 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
7632 libs: egl: utils: use eglGetPlatformDisplay()
7633 eglGetDisplay() is currently broken in Mesa for Wayland. Also using
7634 eglGetDisplay() is rather fragile, and it is recommended to use
7635 eglGetPlatformDisplay() when possible.
7636 In order to do that, this patch uses the helper in GstGL. If
7637 gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
7639 https://bugzilla.gnome.org/show_bug.cgi?id=790493
7641 2017-12-08 14:46:02 +0100 Michael Tretter <m.tretter@pengutronix.de>
7643 * gst/vaapi/gstvaapipostproc.c:
7644 vaapipostproc: lock ensure_filter with postproc_lock
7645 gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
7646 and allowed_sinkpad_caps. This can race with copying these caps in
7647 gst_vaapipostproc_transform_caps and lead to segfaults.
7648 The gst_vaapipostproc_transform_caps function already locks
7649 postproc_lock before copying the caps. Make sure that calls to
7650 gst_vaapipostproc_ensure_filter also acquire this lock.
7651 https://bugzilla.gnome.org/show_bug.cgi?id=791404
7653 2018-01-10 17:10:28 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7655 * tests/test-filter.c:
7656 tests: test-filter: fix dereference before null check
7657 Null-checking op_info suggests that it may be null, but it has already
7658 been dereferenced on all paths leading to the check.
7659 There may be a null pointer dereference, or else the comparison
7660 against null is unnecessary.
7662 2018-01-10 17:06:53 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7664 * tests/y4mreader.c:
7665 tests: y4mreader: fix string state checkup
7666 str cannot be null in that moment, but it may be the end of string.
7668 2018-01-10 16:59:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7670 * tests/y4mreader.c:
7671 tests: y4mreader: use int for fgetc
7672 Assigning the return value of fgetc to char truncates its value.
7673 It will not be possible to distinguish between EOF and a valid
7676 2018-01-10 16:48:07 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7678 * tests/y4mreader.c:
7679 tests: y4mreader: fix incompatible cast
7680 Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
7681 they are dereferenced as a wider long (64 bits, signed). This may lead
7682 to memory corruption.
7684 2017-12-19 16:01:10 +0000 Tim-Philipp Müller <tim@centricular.com>
7687 meson: fix fallback for gstreamer-gl-1.0, it's now in -base
7689 2017-12-14 14:53:27 +1100 Matthew Waters <matthew@centricular.com>
7692 Automatic update of common submodule
7693 From e8c7a71 to 3fa2c9e
7695 2017-12-06 16:11:46 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7697 * gst/vaapi/gstvaapivideocontext.c:
7698 videoconvert: gst_element_post_message() is transfer full on msg
7699 For this reson we need not to unref the message, even if it failed.
7701 2017-12-06 16:11:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.com>
7703 * gst/vaapi/gstvaapivideocontext.c:
7704 Revert "vaapivideocontext: possible memleak when no bus attached"
7705 This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
7707 2017-12-01 23:03:32 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7709 * tests/elements/test-vaapicontext.c:
7710 test: vaapicontext: process have-context bus message
7712 2017-11-29 18:29:45 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7714 * tests/elements/test-vaapicontext.c:
7715 test: vaapicontext: app context is not persistent
7717 2017-11-29 11:02:03 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7719 * gst/vaapi/gstvaapipluginbase.c:
7720 * gst/vaapi/gstvaapivideocontext.c:
7721 * gst/vaapi/gstvaapivideocontext.h:
7722 vaapivideocontext: only vaapisink process app context
7723 gst.vaapi.app.Display context is made for applications that will
7724 provide the VA display and the native display to used by the
7725 pipeline, when are using vaapisink as overlay. There are no use
7726 case for encoders, decoders, neither for the postprocessor.
7727 In the case of the vaapisink, it shall query for gst.vaapi.Display
7728 upstream first, and then, if there is no reply,
7729 gst.vaapi.app.Display context will be posted in the bus for the
7730 application. If the application replies, a GstVaapiDisplay object
7731 is instantiated given the context info, otherwise a
7732 GstVaapiDisplay is created with the normal algorithm to guess the
7733 graphics platform. Either way, the instantiated GstVaapiDisplay
7734 is propagated among the pipeline and the have-message bus message.
7735 Also only vaapisink will process the gst.vaapi.app.Display, if
7736 and only if, it doesn't have a display already set. This is
7737 caused because if vaapisink is in a bin (playsink, for example)
7738 the need-context is posted twice, leading to an error state.
7739 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7741 2017-12-01 20:21:54 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7743 * gst/vaapi/gstvaapivideocontext.c:
7744 vaapivideocontext: log the name of GstVaapiDisplay
7745 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7747 2017-11-30 14:24:43 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7749 * gst/vaapi/gstvaapivideocontext.c:
7750 vaapivideocontext: possible memleak when no bus attached
7751 https://bugzilla.gnome.org/show_bug.cgi?id=790999
7753 2017-11-27 13:04:24 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7755 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
7756 libs: window: wayland: remove unused header include
7757 Remove wayland-client.h include since there is no exposed symbols from
7760 2017-11-27 12:18:56 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7762 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7763 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7764 libs: encoder: h264,h265: guard rate control's macroblock
7765 macroblock parameter appear on VA-API 1.0.0. It should be guarded.
7767 2017-11-27 20:17:55 +1100 Matthew Waters <matthew@centricular.com>
7770 Automatic update of common submodule
7771 From 3f4aa96 to e8c7a71
7773 2016-07-29 14:58:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7775 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7776 libs: encoder: h264: Add Hierarchical-B encode
7777 Frames are encoded as different layers. Frame in a particular
7778 layer will use pictures in lower or same layer as references.
7779 Which means decoder can drop the frames in upper layer but still
7780 decode lower layer frames.
7781 B-frames, except the one in top most layer, are reference frames.
7782 All the base layer frames are I or P.
7783 eg: with 3 temporal layers
7787 T1, T2, T3: Temporal Layers
7790 T1: I0->P4 , P4->P8 etc..
7792 T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
7793 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7794 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7796 2016-07-28 18:33:23 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7798 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7799 libs: encoder: h264: Add Hierarchical-P encode
7800 Frames are encoded as different layers. A frame in a particular
7801 layer will use pictures in lower or same layer as references.
7802 Which means decoder can drop the frames in upper layer but still
7803 decode lower layer frames.
7804 eg: with 3 temporal layers
7808 T1, T2, T3: Temporal Layers
7810 P0->P1 , P0->P2, P2->P3, P0->P4......repeat
7811 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7812 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7814 2016-07-28 16:51:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7816 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7817 libs: encoder: h264: Fix frame_num generation
7818 The frame_num generation was not correctly implemented.
7819 According to h264 spec, frame_num should get incremented
7820 for each frame if previous frame is a referece frame.
7821 For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
7822 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7823 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7825 2016-07-28 15:53:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7827 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7828 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
7829 libs: encoder: h264: Add new property "prediction-type"
7830 Adds new property "prediction-type" to select different reference
7831 picture selection modes like hierarchical-p, hierarchical-b etc.
7832 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7833 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7835 2016-07-28 15:12:05 +0300 XuGuangxin <guangxin.xu@intel.com>
7837 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7838 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
7839 libs: encoder: h264: Add machinery for implementing hierarchical-prediction
7840 Adds some basic building blocks to ease the implementation
7841 of hierarchical prediction modes.
7842 -- add an utility method to find temporal level of each frame
7843 -- define max_ref_frame count based on temporal level count
7844 -- add temporal_level_div[] for finding temporal level each frame
7846 -- find ip_period based on temporal level count
7847 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7848 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7850 2016-07-28 14:17:53 +0300 XuGuangxin <guangxin.xu@intel.com>
7852 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7853 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
7854 libs: encoder: h264: Add property "temporal-levels"
7855 Adds new property "temporal-levels" to select the number of
7856 temporal levels to be included in the encoded stream.
7857 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7858 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7860 2016-07-27 16:41:01 +0300 XuGuangxin <guangxin.xu@intel.com>
7862 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
7863 libs: encoder: objects: Add a reference flag
7864 We can have p-frame as non-ref and also b-frame as ref
7865 which are not supported yet. Reference flag
7866 is the first machinery needed for more advanced
7867 reference picture selection modes.
7868 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7869 https://bugzilla.gnome.org/show_bug.cgi?id=788918
7871 2017-11-02 13:21:34 +0100 Daniel van Vugt <daniel.van.vugt@canonical.com>
7873 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
7874 libs: surface: egl: add comment
7875 Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
7876 where the creation of surfaces from GEM fd may fail.
7877 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7879 2017-10-10 13:38:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7881 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7882 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
7883 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
7884 libs: display: egl: add gst_vaapi_display_egl_set_current_display()
7885 Adds a new function that changes the internal EGL display to the
7886 current one (eglGetCurrentDisplay()) and sets the current context
7887 too (eglGetCurrentContext()).
7888 This new function is called by gst_vaapi_texture_egl_create() updating
7889 the GstVaapiDisplayEGL with the current EGL display.
7890 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7892 2017-10-09 16:02:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7894 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
7895 libs: texture: egl: update EGL display and context
7896 It is required to use the context of the calling thread when wrapping
7897 a foreign texture. According the documentation of
7898 GstVideoGLTextureUploadMeta:
7899 "The caller of gst_video_gl_texture_upload_meta_upload() must
7900 have OpenGL set up and call this from a thread where it is valid
7901 to upload something to an OpenGL texture."
7902 This patch updates the EGL display and context in GstVaapiDisplay
7903 instance to the one used by te renderer that uploads the texture.
7904 Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
7905 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7907 2017-10-10 19:53:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7909 * gst/vaapi/gstvaapipluginbase.c:
7910 plugins: centralize assignation of GL objects
7911 Add plugin_set_gst_gl() where the GstGL objects are assigned.
7912 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7914 2017-10-10 19:13:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7916 * gst/vaapi/gstvaapipluginbase.c:
7917 plugins: set GL objects if ensured
7918 Only set the GL display and GL other context if they are ensured.
7919 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7921 2017-10-10 17:14:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7923 * gst/vaapi/gstvaapipluginbase.c:
7924 plugins: set GL objects if context is handled
7925 Only set the GL display and GL other context if they are extracted
7926 correctly from the gstreamer's context.
7927 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7929 2017-10-10 19:57:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7931 * gst/vaapi/gstvaapipluginbase.c:
7932 plugins: fix memory leak when GL context is created
7933 When the GL display and context are created inside an VAAPI element
7934 the created GL context is leaked.
7935 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7937 2017-10-10 14:01:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7939 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7940 libs: display: egl: free leaked memory
7941 The EGL VAAPI display forgot to release the egl display, context and
7942 proxied VAAPI display.
7943 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7945 2017-10-05 19:25:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7947 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
7948 libs: texture: egl: code style
7949 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7951 2017-10-04 13:51:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7953 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
7954 libs: surface: egl: error message if no extension
7955 Instead of silently fail to export the image if there is not available
7956 the EGL_MESA_drm_image, log an error message. Also a code refactoring
7958 https://bugzilla.gnome.org/show_bug.cgi?id=773453
7960 2017-10-31 13:10:50 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7962 * gst/vaapi/gstvaapipluginbase.c:
7963 plugins: direct rendering on memory:VASurface
7964 As buffers negotiated with memory:VASurface caps feature can also be
7965 mapped, they can also be configured to use VA derived images, in other
7966 words "direct rendering".
7967 Also, because of the changes in dmabuf allocator as default allocator,
7968 the code for configuring the direct rendering was not clear.
7969 This patch cleans up the code and enables direct rendering when the
7970 environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
7971 even then the memory:VASurface cap feature is negotiated.
7972 https://bugzilla.gnome.org/show_bug.cgi?id=786054
7974 2017-10-04 11:54:31 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7976 * gst/vaapi/gstvaapipluginbase.c:
7977 * gst/vaapi/gstvaapipluginutil.c:
7978 plugins: only dmabuf on srcpad if downstream
7979 Set if source pad can handle dmabuf only if the GstGL context comes
7981 It is possible to know that at two moments:
7982 1\ In the case of GstGLTextureUpload caps feature is negotiated and
7983 downstream pool reports back gst.gl.GstGLContext.
7984 2\ When GstGLContext is found as GstContext from dowstream.
7985 https://bugzilla.gnome.org/show_bug.cgi?id=788503
7987 2017-10-04 11:52:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7989 * gst/vaapi/gstvaapivideocontext.c:
7990 vaapivideocontext: add inline documentation
7991 Document function gst_vaapi_find_gl_local_context().
7992 https://bugzilla.gnome.org/show_bug.cgi?id=788503
7994 2017-10-04 11:50:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7996 * gst/vaapi/gstvaapipluginutil.c:
7997 * gst/vaapi/gstvaapivideocontext.c:
7998 * gst/vaapi/gstvaapivideocontext.h:
7999 vaapivideocontext: return the direction of gl context
8000 In function gst_vaapi_find_gl_context() add a direction parameter to
8001 return back the direction where the GstGL context was found.
8002 This is going to be useful when checking if downstream can import
8003 dmabuf-based buffers.
8004 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8006 2017-10-04 08:30:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8008 * gst/vaapi/gstvaapipluginbase.c:
8009 * gst/vaapi/gstvaapipluginbase.h:
8010 plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
8011 This patch refactors the code by adding the function
8012 vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
8013 GstGLContext can handle dmabuf-based buffers.
8014 The function is exposed publicly since it is intended to be used later
8015 at GstVaapiDisplay instantiation.
8016 https://bugzilla.gnome.org/show_bug.cgi?id=788503
8018 2017-10-20 12:37:15 +0200 Hyunjun Ko <zzoon@igalia.com>
8020 * gst/vaapi/gstvaapiencode.c:
8021 vaapiencode: allow to set property on runtime
8022 Tis patch, allows some properties that we want to be set on
8023 runtime. (eg. bitrate)
8024 Note that all properties are under control by num_codedbuf_queued.
8025 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8027 2017-09-15 15:38:18 +0900 Hyunjun Ko <zzoon@igalia.com>
8029 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8030 libs: encoder: allow to set bitrate on runtime
8031 In case of streaming, controlling bitrate dynamically for encoder might be
8032 important to manage quality of the streaming.
8033 This patch is to support such a scenario.
8034 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8036 2017-10-10 11:35:24 +0300 Sebastian Dröge <sebastian@centricular.com>
8038 * gst/vaapi/gstvaapi.c:
8039 * gst/vaapi/gstvaapi.h:
8040 * gst/vaapi/gstvaapidecodebin.c:
8041 vaapidecodebin: Register element if no VPP support is available too
8042 VPP support is only needed for advanced deinterlacing, which is not
8043 enabled by default either. Error out if it is selected but VPP is not
8044 supported, and otherwise just work without VPP support.
8045 https://bugzilla.gnome.org/show_bug.cgi?id=788758
8047 2017-10-16 11:57:16 +0200 Thibault Saunier <thibault.saunier@osg.samsung.com>
8049 * gst/vaapi/gstvaapipluginutil.c:
8050 Avoid infinite loop when vaapi_create_display fails
8051 Which might be the case when using, for example, xvfb.
8053 2017-10-02 18:53:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8055 * gst-libs/gst/vaapi/gstvaapiutils.c:
8056 libs: utils: log warn if display fail
8057 gstreamer-vaapi initializes the display by trial-and-error, thus
8058 logging an error message if the display initialisation fails the user
8059 may be weary of the error message in the screen, if using VA-API 1.0
8060 This commit set the VA error log handler to GStreamer warning level
8061 while calling vaInitialize() and set it to error after that.
8062 https://bugzilla.gnome.org/show_bug.cgi?id=783169
8064 2017-09-29 20:05:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8066 * gst/vaapi/gstvaapipluginutil.c:
8067 plugins: try to create test display in order
8068 When creating the test display for querying capabilites, it try in
8069 certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
8070 since they are either composited with X11 or Wayland.
8071 The reason for this is to reduce the posibility of failure that could
8072 blacklist the plugin.
8073 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8075 2017-09-29 15:07:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8077 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8078 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8079 libs: display: delay getting screen resolution
8080 Instead of extracting the screen resolution at GstVaapiDisplay
8081 creation, this patch delay it until the screen size is requested for
8083 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8085 2017-09-28 18:58:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8087 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8088 libs: display: egl: avoid two vaDisplay instantiates
8089 GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
8090 or Wayland. Nonetheless it created another vaDisplay for it, instead
8091 of using the wrapped one.
8092 This patch enables the reuse of the wrapped vaDisplay avoiding
8094 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8096 2017-09-28 17:45:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8098 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8099 * gst-libs/gst/vaapi/gstvaapidisplay.h:
8100 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
8101 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
8102 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
8103 libs: display: remove display_type from display info
8104 Since it's no required to pass the display type in the display info,
8105 the structure member is removed.
8106 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8108 2017-09-28 17:35:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8110 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8111 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8112 libs: display: remove display_type member
8113 It is not used any more since GstVaapiDisplay was ported as a
8114 GstObject-based. This information is part of the class information.
8115 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8117 2017-09-28 16:12:23 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8119 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8120 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8121 libs: display: remove parent member
8122 Parent was a crumb left from display cache.
8123 https://bugzilla.gnome.org/show_bug.cgi?id=782212
8125 2017-10-03 13:06:33 +0200 Sebastian Dröge <sebastian@centricular.com>
8127 * gst/vaapi/gstvaapi.c:
8128 vaapi: Also register vaapipostproc without VPP support
8129 It can still do simple deinterlacing then.
8131 2017-10-03 10:51:06 +0200 Sebastian Dröge <sebastian@centricular.com>
8133 * gst/vaapi/gstvaapipostproc.c:
8134 vaapipostproc: Allow running without VPP support
8135 We returned FALSE from ::start() if VPP support is not available, but it
8136 is only really needed for complex filters and during transform we check
8137 for that. For simple deinterlacing it is not needed.
8139 2017-09-27 18:35:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8141 * gst/vaapi/gstvaapipostproc.c:
8142 vaapipostproc: use scoped variable for return value
8143 Instead of reusing a parameter variable for the return value of
8144 gst_vaapipostproc_transform_caps(), this patch uses the function
8145 scoped pointer. Thus, the code is cleaner.
8146 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8148 2017-09-27 18:32:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8150 * gst/vaapi/gstvaapipostproc.c:
8151 vaapipostproc: removed unused parameter
8152 Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
8153 helper function since the it is not used.
8154 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8156 2017-09-27 13:32:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8158 * gst/vaapi/gstvaapipostproc.c:
8159 vaapipostproc: use scoped variable for return value
8160 Instead of reusing a parameter variable for the return value of
8161 gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
8162 pointer. Thus, the code is cleaner.
8163 https://bugzilla.gnome.org/show_bug.cgi?id=785706
8165 2017-09-27 11:27:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8167 * gst/vaapi/gstvaapipluginutil.h:
8168 plugins: memory:DMABuf only handles planar formats
8169 When glimagesink negotiates the caps feature memory:DMABuf the
8170 exported dmabufs buffers with NV12 format are not well rendered, thus
8171 setting only planar.
8172 https://bugzilla.gnome.org/show_bug.cgi?id=788229
8174 2017-09-25 17:04:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8176 * gst/vaapi/gstvaapiencode.c:
8177 vaapiencode: flush pending frames before set format
8178 Flush pending frames, if any, in the internal encorder, before setting
8179 the new negotiated format.
8180 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8182 2017-09-25 15:50:19 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8184 * gst/vaapi/gstvaapidecode.c:
8185 vaapidecode: drain pending frames before set format
8186 Drain pending frames, if any, in the internal decoder before setting
8187 the new negotiated format.
8188 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8190 2017-09-22 19:35:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8192 * tests/test-display.c:
8193 tests: display: use GObject getter
8194 Instead of using the gst_vaapi_display_get_property(), this patch
8195 replaces it with g_object_get_property() to dump the available VA
8197 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8199 2017-09-22 19:25:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8201 * gst/vaapi/gstvaapisink.c:
8202 vaapisink: use GObject setter and getter
8203 Instead of using gst_vaapi_display_set_property() or
8204 gst_vaapi_display_get_property(), this patch set replace it usage
8205 with g_object_set() or g_object_get().
8206 Also the internal helper cb_set_value() is removed since it is not
8208 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8210 2017-09-22 18:59:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8212 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8213 libs: display: initialize value if they are not yet
8214 This is a difference between the GObject API and the GstVaapi one: the
8215 GValue passed to get a property value, in GObject has to be
8216 initialized with g_value_init(), but in GstVaapi is has not.
8217 In order to overcome this mismatch, this patch call g_value_init()
8218 internally only in the passed one is not already initialized.
8219 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8221 2017-09-22 17:04:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8223 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8224 libs: display: optimize properties setters and getters
8225 Shuffled some code to avoid to find the properties descriptor in the
8226 array twice, adding the internal functions _set_property() and
8228 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8230 2017-09-22 16:29:02 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8232 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8233 libs: display: install properties in class
8234 Install the properties in the class as a normal GObject. Implement
8235 set_property() and get_property() vmethods.
8236 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8238 2017-09-22 15:16:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8240 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8241 libs: display: remove gst_vaapi_display_properties_init()
8242 Remove gst_vaapi_display_properties_init() since it can be unrolled in
8243 gst_vaapi_display_class_init()
8244 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8246 2017-09-22 15:12:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8248 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8249 libs: display: remove libgstvaapi_init_once()
8250 It is not required since it can be unrolled in
8251 gst_vaapi_display_class_init()
8252 https://bugzilla.gnome.org/show_bug.cgi?id=788058
8254 2017-09-22 17:50:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8256 * tests/test-display.c:
8257 tests: test-display: remove display cache tests
8258 Since commit ec3e10f6, display cache was removed. This patch removes
8259 this leftovers in the display test.
8261 2017-09-18 14:29:55 +0900 Hyunjun Ko <zzoon@igalia.com>
8263 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8264 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8265 libs: decoder: h264/h265: decode codec data only if opened
8266 Fixes regression introduced by commit 2eb2b26a.
8267 There is a use case when the decoder set the src caps and immediatly
8268 tries to process the media codec_data, this happens before decoder is
8269 even opened, thus priv->parser is not instantiated yet.
8270 https://bugzilla.gnome.org/show_bug.cgi?id=787818
8272 2017-09-18 19:11:45 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8274 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8275 * gst-libs/gst/vaapi/gstvaapiencoder.h:
8276 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8277 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8278 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8279 libs: encoder: change mbbrc from uint to enum
8280 Instead of handling the macroblock bitrate control as a integer, this
8281 patch changes it as a enum, which is more self documented in the
8283 https://bugzilla.gnome.org/show_bug.cgi?id=787855
8285 2017-09-18 13:55:49 +1000 Jan Schmidt <jan@centricular.com>
8287 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8288 Fix a typo in the prop string for compliance-mode
8290 2017-09-15 18:31:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8292 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8293 libs: encoder: don't unref properties
8294 This patch fixes a regression introduced in commit 148f867c, since the
8295 props variable is set to object's member variable
8296 encoder->properties. And it is set in the instance initialization,
8297 thus it will not be leaked.
8298 https://bugzilla.gnome.org/show_bug.cgi?id=787733
8300 2017-09-15 15:14:47 +0900 Hyunjun Ko <zzoon@igalia.com>
8302 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8303 * gst/vaapi/gstvaapiencode.c:
8304 vaapiencode/libs: encoder: fix leaks of properties
8305 https://bugzilla.gnome.org/show_bug.cgi?id=786321
8307 2017-08-24 21:51:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8309 * gst-libs/gst/vaapi/gstvaapidecoder.c:
8310 libs: decoder: at update_caps() decode codec_data
8311 When updating the caps in decoder, if the caps has codec_data (avC
8312 format), it has to be parsed to update the state of the decoder.
8313 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8315 2017-09-13 15:44:32 +0900 Hyunjun Ko <zzoon@igalia.com>
8317 * gst-libs/gst/vaapi/gstvaapicontext.c:
8318 libs: context: fix wrong counter of the array of attributes
8319 The counter value passed to vaCreateConfig is always +1.
8320 This is a regression caused by commit e42ec3ad.
8321 The present patch fixes wrong counting of the array of attributes.
8322 https://bugzilla.gnome.org/show_bug.cgi?id=787613
8324 2017-09-13 12:23:42 +0900 Hyunjun Ko <zzoon@igalia.com>
8326 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8327 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8328 libs: encoder: h265: support I/P/B QP setting seperatedly
8329 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8331 and set slice_qp_delta for each frame according to the value provided.
8332 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8334 2017-09-13 12:22:07 +0900 Hyunjun Ko <zzoon@igalia.com>
8336 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8337 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8338 libs: encoder: h264: support I/P/B QP setting seperatedly
8339 Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8341 and set slice_qp_delta for each frame according to the value provided.
8342 In addition, remove the limitation of (<= 4) when setting
8344 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8346 2017-09-13 12:15:57 +0900 Hyunjun Ko <zzoon@igalia.com>
8348 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8349 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8350 libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
8351 Creates new variable for QP for I frame and keep it at configuration and
8352 use this for pic_init_qp and slice_qp_delta setting.
8353 Since changing min qp doesn't make sense, keep min qp as is.
8354 https://bugzilla.gnome.org/show_bug.cgi?id=785923
8356 2017-09-13 12:09:45 +0900 Hyunjun Ko <zzoon@igalia.com>
8358 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8359 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8360 libs: encoder: h265: Add mbbrc property
8361 This property supports Macroblock level Bitrate Control as the
8362 following (same as h264 encoder):
8366 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8368 2017-09-13 12:02:53 +0900 Hyunjun Ko <zzoon@igalia.com>
8370 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8371 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8372 libs: encoder: h264: Add mbbrc property
8373 This property supports Macroblock level Bitrate Control as the
8378 https://bugzilla.gnome.org/show_bug.cgi?id=785917
8380 2017-09-13 11:39:09 +0900 Hyunjun Ko <zzoon@igalia.com>
8382 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8383 libs: encoder: h265: add multi reference support
8384 This is doing the same as h264 encoder as the following:
8385 Using num_ref_frames provided and the result of the Query
8386 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
8387 and perform encoding with multi reference frames as the following:
8388 1\ The num_ref_frames is being considered as the number of
8389 reference picture list0
8390 2\ Encoder adds 1 reference frame more to the reference picture list1
8391 internally if b-frame encoding.
8392 3\ If num_ref_frames is bigger than the number of refrence frames
8393 supported in the driver, it will be lowered.
8394 Also this patch includes:
8395 - Set num_negative_pics and num_positive_pics according to the number of
8397 - Set delta_poc according to the number of refs.
8398 - Increase max_dec_pic_buffering according to the number of refs
8399 - Change max_num_reorder_pics according to num of bframes
8400 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8402 2017-09-13 11:37:33 +0900 Hyunjun Ko <zzoon@igalia.com>
8404 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8405 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8406 libs: encoder: h265: add refs property
8407 Users can provide the number of reference frame by this property,
8408 which is exaclty same as h264.
8409 The value of the property will be considered as the number of
8410 reference picture list0 and will add 1 reference frame more to the
8411 reference picture list1 internally if b-frame encoding.
8412 If the value provided is bigger than the number of refrence frames
8413 supported in the driver, it will be lowered.
8414 The maximum value is aligned to the value of the driver supported now.
8415 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8417 2017-09-13 11:17:26 +0900 Hyunjun Ko <zzoon@igalia.com>
8419 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8420 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8421 libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
8422 Follows the specification as below:
8423 7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
8424 num_ref_idx_active_override_flag equal to 1 specifies that the syntax
8425 element num_ref_idx_l0_active_minus1 is present for P and B slices and
8426 that the syntax element num_ref_idx_l1_active_minus1 is present for B
8428 num_ref_idx_active_override_flag equal to 0 specifies that the syntax
8429 elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
8431 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8433 2017-09-13 11:06:20 +0900 Hyunjun Ko <zzoon@igalia.com>
8435 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8436 libs: encoder: h265: keep idr_period equal to keyframe period
8437 Remove FIXME code, which makes previous assignation spurious.
8438 This also means to make idr_period equal to keyframe period,
8439 which is same as h264 encoder.
8440 https://bugzilla.gnome.org/show_bug.cgi?id=783804
8442 2017-09-06 14:03:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
8444 * gst/vaapi/gstvaapipluginbase.c:
8445 Request minimum buffer even if need_pool is FALSE
8446 When tee is used, it will not request a pool, but still it wants to
8447 know how many buffers are required.
8448 https://bugzilla.gnome.org/show_bug.cgi?id=730758
8450 2017-09-05 10:58:57 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
8452 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8453 libs: encoder: h264_fei: VA-API 1.0 compat
8454 Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
8456 https://bugzilla.gnome.org/show_bug.cgi?id=787322
8457 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
8459 2017-09-01 13:48:01 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8461 * gst/vaapi/gstvaapisink.c:
8462 vaapisink: Fix rendering in drm display
8463 Make sure vaapisink create a va surface backed buffer pool and all
8464 required attributes get assigned correctly for drm display type.
8465 This is needed to make the below pipeline working:
8466 gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
8467 width=320 height=240 framerate=30/1 ! vaapisink display=drm
8468 https://bugzilla.gnome.org/show_bug.cgi?id=786954
8470 2017-08-09 18:46:09 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8472 * tests/Makefile.am:
8473 * tests/test-fei-enc-in.c:
8474 * tests/test-fei-enc-out.c:
8475 FEI: Add test applications to showcase fei use case
8476 test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
8478 ./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
8479 test-fei-enc-in: A simple fei encoding application for testing input fei buffers
8481 ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
8482 Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
8483 from saved files is still not working
8485 Wang, Yi <yi.a.wang@intel.com>
8486 Leilei <leilei.shang@intel.com>
8487 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8488 xiaominc <xiaomin.chen@intel.com>
8489 Li, Jing B <jing.b.li@intel.com>
8490 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8491 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8493 2017-08-09 18:36:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8495 * gst/vaapi/Makefile.am:
8496 * gst/vaapi/gstvaapi.c:
8497 * gst/vaapi/gstvaapiencode_h264_fei.c:
8498 * gst/vaapi/gstvaapiencode_h264_fei.h:
8499 FEI: plugin: Add vaapih264feienc element
8500 A new FEI based encoder element for h264 is added: vaapih264feienc
8501 FEI is a an extension to VA-API which is providing low level
8502 advanced control over different stages of encoding.
8503 Extending vaapih264enc with fei support is possible, but it will
8504 make the code too much complicated and will be difficult
8505 to debug. So adding the new encoder element, but keeping
8506 the rank as 0 , vaapih264enc will stay as the primary
8507 encoder for normal use cases.
8508 The vaaih264feienc is mainly useful for customers who want to play
8509 with MotionVectors and Macroblock Predictions. Also user can
8510 do one stage of encoding(eg: only the Motion Vector Calculation)
8511 in software and offload trasformation/entroy-coding etc to
8512 Hardware (which is what PAK module is doing) using FEI element.
8513 vaapih264feienc can work in different modes using fei-mode properoty
8514 eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
8515 Important Note: ENC only mode won't produce any encoded data which is expected.
8516 But ENC alwys requires the output of PAK in order to do the inter-prediction
8517 over reconstructed frames.
8518 Similary PAK mode alway requires MV and MBCode as input, so unless there is an
8519 upstream element providing those buffers, PAK only won't work as expected.
8520 In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
8521 with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
8522 that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
8523 separately in vaapih264feienc.
8525 Wang, Yi <yi.a.wang@intel.com>
8526 Leilei <leilei.shang@intel.com>
8527 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8528 xiaominc <xiaomin.chen@intel.com>
8529 Li, Jing B <jing.b.li@intel.com>
8530 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8531 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8532 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8534 2017-08-09 18:32:13 -0700 Yi A Wang <yi.a.wang@intel.com>
8536 * gst/vaapi/gstvaapiencode.c:
8537 * gst/vaapi/gstvaapiencode.h:
8538 FEI: plugin: Add virtual methods to base encode
8539 Two new virtual methods are added to gstvaapiencode.
8540 load_control_data(): load the FEI input buffers set by the upstream elements
8541 save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
8542 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8543 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8544 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8546 2017-08-09 18:26:57 -0700 Yi A Wang <yi.a.wang@intel.com>
8548 * gst/vaapi/Makefile.am:
8549 * gst/vaapi/gstvaapifeivideometa.c:
8550 * gst/vaapi/gstvaapifeivideometa.h:
8551 FEI: plugin: Add fei specific video meta
8552 GstVaapiFeiVideoMeta holds the below fei codec objects:
8553 GstVaapiEncFeiMbCode
8555 GstVaapiEncFeiMvPredictor
8556 GstVaapiEncFeiMbControl
8558 GstVaapiEncFeiDistortion
8559 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8560 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8561 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8563 2017-08-09 18:19:06 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8565 * gst-libs/gst/vaapi/Makefile.am:
8566 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8567 * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
8568 * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
8569 * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
8570 * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
8571 * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
8572 FEI: libs: Add FEI encoder
8573 Adding FEI encoder to core lib.
8574 The code is splitted into three session:
8575 1: gstvaapiencoder_h264_fei.{h,c}
8576 This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
8577 All the modes ENC, PAK and ENC_PAK are running based
8578 the code in these files.
8579 2: gstvaapifeienc_h264.{h,c}
8580 Abstract implementation intended for ENC (only VME) operation.
8581 3: gstvaapifeipak_h264.{h,c}
8582 Abstrct implementation intended for PAK (only the PAK module)
8583 Right now ENC_PAK, ENC and PAK are running based on code
8584 in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
8585 in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
8586 needed if user request for ENC+PAK mode operation.
8587 ENC+PAK: Here we need to invoke two sequence of
8588 vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
8589 first for the ENC only and the second for PAK only.
8590 Each mode associated with separate context ,but same pool of surfaces are
8591 shared between the modes.
8592 This is more useful once we have custom BRC algorithms.
8594 Wang, Yi <yi.a.wang@intel.com>
8595 Leilei <leilei.shang@intel.com>
8596 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8597 xiaominc <xiaomin.chen@intel.com>
8598 Li, Jing B <jing.b.li@intel.com>
8599 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8600 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8602 2017-08-09 17:54:27 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8604 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
8605 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8606 FEI: libs: Add fei codec objects to GstVaapiEncPicture
8607 All the codec objects(vaapi buffers) supposed to be
8608 submited in vaRenderPicutre are associated with a GstVaapiEncPicture
8609 for each frame, follow the same design for FEI too.
8610 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8611 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8613 2017-08-09 16:05:13 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8615 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
8616 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
8617 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
8618 FEI: libs: Add fei codec objects in codedbufferproxy
8619 MbCode, MV and Distortion buffers (fei codec objects)
8620 can be treated as output of different fei modes based user request.
8621 For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
8622 can be dumped as output in ENC_PAK mode for analysis purpose.
8623 So treating them as a part of CodedBufferProxy too.
8624 Here we avoided Qp, MbControl and MvPredictor codec objects since
8625 there is no practical use case of treating them as "output buffers".
8627 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8628 xiaominc <xiaomin.chen@intel.com>
8629 Leilei <leilei.shang@intel.com>
8630 Li, Jing B <jing.b.li@intel.com>
8631 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8632 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8634 2017-08-09 15:49:21 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8636 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
8637 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
8638 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
8639 FEI: libs: Add fei codec objects to surface proxy
8640 Add fei codec objects to surface proxy since handling the
8641 fei buffers(codec objects here) external to gstvaapisurfaceproxy
8642 will make the code complicated. Especially considering the behavior
8643 of encoder where the input frame order from upstream and output
8644 frame order to the downstream are not sequential.
8646 Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8647 xiaominc <xiaomin.chen@intel.com>
8648 Leilei <leilei.shang@intel.com>
8649 Li, Jing B <jing.b.li@intel.com>
8650 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8651 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8653 2017-08-09 15:35:10 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8655 * gst-libs/gst/vaapi/Makefile.am:
8656 * gst-libs/gst/vaapi/gstvaapifei_objects.c:
8657 * gst-libs/gst/vaapi/gstvaapifei_objects.h:
8658 * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
8659 FEI: Add codec objects for fei usecase
8660 There are 6 new va buffer types, each defined as a specific codec object.
8661 Borrowed the code from gstvaapicodecobject , but made a clear separation
8662 to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
8663 feicodecobjects can be shared between elements and also can be accessed
8664 from different thread.
8665 Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
8666 object is not shared between elements.So we utilize the already
8667 existing gst_vaapi_enc_misc_param_new(), but still keeping the code
8668 in gstvaapfei_objects_priv.h in order to have a better
8671 -- Probably we need _locked_map() and _unlocked_map()
8672 -- Context can be associated with PreEnc(not just Enoder)
8673 once we have the proper support inplace, but for now we don't have
8674 PreEnc support, so should be safe enough to use GstVaapiEncoder.
8675 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8676 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8678 2017-08-09 14:22:12 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8680 * gst-libs/gst/vaapi/Makefile.am:
8681 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
8682 * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
8683 FEI: libs: add H264 fei specific utility functions
8684 Added enum/flag type definitions for a number of FEI
8685 input and output parameters.
8686 Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
8687 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8688 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8689 Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
8690 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8692 2017-08-09 14:10:16 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8694 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8695 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8696 FEI: libs: Add virtual method for secondary context creation.
8697 Add a new vitrual method ensure_secondary_context to the
8698 base encoder which is only required for the FEI entrypoint, that too
8699 only when user configures the ENC+PAK mode. ENC+PAK mode is not something
8700 supported directly by libva or driver, but this can be enabled
8701 from the middleware.
8702 Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
8703 Signed-off-by: Leilei Shang <leilei.shang@intel.com>
8704 Signed-off-by: xiaominc <xiaomin.chen@intel.com>
8705 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8706 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8707 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8709 2017-08-09 14:05:03 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8711 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8712 FEI: libs: make sure the default context creation works as expected.
8713 Current code always guess the entrypoint during init phase in case
8714 if there is no entrypoint already configured in GstVaapiContextInfo.
8715 Make sure FEI Entrypoint is not messing up with this logic.
8716 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8717 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8719 2017-08-09 13:45:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8721 * gst-libs/gst/vaapi/gstvaapicontext.c:
8722 * gst-libs/gst/vaapi/gstvaapicontext.h:
8723 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8724 FEI: libs: Add FEI functional mode configuration
8725 FEI Entrypoint can work in either one of the 3 different modes:
8726 VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
8727 Add infrastructure in gstvaapicontext and gstvaapiencoder for this
8728 functioal mode configuration.
8729 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8730 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8732 2017-08-09 13:02:24 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8734 * gst-libs/gst/vaapi/gstvaapidisplay.c:
8735 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8736 * gst-libs/gst/vaapi/gstvaapiprofile.h:
8737 FEI: libs: Add FEI Entrypoint mapping
8738 Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
8739 for VAEntrypointFEI.
8740 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8741 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8743 2017-08-09 12:58:29 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8746 FEI: Add support for FEI conditional build
8747 FEI(Flexible Encoding Infrastructure) is an extension
8748 to VA API. Define USE_H264_FEI_ENCODER based on
8749 fei header file and required structures availability.
8750 https://bugzilla.gnome.org/show_bug.cgi?id=785712
8751 https://bugzilla.gnome.org/show_bug.cgi?id=784667
8753 2017-08-28 17:34:50 -0700 Orestis Floros <orestisf1993@gmail.com>
8755 * gst/vaapi/gstvaapidecode.c:
8756 vaapidecode: force add h264 SVC profiles in caps
8757 When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
8759 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8760 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8762 2017-08-28 17:32:57 -0700 Orestis Floros <orestisf1993@gmail.com>
8764 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8765 libs: decoder: h264: decode SVC base layer only
8766 Drops non-base NALs when the base-only property is set to TRUE.
8767 This modifies the behavior for MVC streams with base-only too: All the
8768 non-base units are dropped before they are decoded instead of dropping
8769 the non-base frames.
8770 The relevant part from the H264 spec is:
8771 > Decoders that conform to one or more of the profiles specified in
8772 Annex A rather than the profiles specified in Annexes G or H shall
8773 ignore (remove from the bitstream and discard) the contents of all NAL
8774 units with nal_unit_type equal to 14, 15, or 20.
8775 To eliminate side effects from the offending units:
8776 - PPS's with a broken seq_parameter_set_id (referring to dropped subset
8778 - The NAL parsing is skipped and their flags are set to
8779 GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
8780 - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
8781 use them even if they are flagged to be skipped. Subset SPS's and slice
8782 extension units are not stored there either.
8783 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8784 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8786 2017-08-28 17:28:04 -0700 Orestis Floros <orestisf1993@gmail.com>
8788 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8789 libs: decoder: h264: check nalu validity in parser info finalize
8790 https://bugzilla.gnome.org/show_bug.cgi?id=732266
8791 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8793 2017-08-28 19:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8795 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8796 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8797 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
8798 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8799 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8800 libs: encoder: remove unused cast macro
8801 Remove internal macro to cast structure that are already declared
8804 2017-08-28 19:09:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8806 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8807 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8808 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
8809 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
8810 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
8811 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
8812 Revert "libs: encoders: remove unused cast macros"
8813 This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
8815 2017-08-28 18:32:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8817 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8818 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8819 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
8820 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
8821 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
8822 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
8823 libs: encoders: remove unused cast macros
8824 They are only used inside the code, where another macro is defined.
8825 Thus these exported macros have no use.
8827 2017-08-24 20:26:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8829 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8830 libs: decoder: h264: improve code-style
8831 https://bugzilla.gnome.org/show_bug.cgi?id=786173
8833 2017-08-25 16:22:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8835 * gst-libs/gst/vaapi/gstvaapicompat.h:
8836 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8837 libs: encoder: h264: handle deprecated enum
8838 In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
8839 instead VAEncPackedHeaderRawData should be used.
8840 This patch creates a compatibility symbol,
8841 VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
8843 https://bugzilla.gnome.org/show_bug.cgi?id=784398
8845 2017-08-25 16:07:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8847 * gst-libs/gst/vaapi/gstvaapiprofile.c:
8848 * gst-libs/gst/vaapi/gstvaapiutils.c:
8849 libs: guard deprecated symbols
8850 In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
8851 guards the H.264 baseline usage. Consider this commit as a
8852 continuation of commit e0e0a474
8853 https://bugzilla.gnome.org/show_bug.cgi?id=784398
8855 2017-08-17 12:54:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8859 * meson_options.txt:
8860 Revert "build: check for libva-2.0"
8861 This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
8862 https://bugzilla.gnome.org/show_bug.cgi?id=784398
8864 2017-08-17 12:44:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8866 * gst-libs/gst/vaapi/gstvaapicompat.h:
8867 * gst-libs/gst/vaapi/gstvaapicontext.c:
8868 * gst-libs/gst/vaapi/gstvaapiencoder.c:
8869 libs: macro to get a renamed value in VA-API 1.0
8870 In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
8871 renamed one member from roi_value_is_qp_delat to
8872 roi_value_is_qp_delta, which is the correct name.
8873 In order to keep back compatibility a macro has added to access this
8875 https://bugzilla.gnome.org/show_bug.cgi?id=784398
8877 2017-08-22 11:37:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8879 * gst/vaapi/gstvaapipluginbase.h:
8880 * gst/vaapi/gstvaapipluginutil.c:
8881 plugins: include main gstgl header
8882 Instead including particular gstgl header files in a header file
8883 that doesn't export a gstgl symbol, the main gstgl header file is
8884 included in gstvaapipluginutil.c where the symbols are used.
8885 https://bugzilla.gnome.org/show_bug.cgi?id=786597
8887 2017-08-18 18:00:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8889 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8890 libs: encoder: h264: fix enum namespace
8892 2017-08-17 12:26:12 +0100 Tim-Philipp Müller <tim@centricular.com>
8895 Automatic update of common submodule
8896 From 48a5d85 to 3f4aa96
8898 2017-08-17 11:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8900 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8901 libs: encoder: h264: remove spurious assignation
8903 An assigned value that is never used may represent unnecessary
8904 computation, an incorrect algorithm, or possibly the need for cleanup
8906 ip_period is assigned first to be rewritter inmediatly after. The
8907 first assignation is spurious.
8909 2017-08-15 17:36:51 +0900 Hyunjun Ko <zzoon@igalia.com>
8911 * gst/vaapi/gstvaapidecode.c:
8912 vaapidecode: fix mismatch of the return type
8913 https://bugzilla.gnome.org/show_bug.cgi?id=786307
8915 2017-08-10 13:34:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8917 * gst-libs/gst/vaapi/Makefile.am:
8918 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
8919 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
8920 * gst-libs/gst/vaapi/gstvaapiutils.h:
8921 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
8922 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
8923 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
8924 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
8925 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
8926 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
8927 * gst-libs/gst/vaapi/meson.build:
8928 libs: remove unused header
8929 Since libgstvaapi is not distributed, there is no need to check for
8930 private header inclusion. Thus removing it.
8931 https://bugzilla.gnome.org/show_bug.cgi?id=786119
8933 2017-08-10 13:27:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8935 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
8936 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
8937 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
8938 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
8939 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
8940 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
8941 libs: utils: move gstvaapisurface.h to private headers
8942 Since the utils don't expose API defined in gstvaapisource.h, it is
8943 moved to their private headers where they are used.
8944 https://bugzilla.gnome.org/show_bug.cgi?id=786119
8946 2017-08-10 13:26:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8948 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
8949 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
8950 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
8951 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
8952 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
8953 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
8954 libs: utils: remove va.h include in header
8955 And include gstvaapicompat.h in the C files, since the VA-API is not
8956 exposed in the headers.
8957 https://bugzilla.gnome.org/show_bug.cgi?id=786119
8959 2017-08-10 13:24:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8961 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8962 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8963 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
8964 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
8965 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8966 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8967 libs: encoder: remove va.h include
8968 Since it is already managed by gstvaapicompat.h
8969 https://bugzilla.gnome.org/show_bug.cgi?id=786119
8971 2017-08-10 13:11:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8973 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
8974 * gst-libs/gst/vaapi/gstvaapicompat.h:
8975 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
8976 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
8977 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
8978 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8979 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8980 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
8981 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
8982 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8983 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8984 * gst-libs/gst/vaapi/gstvaapifilter.c:
8985 * gst-libs/gst/vaapi/gstvaapiutils.c:
8987 build: consolidate the VA sub API includes
8988 Include all VA sub APIs headers in a single point (gstvaapicompat.h),
8989 since they are all already included in va.h after VA-API 0.38.
8990 https://bugzilla.gnome.org/show_bug.cgi?id=786119
8992 2017-08-10 13:09:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8996 build: check for va_vpp.h
8997 Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
8998 allow us to handle the inclusion of the header better.
8999 https://bugzilla.gnome.org/show_bug.cgi?id=786119
9001 2017-08-11 20:22:41 +0100 Tim-Philipp Müller <tim@centricular.com>
9004 meson: don't export symbols by default
9005 Only plugin entry points should be exported.
9007 2017-08-09 19:06:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9009 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9010 libs: decoder: h265: remove spurious code
9012 Logically dead code: The indicated dead code may have performed some
9013 action; that action will never occur.
9014 By using pointer arithmetic is impossible to get NULL.
9016 2017-08-08 18:52:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9018 * gst-libs/gst/vaapi/gstvaapicontext.c:
9019 libs: context: use attribs index instead pointers
9021 Out-of-bounds write. This could cause an immediate crash or incorrect
9023 Coverity basically found that it is possible to assign more than 4
9024 attribs in the array.
9025 In my opinion this was produced because code pattern used pointer
9026 arithmetic, which is not readable nor maintainable.
9027 This patch refactors config_create() to use an array index rather than
9028 pointer arithmetic. Also a run-time check for index size was added.
9030 2017-08-08 17:38:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9032 * gst/vaapi/gstvaapiencode_h264.c:
9033 vaapiencode: h264: remove spurious code
9035 An unsigned value can never be negative, so this test will always
9036 evaluate the same way.
9037 As len is guint32, there is no need to check it if it is equal or
9040 2017-08-08 17:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9042 * gst/vaapi/gstvaapidecode.c:
9043 vaapidecode: initialize variable
9045 The variable will contain an arbitrary value left from earlier
9047 Variable base_only is fetched from base-only property, and it may be
9048 not assigned. It needs to be initialized.
9050 2017-08-08 17:29:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9052 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9053 libs: windows: wayland: fail if cannot remove last frame
9055 If the function returns an error value, the error value may be
9056 mistaken for a normal value.
9057 If g_atomic_pointer_compare_and_exchange() fails because the frame is
9058 not the last one, the function fails. Thus, logging an info message.
9060 2017-08-08 17:21:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9062 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
9063 libs: utils: glx: check return value
9065 If the function returns an error value, the error value may be
9066 mistaken for a normal value.
9067 Function sscanf returns the number of assignations done. Validate this
9068 return value with the number of expected variables to match.
9070 2017-08-08 17:12:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9072 * gst-libs/gst/vaapi/gstvaapiobject.c:
9073 libs: vaapi: object: remove unrequired NULL check
9075 Dereference after null check: Either the check against null is
9076 unnecessary, or there may be a null pointer dereference.
9077 Variable klass has been validated as non-NULL several time before in
9078 gst_vaapi_object_new() function, so there is no need to check it
9081 2017-08-08 17:06:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9083 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9084 libs: encoder: h265: remove spurious assignation
9086 An assigned value that is never used may represent unnecessary
9087 computation, an incorrect algorithm, or possibly the need for cleanup
9089 ip_period is assigned first to be rewritter inmediatly after. The
9090 first assignation is spurious.
9092 2017-08-08 16:50:39 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9094 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9095 libs: encoder: h264: fix copy & paste error
9097 The copied code will not have its intended effect.
9098 This is a bug from commit cdaf15b2, where the intention is to
9099 initialize RefPicList1 while setting RefPicList0.
9101 2017-08-08 16:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9103 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9104 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9105 libs: encoder: h265: fix possible integer overflow
9107 Unintentional integer overflow. The expression's value may not be what
9108 the programmer intended, because the expression is evaluated using a
9109 narrow (i.e. few bits) integer type.
9110 Cast operator to guint64 before computation to avoid narrowing.
9113 2017-08-08 16:12:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9115 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
9116 libs: decoder: mpeg4: fail if return value is not OK
9118 An assigned value that is never used may represent unnecessary
9119 computation, an incorrect algorithm, or possibly the need for cleanup
9121 In the return value of decode_slice() or
9122 gst_mpeg4_parse_video_packet_header() are not success, thus fail
9123 decode_packet() function.
9125 2017-08-08 15:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9127 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9128 libs: decoder: h265: check for null
9130 Dereference after null check: Either the check against null is
9131 unnecessary, or there may be a null pointer dereference.
9132 While looking for hte lowest poc, according to rest of the code, the
9133 picture in the dbp (decoded picture buffer) might be NULL, thus we
9134 could check for a NULL picture before assigned as found.
9135 Also, split a comma operator because it is considered as a bad
9136 practice because it possible side effects.
9138 2017-08-08 15:38:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9140 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9141 libs: decoder: h265: untaint loop control variable
9143 Scalars (for example, integers) are not properly
9144 bounds-checked (sanitized) before being used as array or pointer
9145 indexes, loop boundaries, or function arguments are considered as
9147 In this case, num_nals were not checked before used as loop control.
9149 2017-08-08 13:46:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9151 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9152 libs: decoder: h264: remove unrequired NULL check
9154 Dereference after null check: Either the check against null is
9155 unnecessary, or there may be a null pointer dereference.
9156 In the original commit for fill_picture_gaps() (commit 5abd2b90) the
9157 prev_picture could be NULL, that's why the code did a null check. But,
9158 since commit 52adebe7, the previous reference frames are tracked, thus
9159 there is no need to check null anymore.
9161 2017-08-03 23:17:44 +0300 orestisf <orestisf1993@gmail.com>
9163 * gst/vaapi/gstvaapidecode.c:
9164 vaapidecode: fix gst_caps_new_simple call
9165 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9167 2017-07-25 22:25:10 +0300 orestisf <orestisf1993@gmail.com>
9169 * gst/vaapi/gstvaapidecode.c:
9170 vaapidecode: force add h264 MVC profiles in caps
9171 When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
9173 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9175 2017-07-25 22:54:30 +0300 orestisf <orestisf1993@gmail.com>
9177 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9178 libs: decoder: h264: decode MVC base view only
9179 If processed SPS has mvc profile and the configuration is set to
9180 base-only, the frame is drop.
9181 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9183 2017-07-25 22:06:56 +0300 orestisf <orestisf1993@gmail.com>
9185 * gst/vaapi/gstvaapidecode.c:
9186 * gst/vaapi/gstvaapidecode_props.c:
9187 vaapidecode: set h264 base-only to decoder
9188 Set the base-only value when property is set and the internal
9189 decoder is already instantiated or when the internal decoder
9191 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9193 2017-07-25 22:03:34 +0300 orestisf <orestisf1993@gmail.com>
9195 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9196 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9197 libs: decoder: h264: add setter for base-only mode
9198 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9200 2017-07-25 22:01:37 +0300 orestisf <orestisf1993@gmail.com>
9202 * gst/vaapi/gstvaapidecode_props.c:
9203 * gst/vaapi/gstvaapidecode_props.h:
9204 vaapidecode_props: h264: add base-only property
9205 https://bugzilla.gnome.org/show_bug.cgi?id=732265
9207 2017-08-01 11:11:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9209 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9210 libs: encoder: h264: missing property enum documentation
9212 2017-08-02 14:54:53 +0900 Hyunjun Ko <zzoon@igalia.com>
9214 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9215 libs: encoder: h264: add multi reference support
9216 Using num_ref_frames provided and the result of the Query
9217 VAConfigAttribEncMaxRefFrames, it determines the size of reference list
9218 and perform encoding with multi reference frames as the following:
9219 1\ The num_ref_frames is being considered as the number of
9220 reference picture list0
9221 2\ Encoder adds 1 reference frame more to the reference picture list1
9222 internally if b-frame encoding.
9223 3\ If num_ref_frames is bigger than the number of refrence frames
9224 supported in the driver, it will be lowered.
9225 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9227 2017-08-02 14:53:34 +0900 Hyunjun Ko <zzoon@igalia.com>
9229 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9230 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9231 libs: encoder: h264: add refs property
9232 Users can provide the number of reference frame by this property.
9233 The value of the property will be considered as the number of
9234 reference picture list0 and will add 1 reference frame more to the
9235 reference picture list1 internally if b-frame encoding.
9236 If the value provided is bigger than the number of refrence frames
9237 supported in the driver, it will be lowered.
9238 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9240 2017-07-28 15:27:20 +0900 Hyunjun Ko <zzoon@igalia.com>
9242 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9243 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9244 libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
9245 This function will query VAConfigAttribEncMaxRefFrames to get the
9246 maximum number of reference frames supported in the driver.
9247 This will be used for h264/h265 encoding.
9248 https://bugzilla.gnome.org/show_bug.cgi?id=783803
9250 2017-08-01 18:38:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9252 * gst/vaapi/gstvaapiencode_h265.c:
9253 vaapiencode: h265: compare an unsigned int if not zero
9254 An unsigned value can never be negative, so this test (greater than
9255 zero) will always evaluate the same way. Thus change it to just if
9258 2017-08-01 18:10:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9260 * gst/vaapi/gstvaapipluginbase.c:
9261 plugins: check gst_gl_ensure_element_data() return value
9262 Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
9263 the return value of gst_gl_ensure_element_data(). The result is a code
9266 2017-08-01 17:59:38 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9268 * gst/vaapi/gstvaapipluginutil.c:
9269 plugins: avoid dead code detection
9270 By using #elif macro, the static code analysis would stop to detect
9271 these lines as dead code. Also it is inforced the mutually exclusive
9274 2017-08-01 17:39:04 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9276 * gst/vaapi/gstvaapivideobufferpool.c:
9277 vaapivideobufferpool: don't shift by negative since it's undefined
9278 The function g_bit_nth_lsf() may return -1 if the request bit position
9279 is not avaible. Thus, this patch check if the return value is not -1
9280 in order to continue.
9282 2017-08-01 17:29:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9284 * gst/vaapi/gstvaapisink.c:
9285 vaapisink: fix memory leak
9287 2017-08-01 17:23:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9289 * gst/vaapi/gstvaapipostprocutil.c:
9290 vaapipostproc: fix memory leaks
9292 2017-07-27 10:54:00 +0000 Tomas Rataj <rataj28@gmail.com>
9294 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9295 libs: display: when appending formats change pointers to indexes
9296 Thus, it fixes an invalid read when YV12 or I420 are not supported by
9298 https://bugzilla.gnome.org/show_bug.cgi?id=785085
9300 2017-07-19 12:02:40 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9302 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9303 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9304 libs: encoder: h264: Add uncompliant mode reducing coded buffer size
9305 Added a new property "compliance-mode", which default is the normal
9306 strict compliant mode.
9307 The second mode, "restrict-buf-alloc", is to limit the coded buffer
9308 allocation size to improve performance in some specific Intel
9309 platforms (there is asignificant performance improvement in parallel
9310 encodings). Under this new mode, we use the MinCR field in A.3.1 for
9311 pre-calculating the coded-buffer size.
9312 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9314 2017-07-05 17:13:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9316 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9317 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9318 libs: utils_h264: Extend LevelLimit table with MinCR field
9319 Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
9321 https://bugzilla.gnome.org/show_bug.cgi?id=784590
9323 2017-07-11 17:29:13 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9325 * gst-libs/gst/vaapi/gstvaapiutils.c:
9326 libs: utils: libva 1.0 changed the logging
9327 The logging mechanism in libva has changed it's functions
9328 signatures. This patch updates that for libva versions >= 1.0
9329 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9331 2017-07-11 17:27:32 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9333 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9334 libs: decoder: h264: libva 1.0 deprecated baseline
9335 libva 1.0 deprecated H.264 baseline profile and FMO support
9337 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9339 2017-07-26 20:03:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9343 * meson_options.txt:
9344 build: check for libva-2.0
9345 Check for libva-2.0 since libva's developers decided to increase the
9346 library's version number.
9347 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9349 2017-07-11 16:55:26 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9353 build: blacklist only libva 0.99.0
9354 Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
9355 its API version to 1.0.0. Thus we have to blacklist only the MSDK's
9357 https://bugzilla.gnome.org/show_bug.cgi?id=784398
9359 2017-07-26 20:30:37 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9361 * gst-libs/gst/vaapi/meson.build:
9362 build: meson: remove gstvaapidisplaycache.c
9363 This is a missing bit of commit ec3e10f6
9365 2017-07-26 09:53:10 -0700 U. Artie Eoff <ullysses.a.eoff@intel.com>
9368 configure: do not break configure if gtk+-3.0 devel missing
9369 Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
9370 set USE_GTK=0 if gtk+-3.0 is not available.
9371 Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
9372 Author: Hyunjun Ko <zzoon@igalia.com>
9373 Date: Wed Jul 5 15:59:43 2017 +0900
9374 tests: elements: add testsuite of vaapi context
9375 ...configure fails if gtk+-3.0 development files are missing.
9376 The "with_gtk" option defaults to "check" in configure.ac
9377 which implies that if it is not explicitly requested then
9378 configure will only enable it if it's available on the system.
9379 However, the PKG_CHECK_MODULES rule that get's activated on
9380 "check" condition did not provide default when gtk+-3.0 devel
9381 packages are not found on the system. Thus, it resulted in
9383 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
9384 https://bugzilla.gnome.org/show_bug.cgi?id=785452
9386 2017-07-05 15:59:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9389 * tests/elements/Makefile.am:
9390 * tests/elements/test-vaapicontext.c:
9391 tests: elements: add testsuite of vaapi context
9392 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9393 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9395 2017-07-05 15:32:43 +0900 Hyunjun Ko <zzoon@igalia.com>
9397 * gst/vaapi/gstvaapisink.c:
9398 vaapisink: fail if surface display is different
9399 Replacing GstVaapiDisplay during rendering might be hiding problems
9400 at some cases, even though it's safe currently since we use cache
9402 Play safe by failing if this happens.
9403 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9405 2017-07-05 15:31:55 +0900 Hyunjun Ko <zzoon@igalia.com>
9407 * gst/vaapi/gstvaapivideocontext.c:
9408 * gst/vaapi/gstvaapivideocontext.h:
9409 videocontext: support "gst.vaapi.app.Display" context
9410 Through "gst.vaapi.app.Display" context, users can set their own VADisplay
9411 and native display of their backend.
9413 - display : pointer of VADisplay
9414 - x11-display : pointer of X11 display (Display *), if they're using.
9415 This patch creates GstVaapidisplayX11 if information provided through
9416 "gst.vaapi.app.Display"
9417 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9419 2017-07-05 14:33:38 +0900 Hyunjun Ko <zzoon@igalia.com>
9421 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9422 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
9423 libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
9424 Implements new API function so that users could create GstVaapiDisplay
9425 with their own VADisplay within a native display as backend.
9426 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9428 2017-07-05 14:32:35 +0900 Hyunjun Ko <zzoon@igalia.com>
9430 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9431 libs: display: pass display info when foreign display
9432 When creating a GstVaapiDisplay using a foreign VADisplay, and render
9433 with that display, it also requires native display of the backend.
9434 https://bugzilla.gnome.org/show_bug.cgi?id=766704
9436 2017-06-26 21:18:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9438 * gst-libs/gst/vaapi/Makefile.am:
9439 * gst-libs/gst/vaapi/gstvaapidisplay.c:
9440 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
9441 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
9442 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
9443 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9444 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
9445 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
9446 libs: display: remove cache
9447 Remove a bunch of code that handles the VADisplay cache, since the
9448 context sharing should be doing this correctly.
9449 https://bugzilla.gnome.org/show_bug.cgi?id=747946
9451 2017-07-13 10:56:18 +0900 Hyunjun Ko <zzoon@igalia.com>
9453 * tests/elements/Makefile.am:
9454 * tests/elements/test-vaapipostproc.c:
9455 tests: elements: add test for vaapipostproc
9456 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9458 2017-07-12 18:25:15 +0900 Hyunjun Ko <zzoon@igalia.com>
9460 * gst/vaapi/gstvaapipostproc.c:
9461 postproc: reconfigure when width or height changes
9462 https://bugzilla.gnome.org/show_bug.cgi?id=754885
9464 2017-07-17 18:53:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9466 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9467 libs: encoder: vp9: array terminated in zeros
9468 There is a crash when setting ref-pic-mode since the #GEnumValue
9469 array is not terminated with a structured with all memvers being
9471 https://bugzilla.gnome.org/show_bug.cgi?id=785032
9473 2017-07-13 16:43:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9475 * gst/vaapi/gstvaapiencode_h264.c:
9476 vaapiencode: h264: add plugin documentation
9477 Comment how the profile is set and other parameters.
9479 2017-05-26 15:19:00 +0000 Matt Staples <staples255@gmail.com>
9481 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9482 libs: decoder: h264: push frames as soon as possible
9483 Push frames downstream as soon as possible instead of waiting until
9484 they are ejected from the DPB.
9485 This patch makes the decoder not comply with the H.264 specification,
9486 but it is required for some video cameras.
9487 https://bugzilla.gnome.org/show_bug.cgi?id=762509
9488 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9490 2017-07-10 19:27:57 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9492 * gst/vaapi/gstvaapidecode_props.c:
9493 vaapidecode_props: h264: set low-latency in decoder
9494 Set the low-latency property if the H264 decoder is already
9495 instantiated, thus you could change the behavior in run-time.
9496 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9498 2017-07-06 20:00:15 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9500 * gst/vaapi/gstvaapidecode.c:
9501 vaapidecode: set h264 low latency to decoder
9502 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9504 2017-06-14 18:30:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9506 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9507 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9508 libs: decoder: h264: add getter/setter for low latency mode
9509 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9511 2017-06-14 18:31:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9513 * gst/vaapi/gstvaapidecode_props.c:
9514 * gst/vaapi/gstvaapidecode_props.h:
9515 vaapidecode_props: h264: add low latency property
9516 Adding support for private data.
9517 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9519 2017-06-14 18:23:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9521 * gst/vaapi/Makefile.am:
9522 * gst/vaapi/gstvaapidecode.c:
9523 * gst/vaapi/gstvaapidecode_props.c:
9524 * gst/vaapi/gstvaapidecode_props.h:
9525 * gst/vaapi/meson.build:
9526 vaapidecode_props: add skeleton for h264 decoder properties
9527 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9529 2017-06-14 17:07:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9531 * gst/vaapi/gstvaapidecode.c:
9532 vaapidecode: properties callback in decoders map
9533 https://bugzilla.gnome.org/show_bug.cgi?id=783588
9535 2017-07-07 12:01:59 +0100 Tim-Philipp Müller <tim@centricular.com>
9538 meson: find python3 via python3 module
9539 https://bugzilla.gnome.org/show_bug.cgi?id=783198
9541 2017-06-09 14:47:40 +0900 Hyunjun Ko <zzoon@igalia.com>
9543 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9544 libs: encoder: h264: submit sps in case of IDR picture
9545 If the picture is IDR, also submit a SPS header.
9546 This means when frame number reaches to keyframe-period or an force
9547 key unit event arrives, we insert SPS/PPS again.
9548 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9550 2017-06-09 14:47:16 +0900 Hyunjun Ko <zzoon@igalia.com>
9552 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9553 libs: encoder: h264: set the frame as IDR if forced key unit
9554 GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
9555 the `frame-lost` event in the case of streaming, such as RTP.
9556 In case of this event, it is needed to start new GOP rather than just
9558 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9560 2017-04-05 14:48:46 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9562 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9563 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9564 libs: encoder: h264: insert AU delimiter
9565 Insert an AUD as the first NAL of each encoded frame.
9566 Some applications require Access Unit Delimiter for decoding the
9568 The AU delimeter insertion is done only when the aud parameter is
9569 TRUE (by default is disabled). The reason of this it is because this
9570 header is only available from Intel Gen9 and the VA intel driver
9571 should be 1.8 or superior. Otherwise, the output will be corrupted.
9572 https://bugzilla.gnome.org/show_bug.cgi?id=776712
9573 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9575 2017-06-29 12:50:26 +0900 Hyunjun Ko <zzoon@igalia.com>
9577 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9578 libs: encoder: h264: initialize all elements of view_ids
9579 Currently when num_views is changed by multiview-mode on sink caps, it produces
9580 wrong MVC encoded stream since the array view_ids is not set properly according
9581 to changed num_views.
9582 So this patch initializes all of the array sequentially to handle this case.
9583 Side effect is not going to happen by this patch since this array is being
9584 handled by num_views.
9585 https://bugzilla.gnome.org/show_bug.cgi?id=784321
9587 2017-06-27 14:30:54 +0900 Hyunjun Ko <zzoon@igalia.com>
9589 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9590 Revert "encoder: h264: Use high profile by default"
9591 This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
9592 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9594 2017-06-27 16:03:37 +0900 Hyunjun Ko <zzoon@igalia.com>
9596 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9597 libs: encoder: h264: set profile via capsfilter
9598 Until now, the encoder ignored the profile in src caps and chose one
9599 according with the given parameters. But the encoder must honor the
9600 profile specifed in src caps.
9601 This patch do that, and if the encoder needs to choose the profile,
9602 it will do it by following these rules:
9603 1\ If given parameters are not compatible with given profile, the
9604 encoder will bail out with an error.
9605 2\ The encoder will choose the higher profile indicated in the
9607 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9609 2017-06-27 13:14:31 +0900 Hyunjun Ko <zzoon@igalia.com>
9611 * gst/vaapi/gstvaapiencode_h264.c:
9612 vaapiencode: h264: set profile to src caps
9613 So far vaapi encoder does not set profile to src caps. This patch makes it
9614 setting profile to src caps, which is determined by itself.
9615 In addition, if encoder chose different profile, which is not negotiated with
9616 downstream, we should set compatible profile to make negotiation working.
9617 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9619 2017-06-22 09:56:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9621 * gst/vaapi/gstvaapiencode_h264.c:
9622 * gst/vaapi/gstvaapiencode_h264.h:
9623 vaapiencode: h264: verify if requested profile is supported
9624 Check if the requested profile in source caps, is supported by the
9625 VA driver. If it is not, an info log message is send saying that
9626 another (compatible?) profile will be used.
9627 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9629 2017-06-21 21:49:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9631 * gst/vaapi/gstvaapiencode_h264.c:
9632 vaapiencode: h264: improve set_config() vmethod
9633 First check if downstream requests ANY caps. If so, byte-stream is
9634 used and the profile will be choose by the encoder. If dowstream
9635 requests EMPTY caps, the negotiation will fail.
9636 Lately, byte-stream and profile are looked in the allowed caps.
9637 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9639 2017-06-21 19:30:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9641 * gst/vaapi/gstvaapiencode_h264.c:
9642 vaapiencode: h264: check for avc in set_config()
9643 The check for avc stream format was done in the vaapi encoder's
9644 vmethod get_caps(), but that is wrong since it has to be check
9645 when encoder set_format().
9646 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9648 2017-06-29 12:49:24 +0900 Hyunjun Ko <zzoon@igalia.com>
9650 * gst/vaapi/gstvaapipostprocutil.c:
9651 vaapipostproc: set multivew-mode flags to src caps
9652 vaapipostproc didn't negotiate the proper multiview caps losing
9653 downstream information.
9654 This patch enables the playing of MVC encoded stream by setting
9655 the proper multiview mode/flags and views to src caps, according
9657 https://bugzilla.gnome.org/show_bug.cgi?id=784320
9659 2016-11-22 15:52:47 +0000 Julien Isorce <j.isorce@samsung.com>
9661 * gst/vaapi/gstvaapipostproc.c:
9662 vaapipostproc: add support for DMABuf caps feature
9663 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9664 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9666 2017-06-01 19:42:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9668 * gst/vaapi/gstvaapidecode.c:
9669 vaapidecode: add support for DMABuf caps feature
9670 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9671 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9673 2017-06-23 12:12:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9675 * gst/vaapi/gstvaapipluginbase.c:
9676 vaapipluginbase: force dmabuf allocator if DMABuf caps feature
9677 Instantiate all dmabuf allocator for src pad buffer pool if the
9678 src caps ask for memory:DMABuf feature.
9679 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9681 2016-11-22 23:26:05 +0000 Julien Isorce <j.isorce@samsung.com>
9683 * gst/vaapi/gstvaapipluginutil.c:
9684 * gst/vaapi/gstvaapipluginutil.h:
9685 vaapipluginutil: add support for DMABuf caps feature
9686 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9687 Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9688 Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9689 vaapipluginutil: add support for DMABuf caps feature
9691 2017-06-01 19:13:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9693 * gst/vaapi/gstvaapipluginbase.c:
9694 vaapipluginbase: dmabuf memory map trial for raw caps
9695 Only push dmabuf-based buffers with raw caps if gst_memory_map()
9696 succeeds. Otherwise, use the the vaapi surfaces allocator.
9697 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9698 https://bugzilla.gnome.org/show_bug.cgi?id=774649
9699 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9701 2016-06-08 19:11:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9703 * gst/vaapi/gstvaapivideomemory.c:
9704 * gst/vaapi/gstvaapivideomemory.h:
9705 vaapivideomemory: add gst_vaapi_dmabuf_can_map()
9706 This new method checks the specified allocator can create GstMemory that can
9708 https://bugzilla.gnome.org/show_bug.cgi?id=755072
9710 2017-06-23 17:33:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9712 * gst/vaapi/gstvaapivideobufferpool.c:
9713 vaapivideobufferpool: fix regression with video metas
9714 There is another regression with 7a206923 when setting the video
9715 info for the video meta, it should be the one from the image's
9716 allocator rather from the allocation caps.
9718 gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
9719 ! tee ! videoconvert ! videoscale \
9720 ! video/x-raw, width=1920, height=1080 ! xvimagesink
9722 2017-06-23 14:38:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9724 * gst/vaapi/gstvaapipluginbase.c:
9725 * gst/vaapi/gstvaapivideobufferpool.c:
9726 plugins: update buffer size with the one reported by allocator
9727 There is a regression in 7a206923, since the buffer pool ditches all
9728 the buffers generated by them because the pool config size is
9729 different of the buffer's size.
9731 gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
9732 ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink \
9733 --gst-debug=GST_PERFORMANCE:5
9734 The allocator may update the buffer size according to the VA surface
9735 properties. In order to do this, the video info is modified when the
9736 allocator is created, which reports through the allocation info the
9737 updated size, and set it to the pool config.
9739 2017-06-14 21:40:33 +0900 Hyunjun Ko <zzoon@igalia.com>
9741 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9742 libs: decoder: h264: initialize active_sps/pps in reset
9743 Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
9744 they introduced regression in seek.
9745 Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
9746 But since the commits landed, it doesn't drop P-frame and does try to
9747 decode it continuously because active_sps is still alive. See ensure_sps function.
9748 But there are prev_frames and prev_ref_frames reset already, then it
9750 So it's necessary to reset active_sps/pps also in reset method.
9751 https://bugzilla.gnome.org/show_bug.cgi?id=783726
9753 2017-06-15 13:24:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9755 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9756 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9757 libs: encoder: fix compilation with old versions of libva
9758 There are some symbols that are not used when compiling with old
9759 version of libva and those generates a compilation error.
9760 Original-patch-by: Matt Staples <staples255@gmail.com>
9762 2017-06-09 14:02:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9764 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9765 libs: encoder: Fix the quality level clamping
9766 Change the hard-coded range of quality-level from {1-8} to {1-7},
9767 since it is the range Intel Open source driver supports.
9768 Also perform the range clamping only if the user provided
9769 quality-level is greater than the max-range suppored by the driver,
9770 because there could be non-intel drivers giving lower value than
9771 the hard-coded max value 7.
9772 https://bugzilla.gnome.org/show_bug.cgi?id=783567
9774 2017-04-06 19:35:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9776 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9777 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9778 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9779 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9780 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9781 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9782 libs: encoder: log out the name of the profile
9783 Instead of printing a number, it is more readable to log out, in
9784 case of error, the name of the failing profile.
9786 2017-05-31 12:36:17 +0900 Hyunjun Ko <zzoon@igalia.com>
9788 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9789 libs: encoder: h264: changes raw number of profile to macro name of its
9790 Changes raw number of profile to macro name of its to improve readability.
9791 https://bugzilla.gnome.org/show_bug.cgi?id=757941
9793 2017-06-09 17:00:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9795 * gst/vaapi/gstvaapivideobufferpool.c:
9796 vaapivideobufferpool: remove allocation_vinfo private attribute
9797 There is no need to keep this attribute internally since it is
9798 already managed by the allocator.
9799 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9801 2017-06-09 15:02:08 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9803 * gst/vaapi/gstvaapivideobufferpool.c:
9804 vaapivideobufferpool: refactor set_config()
9805 Refactor the set_config() virtual method considering a cleaner
9806 approach to allocator instanciation, if it it not set or if it is
9807 not valid for the pool.
9808 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9810 2017-06-09 13:05:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9812 * gst/vaapi/gstvaapipluginbase.c:
9813 * gst/vaapi/gstvaapivideobufferpool.c:
9814 * gst/vaapi/gstvaapivideomemory.c:
9815 * gst/vaapi/gstvaapivideomemory.h:
9816 plugins: distinguish allocation and negotiation caps
9817 The vaapi video decoders might have different allocation caps from
9818 the negotiation caps, thus the GstVideoMeta shall use the negotiation
9819 caps, not the allocation caps.
9820 This was done before reusing gst_allocator_get_vaapi_video_info(),
9821 storing there the negotiation caps if they differ from the allocation
9822 ones, but this strategy felt short when the allocator had to be reset
9823 in the vaapi buffer pool, since we need both.
9824 This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
9825 gst_allocator_get_vaapi_negotiated_video_info() to store the
9826 negotiated video info in the allocator, and distinguish it from
9827 the allocation video info.
9828 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9830 2017-06-08 19:32:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9832 * gst/vaapi/gstvaapivideomemory.c:
9833 * gst/vaapi/gstvaapivideomemory.h:
9834 vaapivideomemory: rename qdata quarks and ids
9835 Also the parameter names were renamed to reflect their origin
9837 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9839 2017-06-08 16:05:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9841 * gst/vaapi/gstvaapivideobufferpool.c:
9842 vaapivideobufferpool: rename local variables
9843 Renamed local video info structure names in set_config() vitual
9844 method. The purpose of their renaming is to clarify the origin
9845 of those structures, whether come from passed caps parameter
9846 (new_allocation_vinfo) or from the configured allocator
9848 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9850 2017-06-08 15:49:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9852 * gst/vaapi/gstvaapivideobufferpool.c:
9853 vaapivideobufferpool: rename video info structures
9854 Renamed private GstVideoInfo structure video_info to allocation_vinfo
9855 and alloc_info to negotiated_vinfo.
9856 The purpose of these renaming is to clarify the origin and purpose of
9857 these private variables:
9858 video_info (now allocation_vinfo) comes from the bufferpool
9859 configuration. It describes the physical video resolution to be
9860 allocated by the allocator, which may be different from the
9862 alloc_info (now vmeta_vinfo) comes from the negotiated caps in
9863 the pipeline. It represents how the frame is going to be mapped
9864 using the video meta.
9865 In Intel's VA-API backend, the allocation_vinfo resolution is
9866 bigger than the negotiated_info.
9867 https://bugzilla.gnome.org/show_bug.cgi?id=783599
9869 2017-06-08 12:51:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9871 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9872 libs: encoder: set framerate if bigger than 0/1
9873 Just set the framerate parameter if the framerate numerator and
9874 denominator are bigger than zero.
9875 Otherwise, in Intel Gen6 driver, a warning is raised disabling the
9877 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
9878 https://bugzilla.gnome.org/show_bug.cgi?id=783532
9880 2017-06-07 12:32:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9882 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9883 libs: encoder: bitrate target percentage calculation
9884 If the rate control is set to Constant Bit Rate (CBR) the target
9885 percentage is 100%, otherwise is 70%
9887 2017-06-07 12:25:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9889 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9890 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9891 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9892 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9893 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9894 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9895 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
9896 Centralize the common configuration for the Rate Control parameter,
9897 thus can be overloaded per each specific encoder.
9899 2017-06-07 11:10:49 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9901 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9902 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9903 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9904 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9905 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9906 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9907 libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
9908 Since the framerate VA parameter is calculated equally among all the
9909 encoders, it is better to handle it in the base encoder class.
9911 2016-08-09 15:53:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9913 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9914 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9915 libs: encoder: vp9: Adds CBR and VBR Encoding support
9916 https://bugzilla.gnome.org/show_bug.cgi?id=766832
9917 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
9918 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9920 2017-06-01 12:12:26 +0900 Hyunjun Ko <zzoon@igalia.com>
9922 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9923 libs: encoder: vp8: Adds VBR Encoding support
9924 https://bugzilla.gnome.org/show_bug.cgi?id=778732
9926 2017-06-01 12:11:12 +0900 Hyunjun Ko <zzoon@igalia.com>
9928 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9929 libs: encoder: h265: Adds VBR Encoding support
9930 Enables Variable BitRate mode, which does set FrameRate and RateControl
9932 https://bugzilla.gnome.org/show_bug.cgi?id=778732
9934 2017-06-02 13:50:05 +0900 Hyunjun Ko <zzoon@igalia.com>
9936 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9937 libs: encoder: Describes more detail about the bitrate property
9938 https://bugzilla.gnome.org/show_bug.cgi?id=778732
9940 2017-06-05 20:44:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9942 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9943 libs: encoder: h265: add rate control parameter
9944 https://bugzilla.gnome.org/show_bug.cgi?id=783449
9946 2017-06-05 20:33:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9948 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9949 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9950 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9951 libs: encoder: h264,h265,mpeg2: add framerate parameter
9952 https://bugzilla.gnome.org/show_bug.cgi?id=783449
9954 2017-06-05 20:30:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9956 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9957 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9958 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9959 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9960 libs: encoder: vp8,h264,h265,mpeg2: set misc param once
9961 Instead of recalculating the miscellaneous buffer parameters for
9962 every buffer, it is only done once, when the encoder is configured.
9963 And for every buffer, the same structures are just copied.
9964 https://bugzilla.gnome.org/show_bug.cgi?id=783449
9966 2017-06-05 17:31:10 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9968 * gst-libs/gst/vaapi/gstvaapiencoder.c:
9969 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9970 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9971 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9972 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9973 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9974 libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
9975 This is patch pretends to decouple the assignation of the values
9976 in the parameter structures and the VA buffer's parameters setting.
9977 It may lead to some issues since HRD, framerate or controlrate may
9978 not be handled by the specific encoder, but they are set in
9979 the VA buffer's parameters.
9980 I leave as it because this patch is just a transitional patch.
9981 https://bugzilla.gnome.org/show_bug.cgi?id=783449
9983 2017-06-05 16:34:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9985 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9986 libs: encoder: vp8: fix frame rate calculation
9987 According to the VA documentation:
9988 The framerate is specified as a number of frames per second,
9989 as a fraction. The denominator of the fraction is given in
9990 the top half (the high two bytes) of the framerate field, and
9991 the numerator is given in the bottom half (the low two bytes).
9992 For example, if framerate is set to (100 << 16 | 750), this is
9993 750 / 100, hence 7.5fps.
9994 If the denominator is zero (the high two bytes are both zero)
9995 then it takes the value one instead, so the framerate is just
9996 the integer in the low 2 bytes.
9997 This patch fixes the the framerate calculation in vp8 encoder
9999 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10001 2017-06-02 19:46:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10003 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10004 libs: encoder: vp8: refactor FrameRate parameter
10005 Move frame-rate parameter from ensure_misc_params() to
10006 ensure_contro_rate_param() since it only has meaning when the
10007 control rate is either VBR or CBR.
10008 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10010 2017-06-02 19:33:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10012 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10013 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10014 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10015 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10016 libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
10017 Move the Hypothetical Reference Decoder (HRD) parameter, from
10018 ensure_misc_params() to ensure_control_rate_params(), since it
10019 only shall be defined when the control rate is either VBR or CBR.
10020 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10022 2017-06-02 17:21:25 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10024 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10025 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10026 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10027 libs: encoder: h264,vp8,mpeg2: refactor control rate
10028 Instead of filling the control rate param in ensure_misc_params(),
10029 this patch refactor it out, as a first step to merge the same code
10030 for all the encoders.
10031 https://bugzilla.gnome.org/show_bug.cgi?id=783449
10033 2017-06-02 16:28:30 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10035 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10036 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10037 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10038 libs: encoder: h264, h265, mpeg2: remove assert
10039 Remove spurious asserts for misc parameters. If they cannot be
10040 allocated, FALSE is already returned.
10042 2017-06-05 18:19:05 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10044 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10045 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10046 libs: encoder: use VA quality level structure
10047 Instead of using a proxy to story the buffer quality level, the
10048 encoder now uses the native VA structure, which is copied to the
10049 dynamically allocated VAEncMiscParameterBuffer.
10050 This approach is computationally less expensive.
10052 2017-05-26 11:10:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10054 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10055 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10056 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10057 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10058 libs: standardize the FIXME comment
10059 This is a trivial patch that makes homogeneous the FIXME tag in
10061 For more info about these comment style:
10062 http://wiki.c2.com/?FixmeComment
10064 2017-05-22 17:20:45 +0200 Hyunjun Ko <zzoon@igalia.com>
10066 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10067 libs: encoder: vp8: set quality level regardless of rate control mode
10068 https://bugzilla.gnome.org/show_bug.cgi?id=782957
10070 2017-05-15 18:38:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10072 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10073 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10074 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10075 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10076 libs: encoder: check for maximum number of slices
10077 Right now, H264 and HEVC can set as a property the number of slices to
10078 process. But each driver can set a maximum number of slices, depending
10079 on the supported profile & entry point.
10080 This patch verifies the current num_slices to process against the maximum
10081 permitted by the driver and the media size.
10082 https://bugzilla.gnome.org/show_bug.cgi?id=780955
10084 2017-05-15 18:36:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10086 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10087 libs: utils: mark functions as internals
10088 The functions in this header are internal to the library.
10090 2017-05-15 18:35:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10092 * gst-libs/gst/vaapi/gstvaapicontext.h:
10093 libs: context: add missing documentation
10094 Document the region-of-interest configuration variables.
10096 2017-05-12 18:46:50 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10098 * tests/elements/test-vaapisink.c:
10099 tests: elements: vaapisink: handle nav events
10100 The test app can now handle navigation events to rotate the
10103 2017-05-12 18:17:55 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10105 * tests/elements/test-vaapisink.c:
10106 tests: elements: clean up vaapisink test
10107 - Use gst_element_send_event() instead of gst_pad_push_event()
10108 - don't zero App structure
10109 - check for pipeline parsing error
10110 - only get vaapisink for property set
10112 2017-05-12 13:08:30 +0900 Hyunjun Ko <zzoon@igalia.com>
10114 * gst/vaapi/gstvaapisink.c:
10115 vaapisink: keep handle_events flag except that if user want to set
10116 When state of vaapisink is changed from PLAYING to NULL, the handle_events
10117 flag is set to FALSE, and never recovered, and then event thread is never
10119 So we should allow to set the flag only when users try it.
10120 https://bugzilla.gnome.org/show_bug.cgi?id=782543
10122 2017-05-12 13:06:24 +0900 Hyunjun Ko <zzoon@igalia.com>
10124 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10125 libs: window: x11: fix src rect info when using vpp
10126 Since we started using VPP in VaapiWindowX11, we need to care about
10127 the case that src rect and window's size are different.
10128 So, once VPP has converted to other format, we should honor the
10129 size of the VPP's surface as source rect. Otherwise, it is cropped
10130 according the previous size of the source rect.
10131 https://bugzilla.gnome.org/show_bug.cgi?id=782542
10133 2017-04-28 15:20:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10135 * gst/vaapi/gstvaapipluginutil.c:
10136 plugins: remove par from caps negotiation
10137 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10139 2017-03-30 17:57:42 +0900 Hyunjun Ko <zzoon@igalia.com>
10141 * tests/elements/Makefile.am:
10142 * tests/elements/test-roi.c:
10143 tests: elements: add an example for ROI
10144 This implements a pipleint to recognize difference between ROI and non-ROI.
10145 See comments in this code in detail.
10146 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10147 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10149 2017-03-30 17:54:20 +0900 Hyunjun Ko <zzoon@igalia.com>
10151 * gst/vaapi/gstvaapiencode.c:
10152 * gst/vaapi/gstvaapiencode_h264.c:
10153 vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
10154 Handles new custom event GstVaapiEncoderRegionOfInterest
10155 to enable/disable a ROI region.
10156 Writes a way to use new event to document.
10157 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10158 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10160 2017-02-23 18:53:18 +0900 Hyunjun Ko <zzoon@igalia.com>
10162 * tests/simple-encoder.c:
10163 tests: simple-encoder: add an option to set ROI
10164 $ simple-encoder -r inputfile.y4m
10165 And you'll got an output file in H264 with two regions of interest.
10166 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10167 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10169 2017-02-23 18:52:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10171 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10172 libs: encoder: h264: set ROI params during encoding
10173 Set ROI params during encoding each frame, which are set via
10174 gst_vaapi_encoder_add_roi ()
10175 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10176 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10178 2017-03-28 17:41:37 +0900 Hyunjun Ko <zzoon@igalia.com>
10180 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10181 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10182 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10183 libs: encoder: add api gst_vaapi_encoder_add/del_roi
10184 Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
10185 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10187 2017-02-23 17:57:07 +0900 Hyunjun Ko <zzoon@igalia.com>
10189 * gst-libs/gst/vaapi/gstvaapicontext.c:
10190 * gst-libs/gst/vaapi/gstvaapicontext.h:
10191 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10192 libs: encoder/context: query region of interest support
10193 Queries if the driver supports "Region of Interest" (ROI) during the config
10195 This attribute conveys whether the driver supports region-of-interest (ROI)
10196 encoding, based on user provided ROI rectangles. The attribute value is
10197 partitioned into fields as defined in the VAConfigAttribValEncROI union.
10198 If ROI encoding is supported, the ROI information is passed to the driver
10199 using VAEncMiscParameterTypeROI.
10200 https://bugzilla.gnome.org/show_bug.cgi?id=768248
10201 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10203 2017-05-12 11:11:48 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10205 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10206 libs: encoder: fix a comment
10208 2017-05-11 12:23:28 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10210 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10211 libs: encoder: guard quality level configuration
10212 The quality level appeared in VA-API 0.36. So let's guard its
10215 2017-04-19 13:04:44 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10217 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10218 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10219 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10220 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10221 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10222 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10223 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10224 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10225 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10226 encoders: add quality level tuning
10227 This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
10228 in gstreamer-vaapi encoders:
10229 The encoding quality could be set through this structure, if the
10230 implementation supports multiple quality levels. The quality level set
10231 through this structure is persistent over the entire coded sequence, or
10232 until a new structure is being sent. The quality level range can be queried
10233 through the VAConfigAttribEncQualityRange attribute. A lower value means
10234 higher quality, and a value of 1 represents the highest quality. The quality
10235 level setting is used as a trade-off between quality and speed/power
10236 consumption, with higher quality corresponds to lower speed and higher power
10238 The quality level is set by the element's parameter "quality-level" with a
10239 hard-coded range of 1 to 8.
10240 Later, when the encoder is configured in run time, just before start
10241 processing, the quality level is scaled to the codec range. If
10242 VAConfigAttribEncQualityRange is not available in the used VA backend, then
10243 the quality level is set to zero, which means "disabled".
10244 All the available codecs now process this parameter if it is available.
10245 https://bugzilla.gnome.org/show_bug.cgi?id=778733
10246 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10248 2017-05-04 18:59:31 +0300 Sebastian Dröge <sebastian@centricular.com>
10252 Back to development
10254 === release 1.12.0 ===
10256 2017-05-04 15:46:03 +0300 Sebastian Dröge <sebastian@centricular.com>
10261 * gstreamer-vaapi.doap:
10265 2017-05-04 11:49:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10267 * gst/vaapi/gstvaapidecodebin.c:
10268 Revert "vaapidecodebin: fix element's classification"
10269 This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
10271 2017-04-27 22:55:27 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10275 build: Require libva < 0.99.0
10276 libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
10277 fail to configure instead of failing late in the build.
10278 This libva is bundled in msdk[1] and it is ahead in time with
10279 respect the official and open source libva[2]. GStreamer-VAAPI
10280 only supports the latter for now.
10281 1. https://software.intel.com/en-us/media-sdk/download
10282 2. https://github.com/01org/libva/
10283 https://bugzilla.gnome.org/show_bug.cgi?id=781866
10285 2017-05-02 14:08:54 +0200 Victor Toso <me@victortoso.com>
10287 * gst/vaapi/gstvaapidecodebin.c:
10288 vaapidecodebin: fix element's classification
10289 This bin should have similar classification as decodebin which is
10290 "Generic/Bin/Decoder" otherwise it will appear wrongly as video
10292 Signed-off-by: Victor Toso <victortoso@redhat.com>
10293 https://bugzilla.gnome.org/show_bug.cgi?id=782063
10295 === release 1.11.91 ===
10297 2017-04-27 17:49:52 +0300 Sebastian Dröge <sebastian@centricular.com>
10302 * gstreamer-vaapi.doap:
10306 2017-04-27 13:08:56 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10308 * gst/vaapi/gstvaapipluginutil.c:
10309 Revert "plugins: reject pixel-aspect-ratio with value 0/1"
10310 This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
10312 2017-04-27 12:43:54 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10314 * gst/vaapi/gstvaapipluginutil.c:
10315 plugins: reject pixel-aspect-ratio with value 0/1
10316 Do not negotiate a pixel-aspect-ratio of 0/1.
10317 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10319 2017-04-26 15:48:01 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10321 * gst/vaapi/gstvaapipostprocutil.c:
10322 * gst/vaapi/gstvaapisink.c:
10323 plugins: handle pixel-aspect-ratio with value 0/1
10324 When downstream negotiates a pixel-aspect-ratio of 0/1, the
10325 calculations for resizing and formatting in vaapipostproc and
10326 vaapisink, respectively, failed, and thus the pipeline.
10327 This patch handles this situation by converting p-a-r of 0/1 to
10328 1/1. This is how other sinks, such as glimagesink, work.
10329 https://bugzilla.gnome.org/show_bug.cgi?id=781759
10331 2017-04-27 14:42:55 +0900 Hyunjun Ko <zzoon@igalia.com>
10333 * gst/vaapi/gstvaapivideobufferpool.c:
10334 vaapivideobufferpool: fix leak of created allocator
10335 Since it's created by itself, it should be unref-counted
10336 after gst_buffer_pool_config_set_allocator call. Afterwards,
10337 this allocator will be ref-counted again when assigning to priv->allocator.
10338 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10340 2017-04-21 19:07:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10342 * gst/vaapi/gstvaapivideobufferpool.c:
10343 vaapivideobufferpool: create or reconfig allocator
10344 Sometimes a video decoder could set different buffer pool
10345 configurations, because their frame size changes. In this case we
10346 did not reconfigure the allocator.
10347 This patch enables this use case, creating a new allocator inside
10348 the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
10349 If so, it is just reconfigured, since it doesn't have a surface pool.
10350 https://bugzilla.gnome.org/show_bug.cgi?id=781577
10352 2017-04-25 12:58:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10354 * tests/elements/Makefile.am:
10355 test: elements: fix compilation flags
10356 This issue was spotten on bug #766704
10357 Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10359 2017-04-25 16:23:08 +0900 Hyunjun Ko <zzoon@igalia.com>
10361 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10362 libs: windows: wayland: fix leak if failure of sync
10363 Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
10364 during destruction.
10365 In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
10366 This surface is not attached to anything at this moment, so we should release
10368 https://bugzilla.gnome.org/show_bug.cgi?id=781695
10370 2017-04-24 20:30:30 +0100 Tim-Philipp Müller <tim@centricular.com>
10373 Automatic update of common submodule
10374 From 60aeef6 to 48a5d85
10376 2017-04-21 15:30:09 +0200 Hyunjun Ko <zzoon@igalia.com>
10378 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10379 libs: window: wayland: mark frames as done
10380 When the frame listener callbacks 'done', the number of pending
10381 frames are decreased. Nonetheless, there might be occasions where
10382 the buffer listener callbacks 'release', without calling previously
10383 frame's 'done'. This leads to problem with
10384 gst_vaapi_window_wayland_sync() operation.
10385 This patch marks as done those frames which were callbacked, but if
10386 the buffer callbacks 'release' and associated frame is not marked
10387 as 'done' it is so, thus the number of pending frames keeps correct.
10388 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10389 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10391 2017-04-21 14:07:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10393 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10394 libs: window: wayland: don't sync at destroy()
10395 Don't call gst_vaapi_window_wayland_sync() when destroying the
10396 wayland window instance, since it might lead to a lock at
10397 gst_poll_wait() when more than one instances of vaapisink are
10398 rendering in the same pipeline, this is because they share the
10400 Since now all the frames are freed we don't need to freed the
10401 private last_frame, since its address is invalid now.
10402 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10403 Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10405 2017-04-19 10:37:19 +0900 Hyunjun Ko <zzoon@igalia.com>
10407 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10408 libs: window: wayland: null buffer at destroy()
10409 Fix leakage of the last wl buffer.
10410 VAAPI wayland sink needs to send a null buffer while destruction,
10411 it assures that all the wl buffers are released. Otherwise, the last
10412 buffer's callback might be not called, which leads to leak of
10414 This was inspired by gstwaylandsink.
10415 https://bugzilla.gnome.org/show_bug.cgi?id=774029
10416 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10418 2016-10-30 10:43:49 +0900 Jagyum Koo <koojagyum@gmail.com>
10420 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10421 libs: window: wayland: rt event queue at destroy()
10422 The proxy object of wl_buffer for the last frame remains in the
10423 wl_map. Even though we call wl_buffer_destroy() in
10424 frame_release_callback(), the proxy object remains without being
10425 removed, since proxy object is deleted when wayland server sees the
10426 delete request and sends 'delete_id' event.
10427 We need to call roundtrip before destroying event_queue so that the
10428 proxy object is removed. Otherwise, it would be mess up as receiving
10429 'delete_id' event from previous play, when playing in the next
10430 va/wayland window with the same wl_display connection.
10431 https://bugzilla.gnome.org/show_bug.cgi?id=773689
10432 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10434 2017-04-20 20:30:52 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10436 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10437 libs: window: wayland: cancel read at poll message
10438 Always call wl_display_cancel_read() when an errno is set, but
10439 different to EAGAIN or EINTR.
10440 https://bugzilla.gnome.org/show_bug.cgi?id=780442
10442 2017-04-21 18:05:48 +0900 Hyunjun Ko <zzoon@igalia.com>
10444 * gst/vaapi/gstvaapidecodebin.c:
10445 * gst/vaapi/gstvaapidecodebin.h:
10446 vaapidecodebin: skips configuration once it's done
10447 Skips configuration of creation of vpp/capsfilter and link them once it's done.
10448 Otherwise, it always fails when it's trying to re-start playback.
10449 https://bugzilla.gnome.org/show_bug.cgi?id=781573
10451 2017-04-20 18:44:41 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10453 * gst/vaapi/gstvaapipostprocutil.c:
10454 vaapipostproc: fixes for memory leaks
10455 The use of gst_vaapi_value_set_format() and gst_structure_*_value()
10456 requires to clear the used GValue to avoid a memory leak.
10458 2016-12-08 18:51:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10460 * gst/vaapi/gstvaapipluginbase.c:
10461 * gst/vaapi/gstvaapipluginbase.h:
10462 plugins: enable direct rendering with envvar
10463 Direct rendering (use vaDeriveImage rather than vaPutImage) has better
10464 performance in some Intel platforms (Haswell, for example) but in others
10465 (Skylake) is the opposite.
10466 In order to have some control, the patch enables the direct rendering
10467 through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
10468 Also it seems to generating some problems with gallium/radeon backend.
10470 https://bugzilla.gnome.org/show_bug.cgi?id=775848
10472 2017-04-08 02:05:21 +1000 Jan Schmidt <jan@centricular.com>
10474 * gst/vaapi/gstvaapidecode.c:
10475 vaapidecode: Don't renegotiate on every flush
10476 If caps don't actually change, don't update the
10477 decoder and don't set the do_renego flag forcing
10478 downstream renegotiation
10479 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10481 2017-04-08 01:21:23 +1000 Jan Schmidt <jan@centricular.com>
10483 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10484 h264 decoder: Implement reset() for faster flush
10485 Implement a custom reset() function for faster flushes
10486 that just clear the reference pictures but don't reallocate
10487 the DPB or clear out SPS/PPS
10488 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10490 2017-04-05 17:24:20 +1000 Jan Schmidt <jan@centricular.com>
10492 * gst-libs/gst/vaapi/gstvaapidecoder.c:
10493 * gst-libs/gst/vaapi/gstvaapidecoder.h:
10494 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10495 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10496 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10497 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
10498 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
10499 * gst/vaapi/gstvaapidecode.c:
10500 Implement decoder reset on flush, rather than recreating
10501 Clear decoders out on a flush but keep the same instance,
10502 rather than completely recreating them. That avoids
10503 unecessarily freeing and recreating surface pools
10504 and contexts, which can be quite expensive
10505 https://bugzilla.gnome.org/show_bug.cgi?id=781142
10507 2017-04-11 18:50:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10509 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10510 libs: window: don't add an unused function
10511 The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
10512 a function that is never used, thus when compiling we might see
10513 this warning (clang):
10514 gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
10515 GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
10517 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10519 2017-04-11 18:22:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10521 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10522 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10523 libs: window: remove surface_format member
10524 Since we always convert to NV12, there is no need to keep a
10525 variable for that. Let us hard code it.
10526 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10528 2017-04-10 17:23:26 +0900 Hyunjun Ko <zzoon@igalia.com>
10530 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10531 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10532 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10533 libs: window: x11/wayland: use new api for conversion
10534 Since gst_vaapi_window_vpp_convert_internal is created,
10535 GstVaapiWindowX11/Wayland can use it for conversion.
10536 Note that once it chooses to use vpp, it's going to use vpp
10537 until the session is finished.
10538 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10540 2017-04-10 11:41:29 +0900 Hyunjun Ko <zzoon@igalia.com>
10542 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10543 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10544 libs: window: add gst_vaapi_window_vpp_convert_internal()
10545 If a backend doesn't support specific format, we can use vpp for conversion
10546 and make it playing.
10547 This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
10548 so that GstVaapiWindowX11 could use it.
10549 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10551 2017-04-03 16:45:36 +0900 Hyunjun Ko <zzoon@igalia.com>
10553 * gst-libs/gst/vaapi/gstvaapiwindow.c:
10554 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10555 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10556 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10557 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10558 libs: window: x11/wayland: chaining up to GstVaapiWindow
10559 Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
10560 This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
10561 https://bugzilla.gnome.org/show_bug.cgi?id=759533
10563 2017-04-05 11:19:15 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10565 * gst/vaapi/gstvaapipluginutil.c:
10566 plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
10567 When these definitions are false, they are undef in the
10568 preprocessor, not a defined value of 0. When they are unset the
10569 compile fails with:
10570 'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
10571 https://bugzilla.gnome.org/show_bug.cgi?id=780948
10573 2017-04-10 23:51:06 +0100 Tim-Philipp Müller <tim@centricular.com>
10576 Automatic update of common submodule
10577 From 39ac2f5 to 60aeef6
10579 === release 1.11.90 ===
10581 2017-04-07 16:36:21 +0300 Sebastian Dröge <sebastian@centricular.com>
10586 * gstreamer-vaapi.doap:
10590 2017-04-03 14:52:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10592 * gst/vaapi/gstvaapiencode_h265.c:
10593 vaapiencode: h265: add main-10 in caps template
10594 This patch adds h265's main-10 profile in encoder src caps template.
10595 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10597 2017-04-03 15:34:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10599 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10600 libs: encoder: h265: chroma and luma with format
10601 If the profile is main-10 the bit_depth_luma_minus8, in the sequence
10602 parameter buffer, shall be the color format bit depth minus 8, 10-8
10603 which is 2. Also for bit_depth_chroma_minus8.
10604 This patch gets the negotiated sink caps format and queries its
10605 luma's depth and uses that value to fill the mentioned parameters.
10606 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10608 2017-03-29 19:20:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10610 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10611 libs: encoder: admit YUV420_10BPP as valid chroma
10612 Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
10614 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10616 2017-03-29 19:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10618 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10619 libs: encoder: h265: ensures profile given format
10620 Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
10621 configured color format is P010_10LE.
10622 Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
10623 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10625 2017-04-06 17:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10627 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10628 libs: encode: merge all possible surface formats
10629 When the function gst_vaapi_encoder_get_surface_formats() was added
10630 it was under the assumption that any VA profile of the specific codec
10631 supported the same format colors. But it is not, for example the
10632 profiles that support 10bit formats.
10633 In other words, different VA profiles of a same codec may support
10634 different color formats in their upload surfaces.
10635 In order to expose all the possible color formats, if no profile is
10636 specified via source caps, or if the encoder doesn't have yet a
10637 context, all the possible VA profiles for the specific codec are
10638 iterated and their color formats are merged.
10639 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10641 2017-04-06 16:28:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10643 * gst/vaapi/gstvaapiencode.c:
10644 * gst/vaapi/gstvaapiencode.h:
10645 * gst/vaapi/gstvaapiencode_h264.c:
10646 * gst/vaapi/gstvaapiencode_h265.c:
10647 vaapiencode: add get_profile() vmethod
10648 This new virtual method, get_profile(), if implemented by specific
10649 encoders, will return the VA profile potentially determined by the
10651 Also it is implemented by h264 and h265 encoders, which are the main
10652 users of this vmethod.
10653 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10655 2017-04-06 12:49:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10657 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10658 * gst-libs/gst/vaapi/gstvaapiencoder.h:
10659 * gst/vaapi/gstvaapiencode.c:
10660 libs: encoder: pass profile to get_surface_formats()
10661 In order to get the supported surface formats within a specific
10662 profile this patch adds the GstVaapiProfile as property to
10663 gst_vaapi_encoder_get_surface_formats().
10664 Currently the extracted formats are only those related with the
10665 default profile of the element's codec.
10666 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10668 2017-04-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10670 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10671 libs: encoder: dummy context for get_surface_formats()
10672 Instead of creating (if it doesn't exist, yet) the encoder's context
10673 the method gst_vaapi_encoder_get_surface_formats() now it creates
10674 dummy contexts, unless the encoder has it already created.
10675 The purpose of this is to avoid setting a encoder's context with a
10677 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10679 2017-04-04 14:39:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10681 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10682 libs: encoder: refactor init_context_info()
10683 In order to generate vaapi contexts iterative, the function
10684 init_context_info() is refactored to pass, as parameters the
10685 GstVaapiContextInfo and the GstVaapiProfile.
10686 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10688 2017-04-04 14:21:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10690 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10691 * gst-libs/gst/vaapi/gstvaapiutils.c:
10692 * gst-libs/gst/vaapi/gstvaapiutils.h:
10693 libs: encoder: initialize chroma_type
10694 Instead of initialize the chroma_type with a undefined value, which
10695 will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
10696 this patch queries the VA config, given the received
10697 GstVaapiContextInfo's parameters, and gets the first response.
10698 In order to get the GstVaapiChromaType value, also it was needed to
10699 add a new utility function: to_GstVaapiChromaType(), which, given a
10700 VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
10701 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10703 2017-03-31 11:21:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10705 * gst/vaapi/gstvaapiencode.c:
10706 vaapiencode: enhance logs of negotiated caps
10707 https://bugzilla.gnome.org/show_bug.cgi?id=771291
10709 2017-04-05 11:15:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
10711 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10712 libs: encoder: vp9: Fix initialization of ref_list
10713 gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
10714 'memset' used with length equal to number of elements without
10715 multiplication by element size [-Werror=memset-elt-size]
10716 https://bugzilla.gnome.org/show_bug.cgi?id=780947
10718 2017-03-31 14:12:43 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10720 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10721 encoder: h264: Fix Backward ReferencePicture flag setting
10722 This is a regression introduced by e829b62 which
10723 override the reference flags and caused issues with
10724 latest intel-vaapi-driver.
10726 2017-03-29 13:22:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10728 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10729 libs: encoder: h265: fix code style
10730 Trivial patch to remove a double ';' as end of instruction.
10732 2017-03-28 10:53:20 -0700 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10734 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10735 encoder: h264: Fix B frame encoding artifacts
10736 The current implementation is updating the POC values only
10737 in Slice parameter Buffer.But we are not filling the
10738 picture order count and reference flags in VAPictureH264
10739 while populating VA Picture/Slice structures.The latest
10740 intel-vaapi-driver is directly accessing the above fields
10741 from VAPicutreH264 provided as RefPicLists, which resulted
10742 some wrong maths and prediction errors in driver.
10743 https://bugzilla.gnome.org/show_bug.cgi?id=780620
10745 2017-03-21 16:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10747 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10748 libs: encoder: h265: remove unused macro definition
10749 Since the h265 encoder doesn't use GValueArray, there is no need to
10750 disable the Glib deprecation warnings, thus removing the macro
10753 2017-03-20 16:45:01 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10755 * gst/vaapi/gstvaapidecode.c:
10756 * gst/vaapi/gstvaapiencode.c:
10757 * gst/vaapi/gstvaapipostproc.c:
10758 * gst/vaapi/gstvaapisink.c:
10759 plugins: when debug disabled, default category is NULL
10760 As in gstreamer-vaapi a common base class is used, the specific
10761 default category is passed to the base-plugin initializator, thus
10762 the log messages are categorized with the used plugin.
10763 Nonetheless, when the gst-debug is disabled in compilation time,
10764 it is needed to pass NULL to the base-plugin initializator. This
10766 https://bugzilla.gnome.org/show_bug.cgi?id=780302
10768 2017-03-17 17:14:01 +0900 Hyunjun Ko <zzoon@igalia.com>
10770 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10771 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10772 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10773 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10774 libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
10775 Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
10776 unit length and data to a bitwriter.
10777 Note that this helper function applies EPB (Emulation Prevention
10778 Bytes), since otherwise produced codec_data might be broken when
10779 decoder/parser considering EPB, starts parsing.
10780 See sections 7.3 and 7.4 of the H264 and H264 specifications, which
10781 describes the emulation_prevention_three_byte.
10782 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10783 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10785 2017-03-17 16:49:41 +0900 Hyunjun Ko <zzoon@igalia.com>
10787 * gst-libs/gst/vaapi/Makefile.am:
10788 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10789 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10790 * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10791 * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10792 * gst-libs/gst/vaapi/meson.build:
10793 libs: utils: h26x: create vaapiutils_h26x
10794 Since there is duplicated code in h264/265 encoder, we could
10795 refactor it to avoid duplicated code.
10796 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10797 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10799 2017-03-17 16:32:36 +0900 Hyunjun Ko <zzoon@igalia.com>
10801 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10802 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10803 libs: encoder: h264/5: fix wrong return value
10804 https://bugzilla.gnome.org/show_bug.cgi?id=778750
10806 2017-03-13 17:29:59 +0900 Hyunjun Ko <zzoon@igalia.com>
10808 * gst/vaapi/gstvaapiencode_h264.c:
10809 * gst/vaapi/gstvaapiencode_h265.c:
10810 docs: h264/h265: put parser to the example pipeline
10811 https://bugzilla.gnome.org/show_bug.cgi?id=778749
10813 2017-03-13 16:20:59 +0900 Hyunjun Ko <zzoon@igalia.com>
10815 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10816 libs: encoder: h265: fix reserved length of bits
10817 Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
10818 https://bugzilla.gnome.org/show_bug.cgi?id=778749
10820 2017-03-12 18:59:42 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10822 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
10823 * tests/test-display.c:
10824 O_CLOEXEC needs _GNU_SOURCE defined
10826 The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
10827 in POSIX.1-2001, but are specified in POSIX.1-2008. Since glibc
10828 2.12, one can obtain their definitions by defining either
10829 _POSIX_C_SOURCE with a value greater than or equal to 200809L or
10830 _XOPEN_SOURCE with a value greater than or equal to 700. In glibc
10831 2.11 and earlier, one obtains the definitions by defining
10833 And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
10834 _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
10835 gstreamer-vaapi with the uClibc C library.
10836 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10837 https://bugzilla.gnome.org/show_bug.cgi?id=779953
10839 2017-03-14 16:07:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10842 README: fix "Sources" section
10843 Update the URL where the release source tarballs can be downloaded.
10845 2017-03-12 21:39:53 +0100 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10848 README: fix "Reporting bugs" section
10849 The "Reporting bugs" section gives
10850 https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
10851 link to report a bug, but this link says "Sorry, entering a bug into the
10852 product gstreamer-vaapi has been disabled.".
10853 This commit fixes the URL to point to the proper location, and also
10854 removes the following paragraph that is no longer correct.
10855 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10856 https://bugzilla.gnome.org/show_bug.cgi?id=779954
10858 2017-03-03 19:55:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10860 * gst/vaapi/gstvaapipluginutil.c:
10861 plugins: retry to create the VA display
10862 Particularly in GNOME Wayland, the negotiated or created GL context
10863 defines a GLX environment, but VAAPI fails to create a GLX VA
10864 display because there is no a DRI2 connection.
10865 This patch retries to create the VA display if VA cannot create one
10866 with the GL context parameters. Now using the old list of display
10868 This should also work in the case of systems with two GPU, when the
10869 non-VAAPI has the graphics environment, and the VAAPI-enabled one
10870 shall work headless.
10871 https://bugzilla.gnome.org/show_bug.cgi?id=772838
10873 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
10875 * gst/vaapi/gstvaapipostproc.c:
10876 vaapipostproc: texture upload if driver supports GL
10877 Removes GstVideoGLTextureUploadMeta caps feature if the driver
10878 doesn't support opengl.
10879 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10880 https://bugzilla.gnome.org/show_bug.cgi?id=772838
10882 2016-10-25 17:48:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10884 * gst/vaapi/gstvaapidecode.c:
10885 vaapidecode: texture upload if driver supports GL
10886 When the allowed source pad caps are generated, the GLTextureUpload caps are
10887 only inserted if the driver support OpenGL.
10888 https://bugzilla.gnome.org/show_bug.cgi?id=772838
10890 2017-02-22 15:02:01 -0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10893 configure: Add missing compiler flags
10894 The AC_CHECK_HEADERS macro was failing to locate some headers, in
10895 particular the va_enc_* headers due to missing compiler flags.
10896 https://bugzilla.gnome.org/show_bug.cgi?id=779101
10897 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10899 2017-03-01 14:48:46 +0900 Hyunjun Ko <zzoon@igalia.com>
10901 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10902 libs: window: wayland: handle more VAStatus to use vpp
10903 Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
10904 we should consider more returned VAStatus to use vpp.
10905 https://bugzilla.gnome.org/show_bug.cgi?id=779400
10907 2017-02-23 15:16:06 +0900 Hyunjun Ko <zzoon@igalia.com>
10909 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10910 libs: encoder: ensure profile when context initialization
10911 We can't be sure that encoder's profile is assgined already or not
10912 at context initialization.
10913 https://bugzilla.gnome.org/show_bug.cgi?id=779120
10915 2017-02-23 15:13:59 +0900 Hyunjun Ko <zzoon@igalia.com>
10917 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10918 libs: encoder: set rate control info only when query succeed
10919 Currently, it set rate control information even when query fails.
10920 In addition, it doesn't update any more since the flag
10921 got_rate_control_mask is set to TRUE.
10922 https://bugzilla.gnome.org/show_bug.cgi?id=779120
10924 2017-02-24 16:00:23 +0200 Sebastian Dröge <sebastian@centricular.com>
10927 meson: Update version
10929 2017-02-24 15:38:22 +0200 Sebastian Dröge <sebastian@centricular.com>
10932 Back to development
10934 === release 1.11.2 ===
10936 2017-02-24 15:10:21 +0200 Sebastian Dröge <sebastian@centricular.com>
10941 * gstreamer-vaapi.doap:
10944 2017-02-16 18:37:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10946 * gst/vaapi/gstvaapiencode.c:
10947 vaapiencode: merge tags for downstream's info
10948 Add encoder and codec name and the bitrate into the output for
10949 informational purposes. Some muxers or application use it as
10951 https://bugzilla.gnome.org/show_bug.cgi?id=778781
10953 2017-02-17 01:27:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10955 * gst-libs/gst/vaapi/gstvaapiencoder.c:
10956 libs: encoder: caps can change at any time
10957 The encoder should be able to change its caps even it is already
10958 processing a stream.
10959 This is suppose to happen after a flush so the codedbuf_queue should
10961 https://bugzilla.gnome.org/show_bug.cgi?id=775490
10963 2017-02-17 01:19:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10965 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10966 libs: encoder: h265: bail if nal unit type fails
10967 Bail out if the NAL unit type is not recognized.
10968 https://bugzilla.gnome.org/show_bug.cgi?id=778782
10970 2017-02-16 18:11:50 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10972 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10973 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10974 libs: decoder: h264,h265 avoid uninitialized variable
10975 Configuring GCC to verify possible usage of uninitialized variables,
10976 shows that found_index might be used without previous assignation.
10977 This patch assigns a initial value to found_index, also avoid a
10978 branching when returning the result value.
10979 https://bugzilla.gnome.org/show_bug.cgi?id=778782
10981 2017-02-13 16:39:41 -0800 Scott D Phillips <scott.d.phillips@intel.com>
10984 * gst-libs/gst/vaapi/Makefile.am:
10985 * gst/vaapi/gstvaapidecode.c:
10986 * gst/vaapi/gstvaapidecodebin.c:
10987 build: rename USE_HEVC_DECODER to USE_H265_DECODER
10988 Rename to be consistent with H.264 and also H.265 encoder. The
10989 meson build assumed this was already consistently named, and so
10990 previously was not able to actually build the H.265 decoder.
10991 https://bugzilla.gnome.org/show_bug.cgi?id=778576
10993 2017-02-15 19:14:59 +0000 Tim-Philipp Müller <tim@centricular.com>
10996 meson: gstreamer-codecparsers is a required dep
10997 Just like in configure.ac.
10999 2017-02-15 00:26:21 +0000 Tim-Philipp Müller <tim@centricular.com>
11002 meson: dist meson build files
11003 Ship meson build files in tarballs, so people who use tarballs
11004 in their builds can start playing with meson already.
11006 2017-02-10 09:51:38 +0900 Hyunjun Ko <zzoon@igalia.com>
11008 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11009 libs: encoder: vp8: add CBR encoding mode
11010 This patch enables the Constant BitRate encoding mode in VP8 encoder.
11011 Basically it adds the configuration parameters required by libva to
11013 Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11014 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11016 2017-02-09 12:39:19 +0900 Hyunjun Ko <zzoon@igalia.com>
11018 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11019 libs: encoder: vp8: fix bitrate calculation
11020 Base encoder's unit of bitrate is in Kbps. We should honor it so
11021 we use the value of bitrate in VA, in which is expressed in bps.
11022 https://bugzilla.gnome.org/show_bug.cgi?id=749950
11024 2017-02-09 12:49:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11026 * gst/vaapi/gstvaapipluginbase.c:
11027 plugins: fix build when gcc
11028 In commit a8e482f9 we added a function without parameters, but gcc
11031 2017-02-06 15:46:20 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11033 * gst-libs/gst/base/meson.build:
11034 * gst-libs/gst/meson.build:
11035 * gst-libs/gst/vaapi/meson.build:
11036 * gst-libs/meson.build:
11038 * gst/vaapi/meson.build:
11040 * meson_options.txt:
11041 vaapi: add meson build
11042 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11044 2017-02-08 10:17:40 -0800 Scott D Phillips <scott.d.phillips@intel.com>
11047 * gst-libs/gst/vaapi/Makefile.am:
11048 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11049 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
11050 make: remove gstvaapiversion.h generation
11051 https://bugzilla.gnome.org/show_bug.cgi?id=778250
11053 2016-10-19 15:47:41 +0100 Julien Isorce <j.isorce@samsung.com>
11055 * gst/vaapi/gstvaapipluginbase.c:
11056 plugins: use linear storage if not the same device
11057 When dmabuf is negotiated downstream and decoding and rendering are
11058 not done on the same device, the layout has to be linear in order for
11059 the memory to be shared accross devices, since each device has its
11060 own way to do tiling.
11061 Right now this code is rather just a to-do comment, since we are not
11062 fetching the device ids.
11063 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11065 2017-02-08 14:17:05 +0900 Hyunjun Ko <zzoon@igalia.com>
11067 * gst-libs/gst/vaapi/gstvaapiutils.c:
11068 libs: utils: add HEVC profiles representation
11069 https://bugzilla.gnome.org/show_bug.cgi?id=778318
11071 2017-02-07 16:17:39 +0900 Hyunjun Ko <zzoon@igalia.com>
11073 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11074 libs: decoder: h264: reduce frame number of gaps
11075 Reduce frame num gaps so that we don't have to create unnecessary
11076 dummy pictures, just throw them away.
11077 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11078 https://bugzilla.gnome.org/show_bug.cgi?id=777506
11080 2016-10-16 01:04:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11082 * gst/vaapi/gstvaapidecode.c:
11083 vaapidecode: don't GLTextureUpload if dmabuf
11084 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11085 element can handle dmabuf-based buffers, avoiding its negotiation.
11087 2016-10-19 16:21:21 +0100 Julien Isorce <j.isorce@samsung.com>
11089 * gst/vaapi/gstvaapidecode.c:
11090 vaapidecode: make pool to export decoder's surface
11091 Use new -base API gst_video_decoder_allocate_output_frame_full() to
11092 pass the current proxy/surface to the pool.
11093 The pool will will export thins given surface instead of exporting a
11094 brand new surface that will never be filled in with meaningfull data.
11095 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11097 2017-02-03 17:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11099 * gst/vaapi/gstvaapipluginbase.c:
11100 plugins: decoder can negotiate dmabuf downstream
11102 2016-10-19 16:07:07 +0100 Julien Isorce <j.isorce@samsung.com>
11104 * gst/vaapi/gstvaapivideobufferpool.c:
11105 vaapivideobufferpool: override acquire_buffer()
11106 Overriding the vmethod acquire_buffer() it is possible to attach the
11107 right GstMemory to the current acquired buffer.
11108 As a matter of fact, this acquired buffer may contain any instantiated
11109 GstFdmemory, since this buffer have been popped out from the buffer
11110 pool, which is a FIFO queue. So there is no garantee that this buffer
11111 matches with the current processed surface. Evenmore, the VA driver
11112 might not use a FIFO queue. Therefore, it is no way to guess on the
11114 In short, acquire_buffer on the VA driver and on the buffer pool return
11115 none matching data, we have to manually attach the right GstFdMemory to
11116 the acquired GstBuffer. The right GstMemory is the one associated with
11117 the current surface.
11118 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11120 2016-10-19 16:05:04 +0100 Julien Isorce <j.isorce@samsung.com>
11122 * gst/vaapi/gstvaapivideobufferpool.c:
11123 * gst/vaapi/gstvaapivideomemory.c:
11124 vaapivideomemory: export surface if it is provided
11125 gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
11126 had to create that surface. Now it can also export an already provided
11127 surface. It is useful to export decoder's surfaces (from VA context).
11128 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11130 2016-10-19 15:55:27 +0100 Julien Isorce <j.isorce@samsung.com>
11132 * gst/vaapi/gstvaapivideobufferpool.h:
11133 vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
11134 Useful to let the pool know the current surface proxy when calling
11135 gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
11136 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11138 2016-10-19 15:09:34 +0100 Julien Isorce <j.isorce@samsung.com>
11140 * gst-libs/gst/vaapi/gstvaapisurface.c:
11141 * gst-libs/gst/vaapi/gstvaapisurface.h:
11142 libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
11143 These functions are useful when a dmabuf-based memory is instantiated in
11144 order to relate the generated buffer @proxy with the processed @surface.
11145 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11147 2016-10-19 15:07:31 +0100 Julien Isorce <j.isorce@samsung.com>
11149 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11150 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11151 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
11152 libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
11153 This patch adds a GstMemory as a variable member of the buffer proxy,
11154 because we will need to associate the buffer proxy with the memory
11155 which exposes it. Later, we will know which memory, in the video buffer
11156 pool, is attached to the processed surface.
11157 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11159 2016-10-19 15:33:41 +0100 Julien Isorce <j.isorce@samsung.com>
11161 * gst/vaapi/gstvaapipostproc.c:
11162 vaapipostproc: don't GLTextureUpload if dmabuf
11163 Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11164 element can handle dmabuf-based buffers, avoiding its negotiation.
11165 Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
11166 feature if can dmabuf"
11167 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11169 2016-12-16 14:12:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11171 * gst/vaapi/gstvaapipluginbase.c:
11172 plugins: enable DMAbuf allocator to downstream
11173 If the negotiated caps are raw caps and downstream supports the
11174 EGL_EXT_image_dma_buf_import extension, then the created allocator
11175 is the DMAbuf, configured to downstream.
11176 At this moment, the only element which can push dmabuf-based buffers
11177 to downstream, is vaapipostproc.
11179 2016-06-02 22:13:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11181 * gst/vaapi/gstvaapipluginbase.c:
11182 * gst/vaapi/gstvaapipluginbase.h:
11183 plugins: check if negotiate dmabuf with downstream
11184 In order to enable, in the future, dmabuf-based buffers, the vaapi base
11185 plugin needs to check if downstream can import dmabuf buffers.
11186 This patch checks if downstream can handle dmabuf, by introspecting the
11187 shared GL context. If the GL context is EGL/GLES2 and have the extension
11188 EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
11189 Original-patch-by: Julien Isorce <j.isorce@samsung.com>
11191 2016-10-19 15:37:04 +0100 Julien Isorce <j.isorce@samsung.com>
11193 * gst/vaapi/gstvaapivideomemory.c:
11194 vaapivideomemory: release proxy's data if downstream
11195 The surface created for downstream is going to be filled by VAAPI
11196 elements. So, the driver needs write access on that surface.
11197 This patch releases the derived image held by the proxy, thus the
11198 surface is unmarked as busy.
11199 This is how it has to be done as discussed on libva mailing list.
11200 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11202 2016-10-19 15:01:04 +0100 Julien Isorce <j.isorce@samsung.com>
11204 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11205 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11206 libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
11207 Adds an API to request the user's data release in the buffer proxy.
11208 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11210 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11212 * gst/vaapi/gstvaapipluginbase.c:
11213 * gst/vaapi/gstvaapivideomemory.c:
11214 * gst/vaapi/gstvaapivideomemory.h:
11215 vaapivideomemory: add direction to dmabuf allocator
11216 Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
11217 we later could do different thing when the allocated memory is for
11218 upstream or dowstream, as required by VA-API.
11219 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11221 2016-12-15 15:59:30 +0900 Hyunjun Ko <zzoon@igalia.com>
11223 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
11224 libs: utils: return NULL if failed to get surface formats
11225 Thus, when generating the allowed caps, the element will throw a
11226 warning and it will use its caps template.
11227 This behavior might be a bug in the VA driver.
11228 https://bugzilla.gnome.org/show_bug.cgi?id=775490
11230 2015-11-26 18:21:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11232 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11233 Revert "vaapidisplay: mark X11 display as compatible with EGL"
11234 This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
11236 2017-02-01 14:32:45 +0900 Hyunjun Ko <zzoon@igalia.com>
11238 * gst/vaapi/gstvaapipostproc.c:
11239 vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
11240 A value of width/height property should be set to out caps,
11241 if negotiation had been going properly.
11242 So we can use srcpad_info when making decision of scaling.
11243 https://bugzilla.gnome.org/show_bug.cgi?id=778010
11245 2017-01-27 12:10:54 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11247 * gst/vaapi/gstvaapidecode.c:
11248 * gst/vaapi/gstvaapiencode.c:
11249 * gst/vaapi/gstvaapipluginutil.c:
11250 * gst/vaapi/gstvaapipluginutil.h:
11251 * gst/vaapi/gstvaapipostproc.c:
11252 * gst/vaapi/gstvaapisink.c:
11253 plugins: handle GL params through context query
11254 If the element instantiated the GL display and context, they should
11255 handle them too through the context query.
11256 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11258 2017-01-26 12:02:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11260 * gst/vaapi/gstvaapipluginbase.c:
11261 * gst/vaapi/gstvaapipluginbase.h:
11262 * gst/vaapi/gstvaapipluginutil.c:
11263 plugins: create a GL context on certain conditions
11264 If a GstVaapiDisplay is not found in the GStreamer context sharing,
11265 then VAAPI elements look for a local GstGLContext in gst context
11266 sharing mechanism ('gst.gl.local.context').
11267 If this GstGLContext not found either then, only the VAAPI decoders
11268 and the VAAPI post-processor, will try to instantiate a new
11270 If a valid GstGLContext is received, then a new GstVaapiDisplay will
11271 be instantiated with the platform, API and windowing specified by the
11272 instantiated GstGLContext.
11273 Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
11274 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11276 2016-08-02 15:48:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11278 * gst/vaapi/gstvaapivideocontext.c:
11279 vaapivideocontext: context type can be rejected
11280 Instead of calling g_return_val_if_fail() to check the context type, we
11281 should use a normal conditional, since it is possible that other context types
11282 can arrive and try to be assigned. Otherwise a critical log message is
11284 This happens when we use playbin3 with vaapipostproc as video-filter.
11285 https://bugzilla.gnome.org/show_bug.cgi?id=777409
11287 2017-01-20 19:57:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11289 * gst/vaapi/gstvaapipostprocutil.c:
11290 vaapipostproc: use sink caps par if not requested
11291 Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
11292 is not already set.
11293 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11295 2017-01-20 19:00:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11297 * gst/vaapi/gstvaapipostproc.c:
11298 * gst/vaapi/gstvaapipostprocutil.c:
11299 vaapipostproc: set interlace mode
11300 if the vaapipostproc is configured to not do deinterlacing, the
11301 interlace-mode in the src caps should be the same as the input caps.
11302 https://bugzilla.gnome.org/show_bug.cgi?id=777395
11304 2017-01-20 16:10:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11306 * gst/vaapi/gstvaapisink.c:
11307 vaapisink: fix gcc compiler warning
11308 warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
11310 2017-01-12 19:54:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11312 * gst/vaapi/gstvaapisink.c:
11313 vaapisink: don't use member variable outside lock
11314 Thus a race condition segfault is avoided.
11315 Original-patch-by: Matt Staples <staples255@gmail.com>
11316 https://bugzilla.gnome.org/show_bug.cgi?id=777146
11318 2017-01-18 17:20:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11320 * gst/vaapi/gstvaapipluginbase.c:
11321 * gst/vaapi/gstvaapipostproc.c:
11322 plugins: avoid log flood when activating pool
11323 Every time a new buffer is allocated, the pool is activated. This
11324 doesn't impact in performance since gst_buffer_pool_set_active()
11325 checks the current state of the pool. Nonetheless it logs out a
11326 message if the state is the same, and it floods the logging subsystem
11328 To avoid this log flooding first the pool state is checked before
11331 2017-01-13 21:26:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11333 * gst-libs/gst/vaapi/gstvaapidecoder.c:
11334 * gst-libs/gst/vaapi/gstvaapidecoder.h:
11335 * gst/vaapi/gstvaapidecode.c:
11336 * gst/vaapi/gstvaapidecode.h:
11337 vaapidecode: update internal decoder sink caps
11338 When a new sink caps arrive the internal decoder state is updated
11339 and, if it is, request a downstream renegotiation.
11340 Previously, when new caps arrived the whole decoder where destroyed
11341 and recreated. Now, if the caps are compatible or has the same codec,
11342 the internal decoder is kept, but a downstream renegotiation is
11344 https://bugzilla.gnome.org/show_bug.cgi?id=776979
11346 2017-01-12 16:33:13 +0200 Sebastian Dröge <sebastian@centricular.com>
11349 Back to development
11351 === release 1.11.1 ===
11353 2017-01-12 16:27:12 +0200 Sebastian Dröge <sebastian@centricular.com>
11358 * gstreamer-vaapi.doap:
11361 2017-01-12 12:49:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11363 * gst-libs/gst/vaapi/gstvaapiutils.c:
11364 vaapi: bump ifdef to API 0.40.0 for log redirect
11365 vaSetInfoCallback() is not released yet. It is going to appear in
11368 2017-01-12 13:45:29 +0200 Sebastian Dröge <sebastian@centricular.com>
11370 * gst-libs/gst/vaapi/gstvaapiutils.c:
11371 vaapiutils: Fix compilation with latest and previous libva releases
11372 vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
11375 2017-01-11 16:04:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11377 * gst-libs/gst/vaapi/gstvaapidisplay.c:
11378 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11379 * gst-libs/gst/vaapi/gstvaapiutils.c:
11380 * gst-libs/gst/vaapi/gstvaapiutils.h:
11381 libs: display: redirect logging at initialize
11382 Redirect libva's logs to GStreamer logging mechanism. This is
11383 particularly useful when VA is initialized, because it always logs
11384 out the drivers details.
11385 In order to achieve this a new helper function was added as a wrapper
11386 for the vaInitialize() function.
11387 https://bugzilla.gnome.org/show_bug.cgi?id=777115
11389 2017-01-10 15:15:31 +0900 Hyunjun Ko <zzoon@igalia.com>
11391 * gst/vaapi/gstvaapipluginbase.c:
11392 plugins: provide at least two buffers in sink pool
11393 Adds two buffers as the default value of minimum buffer.
11394 This would be used when creating and proposing vaapi bufferpool for
11395 sink pad, hence the upstream element will keep, at least, these two
11397 https://bugzilla.gnome.org/show_bug.cgi?id=775203
11398 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11400 2017-01-10 13:49:27 +0900 Hyunjun Ko <zzoon@igalia.com>
11402 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11403 libs: decoder: h264: don't update cloned attributes
11404 If the frame is a cloned picture, its PTS comes from its parent
11405 picture. In addition, the base decoder doesn't set a valid PTS to
11406 the frame corresponding to the cloned picture.
11407 https://bugzilla.gnome.org/show_bug.cgi?id=774254
11409 2017-01-09 19:25:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11411 * gst/vaapi/gstvaapivideomemory.c:
11412 vaapivideomemory: check for display
11413 This patch fixes the check of display, rather than check for the
11414 meta, which it is known it exists.
11416 2017-01-09 16:23:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11418 * gst/vaapi/gstvaapivideomemory.c:
11419 * gst/vaapi/gstvaapivideomemory.h:
11420 vaapivideomemory: rename dmabuf allocator parameters
11421 Rename the parameters 'vip' and 'flags' to 'alloc_info' and
11422 'surface_alloc_flags' respectively. The purpose of this change is
11423 to auto-document those parameters.
11424 Also, aligned to this patch, the local 'alloc_info' variable was
11425 renamed as 'surface_info', because it stores the possible surface's
11426 video info, not the allocate one.
11428 2017-01-09 16:18:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11430 * gst/vaapi/gstvaapivideomemory.c:
11431 * gst/vaapi/gstvaapivideomemory.h:
11432 vaapivideomemory: rename vip to alloc_info parameter
11433 In order to auto-document the code, this patch renames the 'vip'
11434 parameter in the functions related to gst_vaapi_video_allocator_new ()
11435 to 'alloc_info', since it declares the allocation video info from
11436 the vaapi buffer pool.
11438 2017-01-09 16:08:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11440 * gst/vaapi/gstvaapivideomemory.c:
11441 vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
11442 Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
11443 the video format string.
11445 2017-01-09 12:51:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11447 * gst/vaapi/gstvaapivideomemory.c:
11448 vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
11449 gst_vaapi_surface_new_with_format() is a wrapper for
11450 gst_vaapi_surface_new_full (). In this case, the former is simpler
11451 than the first. This patch changes that.
11453 2017-01-04 19:23:06 +0900 Hyunjun Ko <zzoon@igalia.com>
11455 * gst/vaapi/gstvaapipostproc.c:
11456 vaapipostproc: notify if src pad caps changed
11457 If src pad caps have changed, it needs to notify it downstream. In
11458 addition, do not set passthrough if they have changed.
11459 Otherwise, transform sometimes starts processing before caps change.
11460 The passthrough value will be set in fixate later in this case.
11461 https://bugzilla.gnome.org/show_bug.cgi?id=775204
11463 2016-12-14 15:51:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11465 * gst/vaapi/gstvaapidecodebin.c:
11466 vaapidecodebin: capsfilter to optimize negotiation
11467 Add a capsfilter forcing the caps
11468 "video/x-raw(memory:VASurface), format=(string)NV12" between the
11469 queue and the vaapipostproc so no renegotiation is required.
11470 https://bugzilla.gnome.org/show_bug.cgi?id=776175
11472 2016-12-21 17:38:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11474 * gst/vaapi/gstvaapivideomemory.c:
11475 vaapivideomemory: fail surface/image configuration
11476 To detect and handle errors during allocator_configure_surface_info()
11477 and allocator_conigure_image_info().
11478 https://bugzilla.gnome.org/show_bug.cgi?id=776084
11479 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11481 2016-12-21 17:50:41 +0900 Hyunjun Ko <zzoon@igalia.com>
11483 * gst/vaapi/gstvaapisink.c:
11484 vaapisink: ensures raw caps at start()
11485 Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
11486 race conditions at get_caps(), especially with multiple src elements.
11487 https://bugzilla.gnome.org/show_bug.cgi?id=776303
11489 2016-12-09 14:51:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11491 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11492 libs: surface: fix error handling code style
11494 2016-12-09 16:14:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11496 * gst/vaapi/gstvaapivideomemory.c:
11497 vaapivideomemory: add gst_video_info_update_from_surface()
11498 With this function is possible to refactor and remove duplicated code
11499 between dmabuf configuration and direct rendering/uploading
11502 2016-12-09 15:51:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11504 * gst/vaapi/gstvaapivideomemory.c:
11505 vaapivideomemory: no log object at initialization
11506 When an instance of GstVaapiVideoAllocator fails at initializing, the
11507 log message should not include the allocator's object, because it is
11508 going to be unrefed.
11510 2016-12-09 17:56:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11512 * gst/vaapi/gstvaapidecode.c:
11513 vaapidecode: lock stream when setting caps
11515 2016-12-09 17:42:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11517 * gst/vaapi/gstvaapidecode.c:
11518 Revert "vaapidecode: implement negotiate() vmethod"
11519 This reverts commit 3285121181295c544480fc6ba756845b16285d30.
11520 videodecode's negotiate() vmethod is also called when events arrive,
11521 but this would mean that the proper configuration of sink pad might
11522 not be complete, thus we should not update the src pad.
11523 Let's keep the old non-vmethod negotitate().
11525 2016-12-07 16:52:35 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11527 * gst/vaapi/gstvaapi.c:
11528 Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
11529 This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
11531 2016-12-01 18:57:10 +0900 Hyunjun Ko <zzoon@igalia.com>
11533 * gst/vaapi/gstvaapiencode.c:
11534 * gst/vaapi/gstvaapiencode.h:
11535 vaapiencode: get surface formats in get_caps()
11536 Query for the supported surface formats in config at get_caps() vmethod.
11537 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11538 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11540 2016-12-07 11:26:37 +0100 Hyunjun Ko <zzoon@igalia.com>
11542 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11543 * gst-libs/gst/vaapi/gstvaapiencoder.h:
11544 libs: encoder: add gst_vaapi_encoder_get_surface_formats()
11545 This method will return the valid surface formats in the current
11546 config. If the are no VAConfig it is created with the information
11548 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11549 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11551 2016-12-07 11:10:42 +0100 Hyunjun Ko <zzoon@igalia.com>
11553 * gst-libs/gst/vaapi/gstvaapiencoder.c:
11554 libs: encoder: split set_context_info()
11555 Split set_context_info() adding init_context_info() which only
11556 initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
11557 required for VAConfig.
11558 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11559 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11561 2016-12-02 09:30:52 +0900 Hyunjun Ko <zzoon@igalia.com>
11563 * gst-libs/gst/vaapi/gstvaapicontext.c:
11564 libs: context: skip VAContext if no frame size
11565 If GstVaapiContextInfo has just initial information, without frame's
11566 width and height, skip the creation of the VAContext, just keep the
11568 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11569 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11571 2016-12-02 09:28:07 +0900 Hyunjun Ko <zzoon@igalia.com>
11573 * gst-libs/gst/vaapi/gstvaapicontext.c:
11574 libs: context: split context_create()
11575 Split the funcion context_create() into context_create() and
11577 Decoupling VAConfig and VAContext during context creation, we could
11578 query the VAConfig for the supported surface's formats without creating
11580 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11582 2016-12-06 17:33:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11584 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11585 libs: drm: find render node in hybrid system
11586 Originally the drm backend only tried to open the first render node
11587 found. But in hybrid system this first render node might not support
11588 VA-API (propietary Nvidia driver, for example).
11589 This patch tries all the available nodes until a finding one with a
11590 VA-API supported driver.
11591 https://bugzilla.gnome.org/show_bug.cgi?id=774811
11592 Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
11593 Reza Razavi <reza@userful.com>
11595 2016-11-14 17:45:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11597 * gst/vaapi/gstvaapivideomemory.c:
11598 vaapivideomemory: refactor code for readability
11599 Added the inlined function allocator_configure_pools() moving out code
11600 from gst_vaapi_video_allocator_new() to make clear that it is a
11601 post-initalization of the object.
11603 2016-11-14 17:40:37 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11605 * gst/vaapi/gstvaapivideomemory.c:
11606 vaapivideomemory: log error if not VA image
11607 Log an error message if the test image for surface downloading
11608 cannot be allocated or mapped.
11610 2016-11-14 17:33:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11612 * gst/vaapi/gstvaapivideomemory.c:
11613 vaapivideomemory: remove unused macros
11614 These macros are not used. Let us remove them.
11616 2016-11-11 19:45:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11618 * gst/vaapi/gstvaapivideomemory.c:
11619 * gst/vaapi/gstvaapivideomemory.h:
11620 vaapivideomemory: rename video for allocation_info
11621 Since video_info stores the GstVideoInfo of the allocation caps,
11622 it is clear if we rename it as allocation_info, to distinguish it
11623 later from negotiation_info.
11625 2016-10-19 15:27:03 +0100 Julien Isorce <j.isorce@samsung.com>
11627 * gst/vaapi/gstvaapivideomemory.c:
11628 * gst/vaapi/gstvaapivideomemory.h:
11629 vaapivideomemory: add real GstVaapiDmaBufAllocator
11630 Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
11631 GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
11632 GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
11633 from GstDmaBufAllocator.
11634 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11635 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11637 2016-10-19 15:30:09 +0100 Julien Isorce <j.isorce@samsung.com>
11639 * gst/vaapi/gstvaapivideomemory.c:
11640 vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
11641 Add a helper function to initialize the gst_debug_vaapivideomemory,
11642 to use it either by the GstVaapiVideoAllocatorClass or
11643 GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
11644 Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
11645 https://bugzilla.gnome.org/show_bug.cgi?id=755072
11647 2016-11-29 15:14:32 +0900 Hyunjun Ko <zzoon@igalia.com>
11649 * gst/vaapi/gstvaapiencode.c:
11650 vaapiencode: release internal encoder at stop()
11651 As the internal encoder is created at start(), let's release it at
11652 stop() vmethod, to be consistent.
11653 gst_vaapiencode_destroy() is called since it also resets the input and
11654 output states, which is something that the base class does internally
11655 after calling stop() vmethod.
11656 https://bugzilla.gnome.org/show_bug.cgi?id=769266
11657 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11659 2016-12-03 08:20:56 +0100 Edward Hervey <bilboed@bilboed.com>
11662 Automatic update of common submodule
11663 From f49c55e to 39ac2f5
11665 2016-11-29 14:59:02 +0900 Hyunjun Ko <zzoon@igalia.com>
11667 * gst/vaapi/gstvaapiencode.c:
11668 vaapiencode: call ensure_encoder() at start()
11669 Currently, specific encoder is created during set_format(). This might
11670 lead to race condition when creating profiles with multiple encoders.
11671 This patch moves ensure_encoder() call to start() vmethod to ensure
11672 avoiding the race condition.
11673 https://bugzilla.gnome.org/show_bug.cgi?id=773546
11675 2016-11-21 19:29:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11677 * gst/vaapi/gstvaapidecodebin.c:
11678 vaapidecodebin: bring back dynamic configuration
11679 In commit ca0c3fd6 we remove the dynamic configuration if the bin
11680 because we assumed that the bin will be always static as it is
11682 Nonetheless we were wrong, because it is possible to request, with a
11683 property, to avoid the use of the post-processor.
11684 Since we want to add a way to disable the post-processor through
11685 environment variables, this remove feature is required again.
11686 If the environment variable GST_VAAPI_DISABLE_VPP is defined the
11687 postprocessor inside of the vaapidecodebin is disabled, then
11688 vaapidecodebin is an alias of the old vaapidecode.
11689 https://bugzilla.gnome.org/show_bug.cgi?id=775041
11691 2016-11-21 18:25:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11693 * gst/vaapi/gstvaapidecode.c:
11694 vaapidecode: implement negotiate() vmethod
11695 Instead of decorating the negotiate() method, let us override it,
11696 so the stream is locked while called.
11697 https://bugzilla.gnome.org/show_bug.cgi?id=775040
11699 2016-11-26 11:27:26 +0000 Tim-Philipp Müller <tim@centricular.com>
11702 common: use https protocol for common submodule
11703 https://bugzilla.gnome.org/show_bug.cgi?id=775110
11705 2016-11-24 21:17:54 +0100 Dominique Leuenberger <dimstar@opensuse.org>
11707 * gst-libs/gst/vaapi/Makefile.am:
11708 build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
11709 In case libva-wayland has its headers not installed in default
11710 locations (like /usr/include), the build fails to include "wayland-client.h":
11711 CC libgstvaapi_egl_la-gstvaapiutils_egl.lo
11712 In file included from gstvaapidisplay_wayland.h:27:0,
11713 from gstvaapidisplay_egl.c:35:
11714 /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
11715 #include <wayland-client.h>
11716 As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
11717 our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
11718 for libva-wayland.pc in configure and use this in other places as well. It is thus only
11719 correct and consequent, to do it also at this spot.
11720 https://bugzilla.gnome.org/show_bug.cgi?id=773946
11722 2015-10-28 12:55:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11724 * gst/vaapi/gstvaapivideocontext.c:
11725 vaapivideocontext: log a message if no bus
11726 Raise a warning if there is no bus when the element tries to post a
11729 2015-10-28 12:57:14 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11731 * gst/vaapi/gstvaapisink.c:
11732 vaapisink: create display at open()
11733 Instead of creating the VA display before setting the bus to the
11734 element, it is created when the element is opened.
11735 Basically, this commit is a revert of
11736 5e5d62cac79754ba60057fc2516135aad8d7de35
11737 That was done when the GStreamer's context sharing was not mature
11738 enough as now. There is no reason to keep this hack.
11740 2016-11-04 18:04:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11742 * gst/vaapi/gstvaapidecode.c:
11743 vaapidecode: don't add video crop meta
11744 Since the differentiation of negotiation caps and allocation caps,
11745 there is no need to add a video crop meta with the negotiation caps.
11746 Hence, removing it.
11747 https://bugzilla.gnome.org/show_bug.cgi?id=773948
11749 2015-03-19 21:20:26 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11751 * gst/vaapi/gstvaapivideobuffer.c:
11752 * gst/vaapi/gstvaapivideometa.c:
11753 * gst/vaapi/gstvaapivideometa.h:
11754 remove the video converter from vaapi buffer meta
11755 Since all the video converter were deprecated in gstreamer-1.2, we don't need
11756 to handle them anymore in the vaapi's buffer meta.
11757 This patch removes its usage and the buffer meta's API for that.
11758 https://bugzilla.gnome.org/show_bug.cgi?id=745728
11760 2016-11-21 18:28:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11762 * gst/vaapi/gstvaapipluginbase.c:
11763 plugins: destroy source pad allocator and pool
11764 First, deactivate source pad pool when the out caps change, and if so,
11765 destroy texture map, the source pad allocator and pool only if the
11766 new caps are different from the ones already set.
11768 2016-11-21 19:17:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11770 * gst/vaapi/gstvaapipluginbase.c:
11771 plugins: don't destroy sink pad allocator
11772 Don't destroy sink pad allocator at _set_caps() because it will be done at
11773 ensure_sinkpad_buffer_pool() if it is required.
11775 2016-11-21 18:27:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11777 * gst/vaapi/gstvaapipluginbase.c:
11778 plugins: first validate the out caps
11779 When calling _set_caps() first validate the out caps before doing
11782 2016-11-21 18:42:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11784 * gst/vaapi/gstvaapidecode.c:
11785 vaapidecode: negotiate after destroying allocator
11786 This is related with bug 758907 when no vaapipostproc is used (no
11787 vaapidecodebin). In order to negotiate downstream we need to destroy
11788 the source pad allocator, otherwise the same allocated buffers are
11789 used, failing the mapping.
11791 2016-11-21 16:35:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11793 * gst/vaapi/gstvaapivideomemory.c:
11794 vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
11795 Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
11796 GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
11798 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11800 2016-11-21 12:51:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11802 * gst/vaapi/gstvaapipluginbase.c:
11803 plugins: update the src pad allocator video info
11804 Update the size, stride and offset of the source pad allocator video
11805 info, so the pool could set the correct GstVideoMeta
11806 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11808 2016-11-21 12:36:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11810 * gst/vaapi/gstvaapivideomemory.c:
11811 vaapivideomemory: add missing documentation
11812 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11814 2016-11-21 12:29:26 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11816 * gst/vaapi/gstvaapipluginbase.c:
11817 plugins: use early return without goto
11818 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11820 2016-11-21 11:25:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11822 * gst/vaapi/gstvaapipluginbase.c:
11823 * gst/vaapi/gstvaapivideomemory.c:
11824 * gst/vaapi/gstvaapivideomemory.h:
11825 plugins: add allocator to allocation query
11826 This patch adds the created allocator to the allocation query either
11827 in decide_allocation() and propose_allocation() vmehtods.
11828 With it, there's no need to set the modified allocator's size in the
11829 pool configuration.
11830 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11832 2016-10-19 15:15:01 +0100 Julien Isorce <j.isorce@samsung.com>
11834 * gst/vaapi/gstvaapivideobufferpool.c:
11835 vaapivideobufferpool: set correct buffer size
11836 We should set the correct buffer size when we are configuring the pool,
11837 otherwise the buffer will be discarded when it returns to the pool.
11838 Indeed when the ref-count of a buffer reaches zero, its pool will queue
11839 it back (and ref it) if, and only if, the buffer size matches the
11840 configured buffer size on the pool.
11841 This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
11842 https://bugzilla.gnome.org/show_bug.cgi?id=774782
11844 2016-11-10 13:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11846 * gst/vaapi/gstvaapivideomemory.c:
11847 vaapivideomemory: check for memory allocator
11848 When calling gst_vaapi_video_memory_copy() the allocator of the memory
11849 to copy should be allocated by the vaapi allocator.
11850 This patch does this verification.
11852 2016-11-10 13:25:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11854 * gst/vaapi/gstvaapivideomemory.c:
11855 vaapivideomemory: code style fixes
11856 A cosmetic commit for enhance readability of the casts and method
11859 2016-11-09 19:49:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11861 * gst/vaapi/gstvaapivideomemory.c:
11862 vaapivideomemory: unroll gst_vaapi_video_allocator_free()
11863 Instead of having a gst_vaapi_video_memory_free() that is only going to
11864 be called by gst_vaapi_video_allocator_free(), let's just remove the first
11865 and merged into the second.
11867 2016-11-09 19:29:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11869 * gst/vaapi/gstvaapivideomemory.c:
11870 vaapivideomemory: avoid virtual methods casting
11871 Use the expected virtual method signatures for readability.
11873 2016-11-09 18:58:20 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11875 * gst/vaapi/gstvaapivideomemory.c:
11876 vaapivideomemory: remove unimplemented methods
11877 Remove unimplemented method for allocator mem_share() and mem_is_span().
11879 2016-11-09 18:54:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11881 * gst/vaapi/gstvaapivideomemory.c:
11882 vaapivideomemory: fail if frame map can't get plane
11883 If map() vmethod in GstVideMeta cannot get the plane data, return false,
11884 thus the caller will not try to read invalid memory.
11885 https://bugzilla.gnome.org/show_bug.cgi?id=774213
11887 2016-11-09 18:39:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11889 * gst/vaapi/gstvaapivideomemory.c:
11890 * gst/vaapi/gstvaapivideomemory.h:
11891 vaapivideomemory: lock map and unmap operations
11892 In order to avoid race condition when two threads call map/unmap the same
11893 VA surface, this patch mutex these operations.
11894 https://bugzilla.gnome.org/show_bug.cgi?id=774213
11896 2016-11-09 17:37:06 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11898 * gst/vaapi/gstvaapivideomemory.c:
11899 vaapivideomemory: refactor vaapi memory unmapping
11900 There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
11901 gst_vaapi_video_memory_unmap() when unmapping.
11902 This patch refactors both methods adding the common function
11903 unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
11904 is correctly reset.
11905 Additionally, only when mapping flag has the WRITE bit, it set the image as
11906 current, which was done in gst_video_meta_map_vaapi_memory() but no in
11907 gst_vaapi_video_memory_map().
11908 In order to make this, the mapping flags were required, so instead of
11909 overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
11910 https://bugzilla.gnome.org/show_bug.cgi?id=774213
11912 2016-11-09 13:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11914 * gst/vaapi/gstvaapivideomemory.c:
11915 vaapivideomemory: refactor vaapi memory mapping
11916 There were duplicated code in gst_video_meta_map_vaapi_memory() and
11917 gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
11918 This patch refactors both methods adding the common function
11919 map_vaapi_memory().
11920 Additionally, only when flag has the READ bit it calls
11921 ensure_images_is_current(), which was done in
11922 gst_video_meta_map_vaapi_memory() but no in
11923 gst_vaapi_video_memory_map().
11924 https://bugzilla.gnome.org/show_bug.cgi?id=772151
11926 2016-10-27 18:22:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11928 * gst/vaapi/gstvaapidecode.c:
11929 vaapidecode: unref allowed_sinkpad_caps at close()
11930 The variable member allowed_sinkpad_caps is constructed querying the
11931 current VA display. Bearing that in mind, the variable shall be freed
11932 when the VA display changes or is removed.
11933 This patch moves the freeing of allowed_sinkpad_caps to close(), when
11934 the VA display is freed.
11936 2016-11-11 11:40:09 +0900 Hyunjun Ko <zzoon@igalia.com>
11938 * gst/vaapi/gstvaapisink.c:
11939 vaapisink: finish event thread at stop()
11940 The thread that handles window's events should be finished during
11941 pipeline's shutdown, otherwise it will remain alive during pipeline
11942 re-activation, leading to unexpected problems.
11943 This patch fixes failures of intensive_state_change scenario of
11945 https://bugzilla.gnome.org/show_bug.cgi?id=774241
11947 2016-11-08 09:35:00 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11949 * gst/vaapi/gstvaapipostproc.c:
11950 vaapipostproc: enhance debug message
11951 "gst_pad_push" is not a good description of the event.
11953 2016-11-08 10:05:32 +0900 Hyunjun Ko <zzoon@igalia.com>
11955 * gst/vaapi/gstvaapipostproc.c:
11956 postproc: honor gst_pad_push() return value
11957 Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
11958 deadlock during seek.
11959 This patch returns the same error of gst_pad_push() and log out the
11961 https://bugzilla.gnome.org/show_bug.cgi?id=774030
11963 2016-11-04 16:26:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11965 * gst/vaapi/gstvaapidecode.c:
11966 vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
11967 In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
11968 compiled with out EGL/GLX support: it shall not support
11969 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
11970 This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
11971 allowed src caps for vaapedecode if EGL/GLX.
11973 2016-11-04 12:55:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11975 * gst/vaapi/gstvaapivideomemory.c:
11976 vaapivideomemory: increment map counter only if succeeded
11977 Previously the frame map counter increased independently if the map succeeded
11978 or not. This leaded to critical messages and crashes if the frame was unable
11979 to be mapped, but the counter increased.
11980 This patch increases the map counter only if the map operation occurred.
11981 https://bugzilla.gnome.org/show_bug.cgi?id=773939
11983 2016-11-03 17:30:46 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11985 * gst/vaapi/gstvaapipluginbase.c:
11986 plugins: set negotiation caps in src allocator
11987 When the allocator is created, it stores the allocation caps. But sometimes
11988 the "allocation caps" may be different from the "negotiation caps".
11989 In this case, the allocator should store the negotiation caps since they
11990 are the ones used for frame mapping with GstVideoMeta.
11991 When vaapispostproc is used, this is not a problem since the element is assume
11992 to resize. But when using a vaapi decoder only, with a software renderer, it
11993 fails in this case.
11994 https://bugzilla.gnome.org/show_bug.cgi?id=773323
11996 2016-07-19 16:40:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11998 * gst/vaapi/gstvaapidecode.c:
11999 * gst/vaapi/gstvaapidecode.h:
12000 vaapidecode: generate source pad caps
12001 Just as vaapipostproc, VA decoder's context can be queried to get the possible
12002 raw formats, so, the src caps can negotiate the exact caps that the context
12005 2016-02-25 18:57:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12007 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12008 * gst-libs/gst/vaapi/gstvaapidecoder.h:
12009 libs: decoder: add _get_surface_formats()
12010 This function exposes the available formats of the surfaces in the the current
12011 context to the plugins.
12013 2016-02-18 19:32:58 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12015 * gst-libs/gst/vaapi/gstvaapicontext.c:
12016 * gst-libs/gst/vaapi/gstvaapicontext.h:
12017 libs: context: ensure context formats
12018 This patch ensures to get the formats, as filter does, available in the
12019 decoder / encoder context.
12020 The context fills up the array as soon it is created, otherwise the pipeline
12021 could get stalled (perhaps this is a bug in my HSW backend).
12022 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12024 2016-02-18 19:20:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12026 * gst-libs/gst/vaapi/gstvaapifilter.c:
12027 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
12028 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
12029 libs: move get_surface_formats to utils_core
12030 The query of all the supported formats for a VA config were only used by the
12031 postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
12032 negotiate a suitable raw format with downstream, we need to query these
12033 formats against the decoder's config.
12034 This patch is the first step: moves the code in filter's ensure_image() to a
12035 generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
12036 shared later by the decoder.
12037 https://bugzilla.gnome.org/show_bug.cgi?id=752958
12039 2016-07-19 18:56:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12041 * gst/vaapi/gstvaapipluginbase.c:
12042 plugins: remove set_sinkpad_dmabuf_allocator()
12043 Since when the sink pad allocator is created, it is decided if the required
12044 one is vaapi allocator or dmabuf allocator, there is no need to force its set
12047 2016-10-27 11:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12049 * gst/vaapi/gstvaapipluginbase.c:
12050 plugins: ensure display when getting raw caps
12051 When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
12052 meanwhile it is transforming caps. The problem is that stop() calls
12053 gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
12054 the va display is used in tranform_caps() when it is extracting the possible
12055 format conversions. This display disappearing generates warning messages.
12056 This patch holds a local reference of va display at ensure_allowed_raw_caps()
12057 hence it doesn't go away meanwhile it is used, even if the
12058 gst_vaapi_plugin_base_close() is called in other thread.
12059 https://bugzilla.gnome.org/show_bug.cgi?id=773593
12061 2016-11-03 12:54:23 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12063 * gst/vaapi/gstvaapiencode_h264.c:
12064 * gst/vaapi/gstvaapiencode_h265.c:
12065 plugins: fix code style for errors
12067 2016-10-19 19:04:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12069 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
12070 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
12071 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
12072 * gst-libs/gst/vaapi/gstvaapicontext.c:
12073 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
12074 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12075 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
12076 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12077 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12078 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
12079 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
12080 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12081 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
12082 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
12083 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12084 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
12085 * gst-libs/gst/vaapi/gstvaapiencoder.c:
12086 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12087 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12088 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
12089 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12090 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12091 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12092 * gst-libs/gst/vaapi/gstvaapifilter.c:
12093 * gst-libs/gst/vaapi/gstvaapiimage.c:
12094 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
12095 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
12096 * gst-libs/gst/vaapi/gstvaapipixmap.c:
12097 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
12098 * gst-libs/gst/vaapi/gstvaapisurface.c:
12099 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
12100 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12101 * gst-libs/gst/vaapi/gstvaapitexture.c:
12102 * gst-libs/gst/vaapi/gstvaapiutils.c:
12103 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12104 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
12105 * gst-libs/gst/vaapi/gstvaapiwindow.c:
12106 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12107 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12108 libs: fix code style for errors
12110 2016-11-03 09:31:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12112 * gst/vaapi/gstvaapipluginbase.c:
12113 * gst/vaapi/gstvaapivideocontext.c:
12114 plugins: update GstGL deprecated symbol
12115 GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
12117 2016-10-21 11:48:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12119 * gst/vaapi/gstvaapipluginbase.c:
12120 plugins: direct render when raw video
12121 Enable the direct rendering with linear surfaces if the negotiated src caps
12122 are video/x-raw without features.
12123 Pass also the caps, since they are needed to know the requested caps features.
12125 2016-10-24 20:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12127 * gst/vaapi/gstvaapipluginbase.c:
12128 plugins: move src allocator error to instantiator
12129 Just as we did in ensure_sinkpad_allocator(), let's move the error message
12130 into the ensure_srcpad_allocator() from the caller,
12131 gst_vaapi_plugin_base_decide_allocation()
12133 2016-10-20 19:37:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12135 * gst/vaapi/gstvaapipluginbase.c:
12136 plugins: enable direct upload if raw video
12137 Enable the direct upload with linear surfaces if the negotiated sink caps are
12138 video/x-raw without features.
12140 2016-10-21 11:21:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12142 * gst/vaapi/gstvaapipluginutil.c:
12143 * gst/vaapi/gstvaapipluginutil.h:
12144 pluginutil: add gst_caps_is_video_raw()
12146 2016-10-24 19:25:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12148 * gst/vaapi/gstvaapipluginbase.c:
12149 plugins: receive caps in ensure_sinkpad_allocator()
12150 Instead of receiving the GstVideoInfo structure as parameter, get the original
12151 GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
12152 which allocator instantiate.
12154 2016-10-20 19:31:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12156 * gst/vaapi/gstvaapivideomemory.c:
12157 vaapivideomemory: destroy derived image at unmap
12158 If the allocator was configured to use direct upload or rendering, the
12159 generated derived image created at mapping needs to be destroyed after
12160 unmapping, because, in order to process the surface, it should not be marked
12161 as "busy" by the driver.
12163 2016-10-21 11:57:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12165 * gst/vaapi/gstvaapivideomemory.c:
12166 vaapivideomemory: enhance logs for direct modes
12167 Print, conditionally, only the enabled direct mode.
12169 2016-10-20 17:02:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12171 * gst/vaapi/gstvaapivideomemory.c:
12172 * gst/vaapi/gstvaapivideomemory.h:
12173 vaapivideomemory: add direct upload flag
12174 Adds the direct-upload flag in the GstVaapiVideoAllocator and
12175 GstVaapiVideoMemory.
12176 It still doesn't apply any functional change.
12178 2016-10-20 16:49:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12180 * gst/vaapi/gstvaapipluginbase.c:
12181 * gst/vaapi/gstvaapivideomemory.c:
12182 * gst/vaapi/gstvaapivideomemory.h:
12183 vaapivideomemory: set direct rendering at run-time
12184 The way to experiment with the direct rendering is through and internal
12185 compiler pre-processor flag.
12186 The current change set enables a way to specified at run-time, as a flag
12187 passed to the allocator at instanciation time.
12189 2016-10-20 18:09:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12191 * gst/vaapi/gstvaapivideomemory.c:
12192 vaapivideomemory: log in perf category when copy
12193 Log in performance category when the derive image handling fails, falling back
12196 2016-10-20 16:31:21 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12198 * gst/vaapi/gstvaapivideomemory.c:
12199 vaapivideomemory: error log is derive image fails
12200 Instead of a silently failure of the derive image, this patch log an error
12201 message according to the failure.
12203 2016-10-20 12:52:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12205 * gst/vaapi/gstvaapivideomemory.c:
12206 vaapivideomemory: store surface alloc flags in qdata
12207 For sake of consistency, we should add the requested surface allocation flags
12208 to the object's qdata structure.
12210 2016-10-20 12:22:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12212 * gst/vaapi/gstvaapivideomemory.c:
12213 vaapivideomemory: category init when object define
12214 Move the Gstreamer debug category initialize to the GObject definition.
12216 2016-11-03 08:31:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12218 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12219 libs: vaapitexturemap: trivial code-style fix
12221 2016-11-02 20:01:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12223 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12224 libs: display: egl: avoid recreate native display
12225 Instead of passing the native descriptor of the display, just pass the received
12226 GstVaapiDisplay and reuse it.
12228 2016-11-02 15:38:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12230 * gst/vaapi/gstvaapipluginbase.c:
12231 plugins: log the GstVaapiDisplay name
12232 Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
12233 name. Log it instead of the memory address.
12235 2016-11-02 18:37:00 +0900 Hyunjun Ko <zzoon@igalia.com>
12237 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
12238 libs: window: egl: pass native va display
12239 When creating a GstVaapiWindowEGL, it also creates native window by its own
12240 native display. It should pass the native display, either X11 or Wayland.
12241 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12243 2016-10-13 12:53:17 +0900 Hyunjun Ko <zzoon@igalia.com>
12245 * gst-libs/gst/vaapi/gstvaapidebug.h:
12246 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12247 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12248 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12249 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
12250 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
12251 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12252 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
12253 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12254 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12255 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
12256 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12257 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12258 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12259 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
12260 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
12261 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12262 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
12263 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
12264 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
12265 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12266 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
12267 * gst/vaapi/gstvaapivideocontext.c:
12268 libs: display: GstVaapiDisplay as GstObject descendant
12269 This patch is to change the inheritance of GstVaapiDisplay to GstObject,
12270 instead of GstVaapiMiniObject. In this way we can use all the available
12271 infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
12272 In addition, a new debug category for GstVaapiDisplay is created to make it
12273 easier to trace debug messages. It is named "vaapidisplay" and it transverse
12274 all the VA display backends (DRM, GLX, EGL, Wayland, ...)
12275 This patch is a step forward to expose GstVaapiDisplay for users in a future
12277 https://bugzilla.gnome.org/show_bug.cgi?id=768266
12278 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12280 === release 1.11.0 ===
12282 2016-11-01 18:54:54 +0200 Sebastian Dröge <sebastian@centricular.com>
12285 Back to development
12287 === release 1.10.0 ===
12289 2016-11-01 18:19:32 +0200 Sebastian Dröge <sebastian@centricular.com>
12294 * gstreamer-vaapi.doap:
12297 2016-10-27 17:13:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12299 * gst/vaapi/gstvaapidecodebin.c:
12300 vaapidecodebin: resurrect disable-vpp property
12301 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12303 2016-10-27 16:32:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12305 * gst/vaapi/gstvaapidecodebin.c:
12306 vaapidecodebin: name the internal queue
12307 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12309 2016-10-27 16:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12311 * gst/vaapi/gstvaapidecodebin.c:
12312 * gst/vaapi/gstvaapidecodebin.h:
12313 vaapidecodebin: remove unused variables
12314 Since vaapipostproc is only registered if the driver supports it, all the
12315 support for dynamic loading were removed. Though some leftovers remained.
12316 https://bugzilla.gnome.org/show_bug.cgi?id=773589
12318 2016-10-27 12:53:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12320 * docs/plugins/Makefile.am:
12321 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12322 * docs/plugins/running.xml:
12323 docs: document environment variables
12324 https://bugzilla.gnome.org/show_bug.cgi?id=773544
12326 2016-10-27 12:31:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12328 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12329 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
12330 * gst/vaapi/Makefile.am:
12331 * gst/vaapi/gstvaapidecode.c:
12332 * gst/vaapi/gstvaapidecodebin.c:
12333 * gst/vaapi/gstvaapidecodedoc.c:
12334 docs: replace vaapidecode with each codec
12335 In the spirit of the codec split, this patch removes the documentation of
12336 vaapidecode and adds a page per each possible decoder.
12337 Nonetheless, only those available in the compilation system are going to be
12338 instrospected, because the rest are not registered.
12340 2016-10-27 11:06:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12342 * gst/vaapi/gstvaapipluginutil.c:
12343 * gst/vaapi/gstvaapivideobuffer.c:
12344 * gst/vaapi/gstvaapivideometa.c:
12345 docs: add missing long descriptions
12347 2016-10-25 14:32:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12349 * gst/vaapi/gstvaapipostproc.c:
12350 vaapipostproc: use GST_*_OBJECT when possible
12351 Since we can have several vaapipostproc operating in a pipeline, it is useful
12352 to know which one is generating the logging message.
12353 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12355 2016-07-19 17:00:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12357 * gst/vaapi/gstvaapidecode.c:
12358 * gst/vaapi/gstvaapidecode.h:
12359 vaapidecode: rename member to allowed_sinkpad_caps
12360 vaapidecode has a member named allowed_caps, but this name is not enough
12361 explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
12362 No functional changes were included.
12363 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12365 2016-10-20 18:12:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12367 * gst/vaapi/gstvaapiencode_h264.c:
12368 * gst/vaapi/gstvaapiencode_h265.c:
12369 * gst/vaapi/gstvaapisink.c:
12370 * gst/vaapi/gstvaapivideomemory.c:
12371 * gst/vaapi/gstvaapivideometa.c:
12372 * gst/vaapi/gstvaapivideometa_texture.c:
12373 plugins: fix code style for errors
12374 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12376 2016-10-20 17:01:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12378 * gst/vaapi/gstvaapivideomemory.c:
12379 vaapivideomemory: comment style
12380 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12382 2016-10-20 11:19:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12384 * gst/vaapi/gstvaapivideomemory.c:
12385 * gst/vaapi/gstvaapivideomemory.h:
12386 vaapivideomemory: rename input parameter
12387 In order to clarify the use of flag as input parameter, it is renamed to
12388 surface_alloc_flag, since it is used when creating a VA surface with certain
12390 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12392 2016-10-25 19:22:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12394 * gst/vaapi/gstvaapidecode.c:
12395 vaapidecode: rename element description
12396 So encoders and decoders have similar descriptions.
12397 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12399 2016-08-02 11:32:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12401 * gst/vaapi/gstvaapiencode_h264.c:
12402 * gst/vaapi/gstvaapiencode_h265.c:
12403 vaapiencode: h264, h265: rename codec name
12404 So encoder and decoders have the same codec name.
12405 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12407 2016-07-29 15:17:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12409 * gst/vaapi/gstvaapipluginbase.c:
12410 plugins: simplify code
12411 Merge two lines of variable declarations.
12412 https://bugzilla.gnome.org/show_bug.cgi?id=773497
12414 2016-10-07 18:46:22 +0900 Hyunjun Ko <zzoon@igalia.com>
12416 * gst-libs/gst/vaapi/gstvaapidecoder.c:
12417 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
12418 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12419 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12420 libs: minor correction for logical consistency
12421 GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
12422 use its methods, even though it doesn't change functionality.
12423 GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
12424 GstVaapiObject, hence its methods shall be used.
12425 https://bugzilla.gnome.org/show_bug.cgi?id=772554
12427 2016-10-19 15:39:54 +0100 Julien Isorce <j.isorce@samsung.com>
12429 * gst/vaapi/gstvaapivideomemory.c:
12430 vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
12431 In short GstFdMemory is configured to call close when using
12433 https://bugzilla.gnome.org/show_bug.cgi?id=755072
12435 2016-09-02 16:42:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12438 * gst-libs/gst/vaapi/Makefile.am:
12439 build: clean up the dlopen usage
12441 2016-10-08 14:33:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12443 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12444 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12445 encoder: h264,h265: fix regression in offset count
12446 In commit dc35dafa a bug was introduced because I assumed that
12447 GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
12448 https://bugzilla.gnome.org/show_bug.cgi?id=772259
12450 2016-10-18 17:02:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12453 docs: update README
12455 2016-09-27 17:29:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12457 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12458 libs: display: egl: remove unused header include
12459 The header gmodule.h is not used since the library dynamic loading for EGL
12460 display was removed.
12461 https://bugzilla.gnome.org/show_bug.cgi?id=772599
12463 === release 1.9.90 ===
12465 2016-09-30 13:05:20 +0300 Sebastian Dröge <sebastian@centricular.com>
12471 * gstreamer-vaapi.doap:
12474 2016-03-04 16:35:11 +0900 Vineeth TM <vineeth.tm@samsung.com>
12476 * gst/vaapi/gstvaapidecode.c:
12477 * gst/vaapi/gstvaapidecodebin.c:
12478 * gst/vaapi/gstvaapiencode_h264.c:
12479 * gst/vaapi/gstvaapiencode_h265.c:
12480 * gst/vaapi/gstvaapiencode_jpeg.c:
12481 * gst/vaapi/gstvaapiencode_mpeg2.c:
12482 * gst/vaapi/gstvaapiencode_vp8.c:
12483 * gst/vaapi/gstvaapipostproc.c:
12484 * gst/vaapi/gstvaapisink.c:
12485 vaapi: use new gst_element_class_add_static_pad_template()
12486 https://bugzilla.gnome.org/show_bug.cgi?id=763083
12487 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12489 2016-09-22 16:34:48 +0900 Hyunjun Ko <zzoon@igalia.com>
12491 * gst/vaapi/gstvaapipluginbase.c:
12492 plugins: reset textures at negotiation/shutdown
12493 When caps reconfiguration is called, the new downstream frame size might be
12494 different. Thus, if the downstream caps change,the display's texture map is
12496 In addition, during pipeline shutdown, textures in texture map have to be
12497 released, since each one have a reference to the GstVaapiDisplay object, which
12498 is a dangerous circular reference.
12499 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12500 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12502 2016-09-22 16:34:38 +0900 Hyunjun Ko <zzoon@igalia.com>
12504 * gst-libs/gst/vaapi/gstvaapidisplay.c:
12505 * gst-libs/gst/vaapi/gstvaapidisplay.h:
12506 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12507 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12508 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12509 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12510 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12511 * gst/vaapi/gstvaapivideometa_texture.c:
12512 libs: display{egl,glx}: cache GstVaapiTextures
12513 instances when created and reuse
12514 This patch improves performance when glimagesink uploads a GL texture.
12515 It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
12516 instance of GstVaapiTextureMap, so our internal texture structure can be found
12517 by matching the GL texture id for each frame upload process, avoiding the
12518 internal texture structure creation and its following destruction.
12519 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12520 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12522 2016-09-22 16:33:06 +0900 Hyunjun Ko <zzoon@igalia.com>
12524 * gst-libs/gst/vaapi/Makefile.am:
12525 * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12526 * gst-libs/gst/vaapi/gstvaapitexturemap.h:
12527 libs: vaapitexturemap: implement GstVaapiTextureMap
12528 Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
12529 reused. Internally it is a hash table.
12530 Note that it is GstObject based rather than GstVaapiObject, as part of the future
12531 converstion to GstObject of most of the code.
12532 https://bugzilla.gnome.org/show_bug.cgi?id=769293
12533 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12535 2016-09-21 09:55:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12537 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12538 encoder: vp8: Increase the allocation size for coded buffer
12539 We are not getting enough compression for some streams and
12540 encoded frame end up with more size than allocated.
12541 Assuming a compression ratio of 4, which should be good enough
12542 for holding the frames.
12543 https://bugzilla.gnome.org/show_bug.cgi?id=771528
12545 2016-09-21 09:52:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12547 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12548 encoder: vp9: Fix refresh frame flag setting
12549 While doing the mode-1 referece picture selection,
12550 the circular buffer logic was not correctly setting the
12551 refresh frame flags as per VP9 spec.
12552 Make sure refresh_flag[0] get updated correclty after
12553 each cycle of GST_VP9_REF_FRAMES.
12554 https://bugzilla.gnome.org/show_bug.cgi?id=771507
12556 2016-09-14 18:42:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12558 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12559 vaapidecode: codec_data minimal size is 7
12560 When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
12561 stream, not in the codec_data, so the size of codec_data might be 7.
12562 This patch reduces the minimal size of the codec_data buffer from 8 to 7.
12563 https://bugzilla.gnome.org/show_bug.cgi?id=771441
12565 2016-09-14 16:29:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12567 * gst/vaapi/gstvaapidecode.c:
12568 vaapidecode: reset decoder hard when set_format()
12569 set_format() is called by upstream when the stream capabilites has changed.
12570 Before, if the new stream is compatible with the old one the VA decoder was
12571 not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
12572 when the upstreamer parsers gets more details of the stream, such as the
12573 framerate. Hence, when the src caps are negotiates, the further sink caps
12574 updates are ignored.
12575 This patch forces the VA decoder destroying and recreation when set_format()
12577 https://bugzilla.gnome.org/show_bug.cgi?id=770921
12579 2016-09-14 11:31:39 +0200 Sebastian Dröge <sebastian@centricular.com>
12582 configure: Depend on gstreamer 1.9.2.1
12584 2016-09-09 12:03:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12586 * gst/vaapi/gstvaapivideomemory.c:
12587 Revert "vaapivideomemory: load VA Image when mapping to write"
12588 This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
12590 2016-09-10 20:52:21 +1000 Jan Schmidt <jan@centricular.com>
12593 Automatic update of common submodule
12594 From b18d820 to f980fd9
12596 2016-09-10 09:58:25 +1000 Jan Schmidt <jan@centricular.com>
12599 Automatic update of common submodule
12600 From f49c55e to b18d820
12602 2016-09-08 16:16:09 +0900 Hyunjun Ko <zzoon@igalia.com>
12604 * gst/vaapi/gstvaapipluginbase.c:
12605 plugins: set allocator's image size to sinkpad bufferpool
12606 Otherwise the buffer is always ditched by the bufferpool, losing performance.
12607 https://bugzilla.gnome.org/show_bug.cgi?id=771035
12609 2016-09-07 17:34:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12611 * gst-libs/gst/vaapi/gstvaapisurface.c:
12612 libs: surface: ensure composite overlay is not bigger
12613 Ensure the composition overlay rectangle (subtitles) is not bigger than
12614 the surface where it is going to be composited and rendered.
12615 https://bugzilla.gnome.org/show_bug.cgi?id=766978
12617 2016-09-07 17:51:23 +0900 Hyunjun Ko <zzoon@igalia.com>
12619 * gst/vaapi/gstvaapivideomemory.c:
12620 vaapivideomemory: load VA Image when mapping to write
12621 When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
12622 ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
12624 https://bugzilla.gnome.org/show_bug.cgi?id=766978
12626 2016-09-06 12:27:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12628 * gst/vaapi/gstvaapidecode.c:
12629 vaapidecode: merge vc1 and wmv3 elements
12630 This patch merges vaapivc1dec and vaapiwmv3dec into a single
12631 vaapivc1dec. Also, removed the WMVA format, since it is not
12632 supported by libva.
12633 https://bugzilla.gnome.org/show_bug.cgi?id=734093
12635 2016-09-06 11:19:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12637 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12638 decoder: vc1: fails only on advanced profile
12639 In commit 2eb4394 the frame coding mode was verified for progressive
12640 regardless the profile. But the FCM is only valid in the advanced
12641 profile. This patch checks for the advanced profile before verifying FCM for
12643 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12645 2016-09-01 12:39:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12647 * gst/vaapi/gstvaapi.c:
12648 vaapi: DISPLAY envvar as dependency
12649 In a multiple video cards system, a X11 environment may have different VA
12650 capabilities. This patch tracks the DISPLAY environment variable to
12651 invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
12652 https://bugzilla.gnome.org/show_bug.cgi?id=770357
12654 2016-08-26 14:55:17 -0700 Scott D Phillips <scott.d.phillips@intel.com>
12656 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12657 decoder: vc1: Fail only on actual interlaced frames
12658 In the earlier patch:
12659 f31d9f3 decoder: vc1: Print error on interlaced content
12660 Decoding would error out if the interlace flag was set in the
12661 sequence bdu. This isn't quite right because a video can have this
12662 flag set and yet not have any interlaced pictures.
12663 Here instead we error out when either parsing a field bdu or
12664 decoding a frame bdu which has fcm set to anything other than
12666 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
12667 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12669 2016-09-01 12:34:48 +0300 Sebastian Dröge <sebastian@centricular.com>
12672 Back to development
12674 === release 1.9.2 ===
12676 2016-09-01 12:34:38 +0300 Sebastian Dröge <sebastian@centricular.com>
12681 * gstreamer-vaapi.doap:
12684 2016-08-16 11:58:38 +0300 Scott D Phillips <scott.d.phillips@intel.com>
12686 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12687 decoder: vc1: Print error on interlaced content
12688 Interlaced video is as yet unsupported in the vc1 element. Print
12689 an error to make that more obvious.
12690 https://bugzilla.gnome.org/show_bug.cgi?id=769250
12692 2016-08-10 13:29:45 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12694 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12695 encoder: h264: fix C90 mixed declarations and code
12696 Commit 4259d1a introduced this compilation error. This patch fixes it.
12698 2016-07-21 17:38:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12700 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12701 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12702 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12703 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12704 encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
12705 Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
12706 to avoid overflows, underflows and loss of precision.
12707 https://bugzilla.gnome.org/show_bug.cgi?id=768458
12709 2016-07-05 20:07:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12711 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12712 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12713 vaapiencode: h264,h265: validate fps numerator
12714 Validate that fps numerator is non-zero so it can be used to calculate
12715 the duration of the B frame.
12716 Also it gst_util_uint64_scale() is used instead of normal arithmetic in
12717 order to aviod overflows, underflows and loss of precision.
12718 https://bugzilla.gnome.org/show_bug.cgi?id=768458
12720 2016-08-06 12:54:17 +0100 Tim-Philipp Müller <tim@centricular.com>
12722 * gst/vaapi/gstvaapi.c:
12723 encoders: demote to RANK_NONE since not fit for autoplugging yet
12724 Encoders claim to support a whole bunch of input formats but then
12725 just error out if the format is not actually supported, even if
12726 there's a converter in front. This means they're not fit for
12727 autoplugging in encodebin or camerabin yet and therefore should
12728 not have a rank. People can still use them in custom pipelines.
12729 https://bugzilla.gnome.org/show_bug.cgi?id=769266
12731 2016-07-19 19:24:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12733 * gst/vaapi/gstvaapipluginbase.c:
12734 plugins: check dmabuf-import for sink pad allocator
12735 Check earlier if upstream video source has activated the dmabuf-import
12736 io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
12739 2016-07-19 20:02:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12741 * gst/vaapi/gstvaapipluginbase.c:
12742 plugins: reset allocators if video info changed
12743 If the frame size or format, change, the allocators are reset, so a new ones
12744 can be created with the new video info.
12746 2016-07-19 19:27:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12748 * gst/vaapi/gstvaapipluginbase.c:
12749 plugins: remove sink pad allocator if caps change
12750 If the negotiated sinkpad caps change, destroy the assignated allocator,
12751 because it is not valid anymore.
12753 2016-07-19 20:01:05 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12755 * gst/vaapi/gstvaapipluginutil.c:
12756 * gst/vaapi/gstvaapipluginutil.h:
12757 pluginutil: const params to gst_video_info_changed()
12758 Since they are not modified, we should mark them as const.
12760 2016-07-29 15:13:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12762 * gst/vaapi/gstvaapipluginbase.c:
12763 * gst/vaapi/gstvaapivideomemory.c:
12764 * gst/vaapi/gstvaapivideomemory.h:
12765 gstvaapivideomemory: allocator's image size getter
12766 Add the method gst_allocator_get_vaapi_image_size() for the
12767 GstVaapiVideoAllocator, which gets the size of the allocated images with the
12768 current video info.
12769 This method replaces the direct call to the allocator's image info when the
12770 pool is configured.
12772 2016-07-29 18:06:30 +0900 Hyunjun Ko <zzoon@igalia.com>
12774 * gst/vaapi/gstvaapipluginbase.c:
12775 plugins: update buffer pool size with new allocator's image size
12776 Depends on media, video size is sometimes updated with new allocator.
12777 It leads to dismatch between bufferpool's set size and real allocated buffer size.
12778 In this case, it causes every buffer is freed during release in bufferpool,
12779 which should be reused. This affects performance.
12780 https://bugzilla.gnome.org/show_bug.cgi?id=769248
12782 2016-07-27 19:49:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12785 configure: remove gmodule-2.0 EGL dependency
12786 Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
12787 thus the dependency to gmodule-2.0 is not mandatory anymore.
12789 2016-07-27 10:09:38 -0700 Scott D Phillips <scott.d.phillips@intel.com>
12792 configure: Fix non-fatal PKG_CHECK_MODULES invocations
12793 Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
12794 the package is missing, but action-if-not-found was given as an empty
12795 string which still causes the default action to run, which halts
12797 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
12798 https://bugzilla.gnome.org/show_bug.cgi?id=769237
12800 2016-07-13 18:34:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12802 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12803 libs: egl: remove dynamic library loading code
12804 Since the upstream of gstreamer-vaapi, the library is not a public shared
12805 object anymore. But the EGL support depended on this dynamic library, so the
12806 EGL support was broken.
12807 This patch removes the dynamic library loading code and instantiates the
12808 EGL display using either X11 or Wayland if available.
12809 https://bugzilla.gnome.org/show_bug.cgi?id=767203
12811 2016-07-12 23:47:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12813 * gst/vaapi/gstvaapi.c:
12814 * gst/vaapi/gstvaapidecode.c:
12815 * gst/vaapi/gstvaapidecode.h:
12816 vaapidecode: register only the available decoders
12817 In order to register only the available decoders, this patch queries the
12818 created test VA display, which uses the currently used back-end (X11, Wayland,
12819 DRM, …) on the used display device.
12820 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12822 2016-06-28 11:43:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12824 * gst/vaapi/gstvaapi.c:
12825 * gst/vaapi/gstvaapipluginutil.c:
12826 * gst/vaapi/gstvaapipluginutil.h:
12827 vaapi: register only the available encoders
12828 In order to register only the available encoders, this patch queries the
12829 created test VA display, which uses the currently used back-end (X11,
12830 Wayland, DRM, …) on the used display device.
12831 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12833 2016-06-07 16:28:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12835 * gst/vaapi/gstvaapidecode.c:
12836 * gst/vaapi/gstvaapidecodebin.c:
12837 vaapidecode: split all the codecs
12838 Split the vaapidecode to all the supported codecs with the format
12840 vaapidecode is stil registered as a GObject type, but not as a
12841 GStreamer feature, so it can be used internally by vaapidecodebin without
12842 changing its code too much.
12843 https://bugzilla.gnome.org/show_bug.cgi?id=734093
12845 2016-07-12 22:19:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12847 * gst/vaapi/gstvaapidecodebin.c:
12848 vaapidecodebin: simplify the code
12849 Since the elements dependant of the VA video processor are now only registered
12850 if it is available, vaapidecodebin code can be simplified a lot, removing all
12851 the code required to check if the VA video processor was available.
12852 https://bugzilla.gnome.org/show_bug.cgi?id=768899
12854 2016-07-12 17:54:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12856 * gst/vaapi/gstvaapidecode.c:
12857 vaapidecode: delay the GstVaapiDisplay instantiating
12858 Delay the GstVaapiDisplay instantiating until when changing the state from
12859 READY to PAUSE. In this way the element has more chances to find an already
12860 created GstVaapiDisplay, or a GL context, in the pipeline.
12861 https://bugzilla.gnome.org/show_bug.cgi?id=766206
12863 2016-07-12 17:49:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12865 * gst/vaapi/gstvaapipluginutil.c:
12866 pluginutil: set GLX display type
12867 The function gst_vaapi_create_display_from_gl_context() cretes a
12868 GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
12869 when the GL platform was GLX, but a plain X11 VA display.
12870 This patch fixes that, by querying the GL platform earlier.
12871 https://bugzilla.gnome.org/show_bug.cgi?id=766206
12873 2016-06-02 19:57:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12875 * gst/vaapi/gstvaapipluginbase.c:
12876 * gst/vaapi/gstvaapivideocontext.c:
12877 * gst/vaapi/gstvaapivideocontext.h:
12878 plugins: add gst_vaapi_plugin_base_find_gl_context()
12879 Using the GstContext mechanism, it is possible to find if the pipeline
12880 shares a GstGLContext, even if we are not to negotiating GLTextureUpload
12881 meta. This is interesting because we could negotiate system memory caps
12882 feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
12883 https://bugzilla.gnome.org/show_bug.cgi?id=766206
12885 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12887 * gst/vaapi/gstvaapipluginbase.c:
12888 * gst/vaapi/gstvaapipluginbase.h:
12889 plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
12890 Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
12893 2016-07-12 18:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12895 * gst/vaapi/gstvaapipluginbase.h:
12896 plugins: remove common change_state() vmethod
12897 Remove the common change_state() vmethod for all the plugins, since no one is
12900 2016-07-12 20:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12902 * gst/vaapi/gstvaapidecode.c:
12903 vaapidecode: remove change_state() vmethod
12904 Since the driver checkup is done at registering, there is no need to do it
12905 when changing the element state from NULL to READY. This patch remove this
12906 vmethod from vaapidecode.
12908 2016-07-12 20:29:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12910 * gst/vaapi/gstvaapi.c:
12911 vaapi: register vaapipostproc only if supported
12912 Query the GstVaapiDisplay to know if the driver supports video
12913 postprocessing. If does, then register vaapipostproc and vaapidecodebin
12915 This patch will simplify the design of vaapidecodebin.
12916 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12918 2016-06-29 12:36:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12920 * gst/vaapi/gstvaapi.c:
12921 vaapi: don't register if VA driver is unsupported
12922 Using the test VA display, the driver name is queried, and if it is not
12923 white-listed, the plugin rejects to register any element.
12924 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12926 2016-06-28 17:14:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12928 * gst/vaapi/gstvaapipluginbase.c:
12929 * gst/vaapi/gstvaapipluginutil.c:
12930 * gst/vaapi/gstvaapipluginutil.h:
12931 plugins: add gst_vaapi_driver_is_whitelisted()
12932 Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
12933 new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
12934 when registering the plugin's feature set with the test VA display.
12935 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12937 2016-07-12 19:56:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12939 * gst/vaapi/gstvaapi.c:
12940 vaapi: instantiate a VA display when registering
12941 This patch tries to instantiate a GstVaapiDisplay when registering the plugin
12942 features, if it fails, no gstreamer-vaapi element is registering.
12943 The purpose of this patch is to avoid a situation where the user has
12944 gstreamer-vaapi installed but their VA-API setup is not functional, which may
12945 lead to unexpected behavior.
12946 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12948 2016-06-28 11:33:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12951 * gst/vaapi/gstvaapi.c:
12952 vaapi: declare external dependencies
12953 There are two main external dependencies that define the feature set of this
12954 plugin: a) the kernel and b) the VA driver
12955 This patch tracks both dependencies, if any of them change, GStreamer will
12956 re-inspect the plugin.
12957 The kernel is tracked through the device files /dev/dri/card*
12958 The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
12959 where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
12960 the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
12961 since they modify the driver lookup.
12962 Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
12963 https://bugzilla.gnome.org/show_bug.cgi?id=724352
12965 2016-07-19 16:02:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12967 * gst/vaapi/gstvaapidecode.c:
12968 vaapidecode: remove unneeded initializations
12969 GObject's memory is set to zero, so there is no need to initialize to zero or
12970 NULL it's class variables.
12972 2016-07-19 18:28:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12974 * gst/vaapi/gstvaapipluginbase.h:
12975 plugins: remove undefined macros
12977 2016-07-19 17:43:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12979 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
12980 Revert "gstvaapisurface_drm: release image when done"
12981 This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3 and commit
12982 372a03a9e38acbf435eb80bf31d9a9844069e504.
12983 While the dmabuf handle is exported, the derive image must exist, otherwise
12984 the image's VA buffer is invalid, thus the dmabuf handle is never released,
12985 leading into a file descriptors leak.
12987 2016-07-21 17:38:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12989 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12990 encoder: h265: fix code-style
12992 2016-07-22 16:55:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12994 * gst/vaapi/gstvaapipostproc.c:
12995 vaapipostproc: update filters at color balance
12996 This is a fix for a regression of previous commit, which updates the filters
12997 only when the property is set, because it is also required to update the
12998 filter when the color balance interface change its values.
13000 2016-07-22 12:10:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13002 * gst/vaapi/gstvaapipostproc.c:
13003 * gst/vaapi/gstvaapipostproc.h:
13004 vaapipostproc: make it enable/disable pass-through mode
13005 In case that sink caps and src caps are same, and no filtering parameter set,
13006 pass-through mode is enabled.
13007 If new filtering parameter is set during playback, it makes it reconfiguring,
13008 so that pass-through mode is changed
13009 In addition, updating filter is performed during reconfiguration, if needed.
13010 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13012 2016-07-22 11:51:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13014 * gst-libs/gst/vaapi/gstvaapifilter.c:
13015 * gst-libs/gst/vaapi/gstvaapifilter.h:
13016 * gst/vaapi/gstvaapipostproc.c:
13017 vaapipostproc: checking and updating filter parameter only when it's set
13018 This patch is to avoid checking filter value at every frame.
13019 https://bugzilla.gnome.org/show_bug.cgi?id=751876
13021 2016-07-21 11:24:31 +0300 Allen Zhang <Zhang, Zhangfei>
13023 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13024 decoder: h265: handle the SEI NAL units included in codec_data
13025 The prefix/suffix SEI nal units can appear in codec_data too
13026 which weren't handled before. Parse these SEI headers to
13028 https://bugzilla.gnome.org/show_bug.cgi?id=768544
13030 2016-07-15 16:32:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13032 * docs/plugins/Makefile.am:
13033 build: doc: do not redefine MAINTAINERCLEANFILES
13034 MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
13035 overload it, the files should be added.
13037 2016-07-15 14:41:27 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13039 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13040 encoder: h264: Fix MVC encode while enabling dct8x8
13041 Pack the transform_8x8_mode_flag and other necessary rbsp data
13042 in packed_pps header for MVC encode.
13043 https://bugzilla.gnome.org/show_bug.cgi?id=768647
13045 2016-07-12 23:58:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13047 * gst/vaapi/gstvaapisink.c:
13048 vaapisink: demote a debug message to trace
13049 Reduces noise when debugging.
13051 2016-07-13 17:21:01 +0900 Jagyum Koo <koojagyum@gmail.com>
13053 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13054 wayland: Error check before using cached wl_display
13055 A planar(or some other) buffer allocation may fail on the driver, then
13056 the wayland connection becomes invalid, not able to send request or
13057 receive any event. So we need to set up a new wayland connection if
13058 there's an error detected on the cached wl_display.
13059 https://bugzilla.gnome.org/show_bug.cgi?id=768761
13060 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13062 2016-07-11 21:15:57 +0200 Stefan Sauer <ensonic@users.sf.net>
13065 Automatic update of common submodule
13066 From ac2f647 to f49c55e
13068 2016-07-05 18:23:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13070 * gst/vaapi/gstvaapiencode.c:
13071 vaapiencode: demote a log to trace level
13072 Removes noise when debugging.
13074 2016-07-06 11:17:23 +0900 Hyunjun Ko <zzoon@igalia.com>
13076 * gst/vaapi/gstvaapiencode.c:
13077 vaapiencode: implement flush() vmethod
13078 In order to handle correctly seek and other operations, vaapiencode should
13079 flush all the remaining data from the encoder without pushing it downstream.
13080 This patch implements the flush() vmethod, only after of pausing the
13081 source pad task, and restarting it again after the flush stop.
13082 https://bugzilla.gnome.org/show_bug.cgi?id=767176
13083 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13085 2016-07-11 08:43:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13087 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13088 decoder: vc1: flush dpb only if opened
13089 Flush the decode picture buffer, if and only if, the decoder is
13090 started. Otherwise the dpb structure might be NULL.
13091 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13093 2016-07-01 14:42:20 +0900 Hyunjun Ko <zzoon@igalia.com>
13095 * gst/vaapi/gstvaapidecode.c:
13096 * gst/vaapi/gstvaapidecode.h:
13097 vaapidecode: drop non-keyframe in reverse playback
13098 To avoid surface-exhausted situation during reverse playback,
13099 drop frames except for key frame.
13100 Also, to avoid the corruption of the parser state, flush() vmethod
13101 doesn't destroy the VA decoder when playing in reverse.
13102 https://bugzilla.gnome.org/show_bug.cgi?id=742922
13103 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13105 2016-07-10 19:33:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13107 * gst/vaapi/gstvaapidecode.c:
13108 vaapidecode: unref output frame earlier
13109 The queue in GstVaapiDecode adds an extra reference to the frames. This patch
13110 unref that extra reference earlier making the code simpler to follow.
13111 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13113 2016-07-10 19:01:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13115 * gst/vaapi/gstvaapidecode.c:
13116 vaapidecode: remove gst_vaapidecode_internal_flush()
13117 As gst_vaapidecode_finish() is the only callee of
13118 gst_vaapidecode_internal_flush(), it is better to inline it.
13119 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13121 2016-07-10 18:18:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13123 * gst/vaapi/gstvaapidecode.c:
13124 vaapidecode: flush output adapter at drain()
13125 Calling drain() vmethod means "decode any data it can at this point, but that
13126 more data may arrive after". Hence, vaapidecode should check if there is data
13127 in the output adapter and process them, without destroying the decoded picture
13129 Since this operation is done by gst_vaapidecode_internal_flush(), the operation
13130 was refactored into a new function gst_vaapidecode_flush_output_adapter().
13131 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13133 2016-07-10 13:46:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13135 * gst/vaapi/gstvaapidecode.c:
13136 vaapidecode: call purge at flush()
13137 Calling flush() vmethod means "to flush all remaining data from the decoder
13138 without pushing it downstream".
13139 Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
13140 gst_video_decoder_have_frame() if there is still something in the input
13141 adapter, which may push buffers to downstream by calling handle_frame().
13142 This patch changes this behavior by calling gst_vaapidecode_purge() rather
13143 than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
13144 decoder and releases all the rest of decoded frames.
13145 https://bugzilla.gnome.org/show_bug.cgi?id=768652
13147 2016-07-06 18:38:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13149 * tests/elements/Makefile.am:
13150 * tests/elements/test-vaapisink.c:
13151 test: elements: remove spurious linkage
13152 Element tests only need to link against gstreamer libraries.
13154 2016-07-06 14:41:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13157 configure: Require GLib >= 2.40 like everywhere else
13159 2016-07-06 13:51:21 +0300 Sebastian Dröge <sebastian@centricular.com>
13162 Back to development
13164 === release 1.9.1 ===
13166 2016-07-06 13:48:07 +0300 Sebastian Dröge <sebastian@centricular.com>
13172 * gstreamer-vaapi.doap:
13175 2016-07-05 20:59:49 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13177 * tests/elements/test-vaapisink.c:
13178 tests: elements: rotate orientation event
13180 2016-07-01 16:01:54 +0900 Hyunjun Ko <zzoon@igalia.com>
13183 * tests/Makefile.am:
13184 * tests/elements/Makefile.am:
13185 * tests/elements/test-vaapisink.c:
13186 tests: elements: Add testsuite for vaapisink
13187 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13189 2016-07-01 16:00:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13191 * gst-libs/gst/vaapi/gstvaapitypes.h:
13192 * gst-libs/gst/vaapi/gstvaapivalue.c:
13193 * gst/vaapi/gstvaapisink.c:
13194 * gst/vaapi/gstvaapisink.h:
13195 vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
13196 https://bugzilla.gnome.org/show_bug.cgi?id=765798
13198 2016-06-29 13:57:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13200 * gst/vaapi/gstvaapipostproc.c:
13201 vaapipostproc: return caps template if no display
13202 This patch is a fix for my bad review of commit 6d73ca8d. The element should
13203 be able to return the available raw caps handled by the VA display, but that
13204 only should happen when there a VA display. If there's none, the element
13205 should use the caps template.
13206 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13208 2016-06-29 16:42:18 +1000 Matthew Waters <matthew@centricular.com>
13210 * gst/vaapi/gstvaapipostproc.c:
13211 vaapipostproc: don't require a vaapi display for all caps queries
13212 This delays the requirement of having a GstVaapiDisplay until later
13213 https://bugzilla.gnome.org/show_bug.cgi?id=768161
13215 2016-06-28 15:48:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13217 * gst-libs/gst/vaapi/gstvaapiutils.c:
13218 utils: report VP9 profiles
13219 Add VP9Profile0-3 name mapping.
13221 2016-06-28 14:05:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13223 * gst/vaapi/gstvaapi.c:
13224 vaapi: nest includes under USE_ENCODER macro
13225 This is a missed changeset from commit 1c05c53, since also header includes
13228 2016-06-28 11:54:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13230 * gst/vaapi/gstvaapi.c:
13231 vaapi: nest encoders under USE_ENCODER macro
13232 Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
13233 macro, it is clearer to nest them, showing explicitly the dependency relation.
13235 2016-06-24 12:05:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13237 * gst/vaapi/gstvaapivideocontext.c:
13238 vaapivideocontext: check if query context is NULL
13239 Under certain conditions the element might receive a positive context query
13240 but without a context instance. This situation will lead to a segmentation
13241 fault when traversing the context list in the pipeline.
13242 https://bugzilla.gnome.org/show_bug.cgi?id=767946
13244 2016-06-20 13:22:36 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13246 * gst-libs/gst/vaapi/Makefile.am:
13247 * gst-libs/gst/vaapi/glibcompat.h:
13248 * gst-libs/gst/vaapi/sysdeps.h:
13249 remove unused glibcompat.h
13250 glibcompat.h is no longer doing anything. Remove it.
13251 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13252 https://bugzilla.gnome.org/show_bug.cgi?id=767886
13254 2016-06-22 14:28:44 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13256 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13257 encoder: h264: Use high profile by default
13258 Change defaults for max-bframes, cabac, and dct8x8 to be enabled
13259 by default. This will cause the default profile to be high instead
13260 of baseline. In most situations this is the right decision, and
13261 the profile can still be lowered in the case of caps restrictions.
13262 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13263 https://bugzilla.gnome.org/show_bug.cgi?id=757941
13265 2016-06-22 12:15:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13267 * gst/vaapi/gstvaapidecodebin.c:
13268 vaapidecodebin: element warning if missing element
13269 Raise an element warning if a required element is not available, thus the
13270 pipeline will post a warning message and the application will be informed.
13272 2016-06-22 15:11:56 +0300 Hyunjun Ko <zzoon@igalia.com>
13274 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13275 decoder: h265: fix to release all dpb pictures
13276 Without this, all dpb pictures are not released during flush,
13277 because we used the global dpb_count variable for checking the
13278 dpb fullness which get decremented in dpb_remove_index()
13279 routine during each loop iteration.
13280 https://bugzilla.gnome.org/show_bug.cgi?id=767934
13282 2016-06-21 11:48:54 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
13285 Automatic update of common submodule
13286 From ac2f647 to f363b32
13288 2016-06-20 19:53:26 +0900 Hyunjun Ko <zzoon@igalia.com>
13290 * gst/vaapi/gstvaapidecode.c:
13291 * gst/vaapi/gstvaapipostproc.c:
13292 vaapi: fix minor leaks
13293 https://bugzilla.gnome.org/show_bug.cgi?id=767868
13295 2016-06-17 17:00:03 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13297 * gst/vaapi/gstvaapi.c:
13298 vaapi: remove an already included header
13299 gst/gst.h is already included in gstcompat.h
13301 2016-06-17 16:53:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13303 * gst/vaapi/gstvaapidecodebin.c:
13304 vaapidecodebin: add vp9 in sink pad template
13306 2016-06-15 20:19:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13308 * gst/vaapi/gstvaapisink.c:
13309 vaapisink: return caps template if no display
13310 If vaapisink received a caps query before getting a VA display, it returned
13311 only the surfaces related caps. This behavior broke the autovideosink
13313 This patch returns the pad's template caps if no VA display, otherwise the
13314 caps are crafted as before.
13315 https://bugzilla.gnome.org/show_bug.cgi?id=767699
13317 2016-06-15 11:25:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13319 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13320 decoder: vp9: Update comment about context resets
13321 Clarify that vaapi context resets are never needed for vp9, but
13322 that ensure_context() needs called when the size increases so that
13323 new surfaces can be allocated.
13324 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13325 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13327 2016-05-17 15:34:23 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13329 * gst-libs/gst/vaapi/gstvaapicontext.c:
13330 * gst-libs/gst/vaapi/gstvaapicontext.h:
13331 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13332 gstvaapicontext: control reset_on_resize with option
13333 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13334 https://bugzilla.gnome.org/show_bug.cgi?id=767474
13336 2016-06-14 09:45:22 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13338 * gst/vaapi/gstvaapivideobufferpool.c:
13339 vaapivideobufferpool: add video meta to config when needed
13340 In cases where we know the video meta must be present, add it to
13341 the pool configuration.
13342 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13343 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13345 2016-06-13 10:48:41 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13347 * gst/vaapi/gstvaapipluginbase.c:
13348 plugins: retry pool config
13349 if gst_buffer_pool_set_config returns FALSE, check the modified
13350 config and retry set_config if the config is still acceptable.
13351 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13352 https://bugzilla.gnome.org/show_bug.cgi?id=766184
13354 2016-06-08 18:42:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13356 * gst/vaapi/gstvaapivideomemory.h:
13357 vaapivideomemory: internal attributes to methods
13358 Mark as internal the functions used by VA-API dmabuf allocator.
13360 2016-06-02 15:41:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13362 * gst/vaapi/gstvaapipluginbase.c:
13363 plugins: remove precondition for decide_allocation()
13364 There's no need to check for the display in the plugin object when
13365 decide_allocation() vmethod is called, because the display will created or
13366 re-created along the method execution.
13368 2016-06-08 18:44:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13370 * gst/vaapi/gstvaapipluginbase.c:
13371 plugins: avoid possible memory leaks
13372 Get the pool config just before use it, to avoid a memory leak if the
13373 allocator cannot be instantiated. Similarly, return FALSE if the configuration
13374 cannot be set, avoid keep a not used allocator in the pool.
13376 2016-05-31 11:52:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13378 * gst/vaapi/gstvaapipluginbase.c:
13379 plugins: use GstParentBufferMeta
13380 Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
13381 use the GStreamer's GstParentBufferMeta.
13382 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13384 2016-05-31 08:26:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13386 * gst/vaapi/gstvaapipluginbase.c:
13387 plugins: cache VASurfaces from dmabufs
13388 This patch avoids the creation of a VASurface each time a new input buffer is
13389 processed, caching them in the input buffer itself.
13390 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13392 2016-05-30 23:55:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13394 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13395 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13396 * gst/vaapi/gstvaapipluginbase.c:
13397 libs: change gst_vaapi_surface_new_with_dma_buf_handle()
13398 Instead of passing the data already in GstVideoInfo, let's just pass the
13399 GstVideoInfo structure.
13400 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13402 2016-05-25 12:31:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13404 * gst/vaapi/gstvaapipluginbase.c:
13405 * gst/vaapi/gstvaapipluginbase.h:
13406 plugins: use an unique allocator per pad
13407 Instead of instantiating an allocator per vaapivideobufferpool, only one
13408 allocator is instantiated per element's pad and shared among future pools.
13409 If the pad's caps changes, the allocator is reset.
13410 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13412 2016-05-25 10:58:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13414 * gst/vaapi/gstvaapipluginbase.c:
13415 * gst/vaapi/gstvaapivideobufferpool.c:
13416 * gst/vaapi/gstvaapivideobufferpool.h:
13417 vaapivideobufferpool: share options flag with pluginbase
13418 Originally, vaapivideobufferpool has a set of boolean variables for the
13419 buffer configuration options.
13420 This pach changes these boolean variables for a single bitwise, just as
13421 it is used in pluginbase. Hence, the internal enum was moved to
13422 vaapivideobufferpool header.
13423 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13425 2016-05-10 15:57:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13427 * gst/vaapi/gstvaapipluginbase.c:
13428 plugins: add gst_vaapi_plugin_base_create_pool()
13429 This patch refactors the code in pluginbase in order to centralize the buffer
13430 pool instantiation. As the buffer pool config may have different options, these
13431 are gathered using a bitwise flag.
13432 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13434 2016-05-20 18:46:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13436 pluginbase negotiates allocator with bufferpool
13437 Originally vaapivideobufferpool instantiates its own allocator regardless the
13438 received configuration, and it relies in custom configuration options to
13439 choose which kind of allocator instantiate.
13440 This patch transfers the responsibility of the allocator instantiate to
13441 vaapipluginbase and pass it to the vaapivideobufferpool through its
13443 * gst/vaapi/gstvaapipluginbase.c
13444 + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
13445 + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
13446 bufferpool configuration
13447 + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
13449 + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
13450 allocator in bufferpool configuration
13451 * gst/vaapi/gstvaapivideobufferpool.c
13452 + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
13453 allocator, process the received one through its configuration.
13454 * gst/vaapi/gstvaapivideobufferpool.h: removed
13455 GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
13456 * gst/vaapi/gstvaapivideomemory.c
13457 + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
13458 allocator with the vaapi qdata.
13459 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13461 2016-05-20 14:39:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13463 * gst/vaapi/gstvaapivideobufferpool.c:
13464 vaapivideobufferpool: keep only current video info
13465 Instead of keeping old and new GstVideoInfo video structure, we only keep one,
13466 the current one, the negotiated. The old one is not needed at all.
13467 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13469 2016-05-23 15:38:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13471 * gst/vaapi/gstvaapipluginbase.c:
13472 * gst/vaapi/gstvaapipluginutil.c:
13473 * gst/vaapi/gstvaapipluginutil.h:
13474 * gst/vaapi/gstvaapivideomemory.c:
13475 pluginutil: add gst_video_info_force_nv12_if_encoded()
13476 This lines repeat a couple times in the code, so it would be better to put it
13478 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13480 2016-05-20 14:15:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13482 * gst/vaapi/gstvaapipluginutil.c:
13483 * gst/vaapi/gstvaapipluginutil.h:
13484 * gst/vaapi/gstvaapipostproc.c:
13485 * gst/vaapi/gstvaapivideobufferpool.c:
13486 pluginutil: add gst_video_info_changed() helper
13487 This function is shared among different elements, so let factorized it.
13488 https://bugzilla.gnome.org/show_bug.cgi?id=765435
13490 2016-06-08 10:14:16 +0900 Hyunjun Ko <zzoon@igalia.com>
13492 * gst/vaapi/gstvaapipostprocutil.c:
13493 vaapipostproc: Add colorimetry attributes to src caps
13494 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13496 2016-06-08 10:17:46 +0900 Hyunjun Ko <zzoon@igalia.com>
13498 * gst/vaapi/gstvaapidecode.c:
13499 vaapidecode: remove chroma-site and colorimetry from src caps
13500 https://bugzilla.gnome.org/show_bug.cgi?id=766596
13502 2016-06-07 14:19:50 -0700 Scott D Phillips <scott.d.phillips@intel.com>
13504 * gst/vaapi/gstvaapipostproc.c:
13505 * gst/vaapi/gstvaapipostproc.h:
13506 vaapipostproc: add postproc_lock to protect data members
13507 Add a mutex to postproc to protect concurrent access to data members.
13508 Previously set_caps() could release the allowed_srcpad_caps while
13509 transform_caps was in the middle of using it.
13510 Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13511 https://bugzilla.gnome.org/show_bug.cgi?id=766940
13513 2016-05-30 11:30:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13515 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13516 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13517 encoder: vp9: Add simple algorithms for reference picture selection
13518 Added two modes(as properties) for reference picture selection:
13519 ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
13520 and LastRef is pointing to the previous frame.
13521 ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
13522 and n-2 th frame as AltRef
13523 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13525 2016-05-30 11:25:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13527 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13528 encoder: vp9: Define Max frame width and height
13529 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13531 2016-05-30 11:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13533 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13534 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13535 encoder: vp9: Add more propertis for tuning encode quality
13536 Added three tuning properties:
13539 3: luma ac quant-table index
13540 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13542 2016-05-30 11:24:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13544 * gst/vaapi/Makefile.am:
13545 * gst/vaapi/gstvaapi.c:
13546 * gst/vaapi/gstvaapiencode_vp9.c:
13547 * gst/vaapi/gstvaapiencode_vp9.h:
13548 Add vp9 encode element to "vaapi" plugin
13549 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13551 2016-05-30 11:23:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13553 * gst-libs/gst/vaapi/Makefile.am:
13554 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13555 * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13556 Add vp9 encoder support in libgstvaapi
13557 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13559 2016-05-30 11:22:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13562 build: Add check for VP9 encode API support in libva
13563 https://bugzilla.gnome.org/show_bug.cgi?id=766048
13565 2016-05-26 11:42:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13567 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13568 gstvaapisurface_drm: fix internal documentation
13570 2016-05-26 11:41:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13572 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13573 gstvaapisurface_drm: fix code-style
13575 2016-05-25 12:28:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13577 * gst/vaapi/gstvaapipluginbase.c:
13578 plugins: remove unused header
13579 Remove the include of gst/allocators/allocators.h since it is not used.
13581 2016-05-25 10:36:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13583 * gst/vaapi/gstvaapivideobufferpool.h:
13584 vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
13585 Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
13586 keep compatibility definition.
13587 This patch removes the definition of
13588 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
13589 gst-plugins-base version 1.2.2
13591 2016-05-23 22:49:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13593 * gst/vaapi/gstvaapipluginbase.c:
13594 plugins: add gst_vaapi_buffer_pool_caps_is_equal()
13595 This is a helper function to improve the readability of
13596 ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
13599 2016-05-24 16:29:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13601 * gst/vaapi/gstvaapipluginbase.c:
13602 plugins: deactivate buffer pool before unref
13603 This buffer pool may still be processing buffers when a caps renegotiation is
13604 done. This one-liner patch deactivates the pool to drain it before it
13607 2016-05-24 16:22:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13609 * gst/vaapi/gstvaapipluginbase.c:
13610 plugins: no sinkpad bufferpool when decoder
13611 Right now, the decoders create a buffer pool for their sink pad which is not
13612 used at all, because the decoders have never proposed it to upstream.
13613 This patch avoids the buffer pool instantiating when the element inherits from
13614 the GstVideoDecoder class.
13616 2016-05-24 13:39:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13618 * gst/vaapi/gstvaapipluginbase.c:
13619 plugins: avoid to get/set pool config twice
13620 This patch is a bit of optimization, since the bufferpool configuration is get
13621 when the pool is created. Hence, we only need to request it when the pool from
13622 the allocation query is reused.
13624 2016-05-13 13:14:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13626 * gst/vaapi/gstvaapipluginbase.c:
13627 plugins: destroy pool earlier if non-vaapi
13628 If the offered pool in decide_allocation() vmethod doesn't have the
13629 VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
13630 so it could be created later.
13632 2016-05-23 22:30:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13634 * gst/vaapi/gstvaapivideobufferpool.c:
13635 vaapivideobufferpool: split caps validation
13636 When validating the caps from bufferpool config, this patch distinguishes the
13637 error from no caps received (NULL) from the invalid caps (cannot be converted
13638 into GstVideoInfo structure).
13640 2016-05-23 22:21:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13642 * gst/vaapi/gstvaapidecode.c:
13643 * gst/vaapi/gstvaapipluginbase.c:
13644 plugins: check for caps in query earlier
13645 Check for caps as soon gst_query_parse_allocation() returns.
13647 2016-05-23 23:13:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13649 * gst/vaapi/gstvaapipluginbase.c:
13650 * gst/vaapi/gstvaapipluginbase.h:
13651 plugins: remove unused variables
13652 This variables stopped to be used since commit 001a5c63, which removed the
13655 2016-05-23 18:47:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13657 * gst/vaapi/gstvaapipluginbase.c:
13658 plugins: fix potential memleak from commit 9159328
13659 If gst_video_info_from_caps() fails it is required to unref the instantiated
13662 2016-05-23 18:04:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13664 * gst/vaapi/gstvaapipostproc.c:
13665 vaapipostproc: handle if gst_video_info_from_caps() fails
13666 Return FALSE is the received caps cannot be transformed into a GstVideoInfo
13669 2016-05-23 17:55:35 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13671 * gst/vaapi/gstvaapipluginbase.c:
13672 plugins: handle if gst_video_info_from_caps() fails
13673 Let's play safe and return error if, somehow, the received caps are wrong.
13675 2016-05-23 17:47:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13677 * gst/vaapi/gstvaapipluginbase.c:
13678 plugins: relate errors to instance
13679 Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
13680 will show the name of the vaapipluginbase instance that failed.
13681 Also, the code-style is fixed, where some error labels need to be surrounded
13684 2016-05-20 21:01:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13686 * gst/vaapi/gstvaapipluginbase.c:
13687 * gst/vaapi/gstvaapipluginutil.c:
13688 * gst/vaapi/gstvaapisink.c:
13689 plugins: use GstVideoInfo accessors
13690 Instead of access to GstVideInfo members directly, use their accessors
13691 macros. This patch makes more resistance to future changes in GStreamer core.
13693 2016-05-20 19:33:39 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13695 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13696 * gst/vaapi/gstvaapipluginbase.c:
13697 * gst/vaapi/gstvaapipostproc.c:
13698 * tests/simple-encoder.c:
13699 remove spurious gst_video_info_init()
13700 gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
13701 gst_video_info_init(), hence it is not required to call it before them. This
13702 patch removes these spurious calls.
13704 2016-05-20 19:15:11 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13706 * gst/vaapi/gstvaapipluginbase.c:
13707 vaapipluginbase: code-style: rename goto label
13708 The error labels have error_ prefix, but this one.
13710 2016-05-19 16:34:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13712 * gst/vaapi/gstvaapivideomemory.c:
13713 vaapivideomemory: use allocator custom alloc flag
13714 Instead of a dummy alloc() vmethod, the allocator instance set the flag
13715 GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
13716 gst_allocator_alloc() on the allocator.
13718 2016-05-06 13:17:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13720 * gst/vaapi/gstvaapivideobufferpool.c:
13721 vaapivideobufferpool: relate errors to instance
13722 Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
13723 the vaapivideobufferpool instance that failed.
13725 2016-05-10 16:14:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13727 * gst/vaapi/gstvaapipluginbase.c:
13728 plugins: remove gst_vaapi_plugin_base_set_pool_config()
13729 This function helper make sense for GStreamer 1.2, but it is not helpful for
13730 greater version since the validation is already done in the API implementation.
13731 Thus, it is removed.
13733 2016-05-18 17:05:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13735 * gst/vaapi/gstvaapipluginbase.c:
13736 gstvaapipluginbase: Fix typo in doc
13738 2016-05-13 11:45:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13740 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13741 encoder : h264: Disable b-frame encode in low-power mode
13742 This is a workaround since vaapi-intel-driver doesn't have
13743 support for B-frame encode when utilizing low-power-enc
13745 Fixme :We should query the VAConfigAttribEncMaxRefFrames
13746 instead of blindly disabling b-frame support and set b/p frame count,
13747 buffer pool size etc based on the query result.
13748 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13750 2016-05-13 11:44:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13752 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13753 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13754 encoder: h264 : Use "tune=low-power" for enabling lowpower encode
13755 Remove the duplicate property "low-power-enc" and use the
13756 tune property for enabling low power encoding mode.
13757 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13759 2016-05-11 12:06:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13761 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13762 gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
13763 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13765 2016-05-11 12:05:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13767 * gst-libs/gst/vaapi/gstvaapiencoder.c:
13768 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13769 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13770 encoder: h264: Add support of low power/high performance encoding mode
13771 Added a new property "low-power-enc" for enabling low power
13772 encoding mode. Certain encoding tools may not be available
13773 with the VAEntrypointEncSliceLP.
13774 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13776 2016-05-11 12:04:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13778 * gst-libs/gst/vaapi/gstvaapitypes.h:
13779 * gst-libs/gst/vaapi/gstvaapiutils.c:
13780 * gst-libs/gst/vaapi/gstvaapivalue.c:
13781 Add mapping for Macroblock level rate control (VA_RC_MB)
13783 2016-05-11 12:03:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13785 * gst-libs/gst/vaapi/gstvaapidisplay.c:
13786 gstvaapidisplay: Add VAEntrypointEncSliceLP support
13787 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13789 2016-05-11 11:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13791 * gst-libs/gst/vaapi/gstvaapiprofile.c:
13792 * gst-libs/gst/vaapi/gstvaapiprofile.h:
13793 gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
13794 This is for implementations that supports low_power/high_performance
13795 variant for slice level encode.
13796 https://bugzilla.gnome.org/show_bug.cgi?id=766050
13798 2016-05-05 18:23:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13800 * gst/vaapi/gstvaapipostprocutil.c:
13801 vaapipostproc: negotiate frame size fixation
13802 Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
13803 using the sink caps, also it use the next capsfilter.
13804 This code is a shameless copy of gst_video_scale_fixate_caps() from
13805 https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
13806 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13808 2016-05-06 10:50:10 +0200 Scott D Phillips <scott.d.phillips@intel.com>
13810 * gst/vaapi/gstvaapipostprocutil.c:
13811 vaapipostproc: don't use GstVideoInfo for src caps
13812 Instead of using gst_video_info_to_caps () to generated the fixed src caps,
13813 this patch enables the first step for caps negotiation with a possible
13814 following caps filter.
13815 _get_preferred_caps() will traverse the possible src caps looking for the one
13816 wit the preferred feature and the preferred color format. Then the color
13817 format, the frame size and the frame rate are fixated.
13818 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13820 2016-05-05 15:32:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13822 * gst/vaapi/gstvaapipostproc.c:
13823 * gst/vaapi/gstvaapipostprocutil.c:
13824 * gst/vaapi/gstvaapipostprocutil.h:
13825 vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
13826 Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
13827 No functional changes.
13828 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13830 2016-05-05 15:19:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13832 * gst/vaapi/gstvaapipostproc.c:
13833 vaapipostproc: simplify code
13834 Change a convoluted snippet to find the preferred color format in the peer
13836 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13838 2016-05-05 15:16:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13840 * gst/vaapi/gstvaapipostproc.c:
13841 vaapipostproc: use othercaps for preferred caps
13842 Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
13843 from fixate_caps() vmethod to find the preferred caps feature and color
13845 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13847 2016-05-05 13:46:11 +0200 Scott D Phillips <scott.d.phillips@intel.com>
13849 * gst/vaapi/gstvaapipostproc.c:
13850 vaapipostproc: add fixate_caps() vmethod
13851 Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
13852 implements the fixate_caps() vmethod and moves code around.
13853 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13855 2016-05-05 12:07:59 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13857 * gst/vaapi/Makefile.am:
13858 * gst/vaapi/gstvaapipostproc.c:
13859 * gst/vaapi/gstvaapipostprocutil.c:
13860 * gst/vaapi/gstvaapipostprocutil.h:
13861 vaapipostproc: set early properties restrictions
13862 When running transform_caps() vmethod, returning the srcpad caps, the caps are
13863 early restricted to the element properties set: width, height, format and
13865 A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
13867 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13869 2016-04-25 13:45:04 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13871 * gst/vaapi/gstvaapipostproc.c:
13872 vaapipostproc: log the caps transformation
13873 https://bugzilla.gnome.org/show_bug.cgi?id=758548
13875 2016-04-27 21:20:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13877 * gst/vaapi/gstvaapipostproc.c:
13878 vaapipostproc: no GLTextureUpload in sinkpad
13879 As the vaapipostproc does not process frames with the VideoGLTextureUpload
13880 meta, the feature is removed from the sink pad template.
13881 https://bugzilla.gnome.org/show_bug.cgi?id=765931
13883 2015-09-28 08:49:39 +0100 Julien Isorce <j.isorce@samsung.com>
13885 * gst/vaapi/gstvaapivideobufferpool.c:
13886 vaapibufferpool: do not create texture upload meta if dmabuf
13887 https://bugzilla.gnome.org/show_bug.cgi?id=755072
13889 2016-05-06 12:16:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13892 build: update git.mk
13894 2016-04-29 13:11:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13896 * gst/vaapi/gstvaapipluginbase.h:
13897 plugin: fix macro processor check
13898 Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
13899 defined in config.h, but it would be 0 or 1 depending on the configure output.
13900 https://bugzilla.gnome.org/show_bug.cgi?id=765702
13902 2016-04-29 12:53:06 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13904 * tests/test-display.c:
13905 tests: display: guard possible unused variables
13906 https://bugzilla.gnome.org/show_bug.cgi?id=765702
13908 2016-04-29 12:48:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13914 * tests/simple-decoder.c:
13915 * tests/test-decode.c:
13916 * tests/test-display.c:
13917 * tests/test-filter.c:
13918 * tests/test-h264.c:
13919 * tests/test-jpeg.c:
13920 * tests/test-mpeg2.c:
13921 * tests/test-mpeg4.c:
13922 * tests/test-subpicture-data.c:
13923 * tests/test-subpicture.c:
13924 * tests/test-surfaces.c:
13925 * tests/test-textures.c:
13926 * tests/test-vc1.c:
13927 * tests/test-windows.c:
13928 tests: inforce gstreamer code-style
13930 2016-04-27 17:10:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13932 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13933 encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
13934 It seems driver requires enablement of cu_qp_delta_enabled_flag
13935 for modifying QP values to controll the CBR mode bitrate.
13936 https://bugzilla.gnome.org/show_bug.cgi?id=749852
13938 2016-04-27 17:06:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13940 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13941 encoder: h265: Add CBR Encoding support
13942 https://bugzilla.gnome.org/show_bug.cgi?id=749852
13944 2015-11-27 05:09:10 +0000 Julien Isorce <j.isorce@samsung.com>
13946 * gst-libs/gst/vaapi/gstvaapisurface.c:
13947 gstvaapisurface: explicitely clear TILING flag if dmabuf
13948 https://bugzilla.gnome.org/show_bug.cgi?id=755072
13950 2015-10-04 23:44:16 +0100 Julien Isorce <j.isorce@samsung.com>
13952 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13953 gstvaapisurface_drm: release image when done
13954 Otherwise intel-vaapi-driver will fail to process the exported surface because
13955 it will find it is currently derived, so considered as busy.
13956 https://bugzilla.gnome.org/show_bug.cgi?id=755072
13958 2015-09-26 06:25:12 +0100 Julien Isorce <j.isorce@samsung.com>
13960 * gst/vaapi/gstvaapipostproc.c:
13961 vaapipostproc: already have a surface proxy if dmabuf
13962 https://bugzilla.gnome.org/show_bug.cgi?id=755072
13964 2016-03-11 08:58:51 +0000 Julien Isorce <j.isorce@samsung.com>
13966 * gst/vaapi/gstvaapipostproc.c:
13969 2016-04-21 15:14:47 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13971 * gst/vaapi/gstvaapidecode.c:
13972 * gst/vaapi/gstvaapipluginbase.c:
13973 * gst/vaapi/gstvaapipluginbase.h:
13974 vaapidecode: search driver in whitelist
13975 If the backend driver vendor string is not in a white-list, and the
13976 environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
13977 change it state from NULL to READY, hence the auto-plug mechanism will look
13978 for another decoder.
13979 This patch assumes the GstContext has already being shared along the pipeline
13980 and the element has a valid GstVaapiDisplay instance.
13981 https://bugzilla.gnome.org/show_bug.cgi?id=764673
13983 2016-04-21 12:57:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13985 * gst/vaapi/gstvaapidecode.c:
13986 * gst/vaapi/gstvaapiencode.c:
13987 * gst/vaapi/gstvaapipluginbase.c:
13988 * gst/vaapi/gstvaapipluginbase.h:
13989 * gst/vaapi/gstvaapipostproc.c:
13990 * gst/vaapi/gstvaapisink.c:
13991 plugins: rework set_context() vmethod definition
13992 In bug 757598 was added the set_context() vmethod chain up in
13993 GstVaapiPluginBase. But it is buggy, since the parent_class address is
13994 assigned to the last element which called gst_vaapi_plugin_base_class_init().
13995 No error has shown up since none of the element's base classes redefined
13996 set_context() vmethod from GstElement, so always the correct function was
13997 called. Still this code is wrong and this patch make it right.
13998 Since set_context() is the same code, a macro is used to implement that code
13999 in all the gst-vaapi elements.
14000 https://bugzilla.gnome.org/show_bug.cgi?id=765368
14002 2016-04-15 17:57:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14004 * gst/vaapi/gstvaapipostproc.c:
14005 vaapipostproc: resize if negotiated and allocation caps are different
14006 Since commit 859a2b2, in vaapidecode, allocation query can be different from
14007 the negotiated caps.
14008 When connecting the vaapidecoder to the vaapipostprocessor, the last one will
14009 resize the frame to the negotiated, if and only if, some other parameter is
14010 activated to avoid the passthrough. If it is not, the surface won't be mapped
14011 into a image. If not, the image won't be resized and the output buffer would be
14013 This patch will break the passthrough if the allocation query is different
14014 from the negotiation caps, forcing the resizing.
14015 https://bugzilla.gnome.org/show_bug.cgi?id=765095
14017 2016-04-05 13:09:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14019 * gst/vaapi/gstvaapidecode.c:
14020 vaapidecode: improve code readability
14021 No functional changes.
14023 2016-04-05 13:37:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14025 * gst/vaapi/gstvaapidecode.c:
14026 vaapidecode: move GstCapsFeatures near to its use
14027 Move the handling of the GstCapsFeatures just after it is used, in order to
14028 avoid handling its memory.
14030 2016-04-05 13:07:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14032 * gst/vaapi/gstvaapidecode.c:
14033 vaapidecode: caps negotiation checks
14034 Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
14035 compiled with GL support.
14037 2016-03-10 16:43:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14039 * gst/vaapi/gstvaapidecode.c:
14040 * gst/vaapi/gstvaapipluginbase.c:
14041 * gst/vaapi/gstvaapipluginbase.h:
14042 * gst/vaapi/gstvaapipostproc.c:
14043 plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
14045 2016-03-10 16:42:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14047 * gst/vaapi/gstvaapidecode.c:
14048 vaapidecode: bail early if not caps in decide_allocation()
14050 2016-03-29 14:17:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14052 * gst/vaapi/gstvaapidecode.c:
14053 * gst/vaapi/gstvaapipluginbase.c:
14054 * gst/vaapi/gstvaapipluginutil.c:
14055 * gst/vaapi/gstvaapipluginutil.h:
14056 * gst/vaapi/gstvaapipostproc.c:
14057 plugin: use allowed caps filter from element
14058 Instead of using the srcpad template caps for filtering the peer caps, the
14059 function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
14060 for the element's allowed caps.
14061 With this modification, the vaapipostproc element simplifies a bit its code.
14062 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14064 2016-04-18 17:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14066 * gst/vaapi/gstvaapidecode.c:
14067 * gst/vaapi/gstvaapipluginbase.c:
14068 * gst/vaapi/gstvaapipluginutil.c:
14069 * gst/vaapi/gstvaapipluginutil.h:
14070 * gst/vaapi/gstvaapipostproc.c:
14071 plugin: remove function parameter
14072 The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
14073 saved if the out format is used for both: in and out. Thus the code is more
14075 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14077 2016-04-18 17:17:58 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14079 * gst/vaapi/gstvaapidecode.c:
14080 vaapidecode: warns if driver will do color conversions
14081 If the downstream feature is system memory, the surface has to be mapped,
14082 hence a warning message is logged saying that the driver has to do color
14083 conversions. This might be troublesome because not all the color conversion
14084 combinations are supported by the VA-API drivers, and there is not a reliable
14085 way to know them before hand.
14086 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14088 2016-03-29 13:28:27 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14090 * gst/vaapi/gstvaapipluginutil.c:
14091 plugin: honour negotiated format
14092 Instead of setting the requested format by the caller, the function
14093 gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
14094 the negotiated format.
14095 A new helper function was added: gst_vaapi_find_preferred_format(), which,
14096 given the format list from the negotiated caps, will choose the best one, if
14097 possible, given the native format.
14098 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14100 2016-03-28 19:26:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14102 * gst/vaapi/gstvaapipluginutil.c:
14103 plugin: simplify caps feature selection
14104 This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
14105 Instead of intersecting custom caps to find the preferred feature, the peer
14106 caps are traversed in order to find the preferred feature, according to an
14107 ordered feature priority list.
14108 In the case of GLTextureUploadMeta, the colour format is computed using
14109 GstVideoInfo of the selected fixed caps.
14110 https://bugzilla.gnome.org/show_bug.cgi?id=765223
14112 2016-03-31 16:39:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14114 * gst/vaapi/gstvaapidecode.c:
14115 vaapidecode: use macros for GstVideoInfo
14116 Instead of accessing directly to the members of the structure, use the macros.
14118 2016-04-14 17:02:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14120 * gst/vaapi/gstvaapidecode.c:
14121 vaapidecode: refactor is_display_resolution_changed()
14122 Make the comparisons more readable and simple.
14123 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14125 2016-04-14 16:43:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14127 * gst/vaapi/gstvaapidecode.c:
14128 * gst/vaapi/gstvaapidecode.h:
14129 vaapidecode: keep only display_{width,height}
14130 Instead of keeping the structure GstVideoInfo when we are using its width and
14131 height, we only keep these two guints.
14132 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14134 2016-04-14 16:31:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14136 * gst/vaapi/gstvaapidecode.c:
14137 vaapidecode: decoded_info is valid at src caps update
14138 As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
14139 is called, then we don't need to verify or replace it with the sinkpad info
14141 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14143 2016-04-14 16:22:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14145 * gst/vaapi/gstvaapidecode.c:
14146 vaapidecode: always a valid format in decoded_info
14147 Always set a valid format in decoded_info class variable.
14148 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14150 2016-03-25 15:31:28 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14152 * gst/vaapi/gstvaapidecode.c:
14153 vaapidecode: code style fixes
14154 No functional changes.
14155 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14157 2016-04-14 16:10:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14159 * gst/vaapi/gstvaapidecode.c:
14160 vaapidecode: init {decoded,display}_info at open()
14161 It is required to initialize {decoded,display}_info variables when the decoder
14162 is open, not only at instance initialization.
14163 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14165 2016-03-28 15:30:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14167 * gst/vaapi/gstvaapidecode.c:
14168 * gst/vaapi/gstvaapidecode.h:
14169 vaapidecode: remove spurious class variables
14170 active, do_pool_renego and do_outstate_renego class variables were used to
14171 indicate when negotiate downstream once, but now that each time a new surface
14172 resolution is pop out a renegotation verified, these variable are not required
14174 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14176 2016-04-14 15:46:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14178 * gst/vaapi/gstvaapidecode.c:
14179 * gst/vaapi/gstvaapipluginbase.c:
14180 * gst/vaapi/gstvaapipluginbase.h:
14181 * gst/vaapi/gstvaapipostproc.c:
14182 remove custom allocation query
14183 When resolving bug 753914, a custom allocation query was added, overlapping
14184 the responsibilities of GstVideoDecoder.
14185 But with the merge of the patches from bug 764421 this overlapping was not
14186 required anymore. This patch restores this situation setting the
14187 allocation_caps in the GstVideoCodecState when needed.
14188 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14190 2016-04-14 10:04:47 +0100 Julien Isorce <j.isorce@samsung.com>
14193 Automatic update of common submodule
14194 From 6f2d209 to ac2f647
14196 2016-04-13 15:44:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14198 * gst/vaapi/gstvaapidecode.c:
14199 * gst/vaapi/gstvaapidecodebin.c:
14200 * gst/vaapi/gstvaapipostproc.c:
14201 plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
14202 The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
14203 their caps templates if they were not compiled either with GLX or EGL support.
14205 2016-04-13 20:33:32 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14207 * gst/vaapi/gstvaapipluginutil.c:
14208 plugins: fix compilation when EGL/GLX is disabled
14209 The compiler might complain of gst_vaapi_create_display_from_handle() being
14210 unused if both EGL and GLX are disabled. This patch avoid that compilation
14213 2016-04-13 14:09:00 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
14215 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14216 libs: fix deleting a GstVaapiCodedBufferPool object
14217 Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
14218 Otherwise it is not called when the pool is destroyed and all objects
14219 referenced by the GstVaapiVideoPool are never released.
14220 https://bugzilla.gnome.org/show_bug.cgi?id=764993
14222 2016-04-07 18:03:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14224 * gst-libs/gst/vaapi/gstvaapisurface.c:
14225 surface: destroy derived image
14226 If gst_vaapi_image_new_with_image() fails, the created derived image should be
14227 destroyed, otherwise the surface cannot be processed because is being used.
14228 https://bugzilla.gnome.org/show_bug.cgi?id=764607
14230 2016-03-18 20:00:52 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14232 * gst/vaapi/gstvaapidecode.c:
14233 vaapidecode: add stop function
14234 Clear any status on the current stream:
14235 stored frames, caps and decoder configuration
14236 https://bugzilla.gnome.org/show_bug.cgi?id=763460
14238 2016-04-01 14:00:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14240 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14241 decoder: vp9: Align with the ABI changes in vp9 codecparser
14242 The subsampling_x, subsampling_y, bit_depth, color_space and color_range
14243 fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
14244 These fields are only present in keyframe or intra-only frame, no need to
14245 duplicate them for inter-frames.
14246 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14248 2016-04-01 13:59:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14250 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14251 decoder: vp9 : Add 10bit decoding support (Profile2)
14252 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14254 2016-04-01 13:57:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14256 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14257 * gst-libs/gst/vaapi/gstvaapiprofile.h:
14258 gstvaapiporfile: Add more VP9 profile definitions
14259 https://bugzilla.gnome.org/show_bug.cgi?id=764082
14261 2016-02-03 20:34:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14265 build: possibility to disable tests
14266 The configuration option --disable-examples will disable the compilation of
14267 the sample apps in tests/ directory.
14269 2016-03-29 14:25:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14271 * gst/vaapi/gstvaapiencode_h264.c:
14272 * gst/vaapi/gstvaapiencode_h265.c:
14273 * gst/vaapi/gstvaapiencode_jpeg.c:
14274 * gst/vaapi/gstvaapiencode_mpeg2.c:
14275 * gst/vaapi/gstvaapiencode_vp8.c:
14276 * gst/vaapi/gstvaapipluginutil.h:
14277 * gst/vaapi/gstvaapisink.c:
14278 unify caps template for VAAPI encoders and decoders
14279 There is no difference in VAAPI surface caps between encoders and decoders.
14280 Thus, the patch makes a simplification by removing encoders specific caps and
14281 shares the same definition of VAAPI surfaces caps for all the elements.
14283 2016-03-10 17:42:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14285 * gst/vaapi/gstvaapidecode.c:
14286 vaapidecode: move gst_vaapidecode_negotiate() code
14287 With it we can remove a function declaration, making the code a bit
14289 https://bugzilla.gnome.org/show_bug.cgi?id=764316
14291 2016-03-29 13:50:00 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14293 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14294 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14295 * gst/vaapi/gstvaapidecode.c:
14296 docs: generate vaapijpegdec documentation
14297 https://bugzilla.gnome.org/show_bug.cgi?id=764314
14299 2016-03-30 14:37:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14301 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14302 decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
14303 The array_completeness, reserved bit and num_nal_units fields
14304 in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
14305 but not for each occurance of similar headers.
14306 https://bugzilla.gnome.org/show_bug.cgi?id=764274
14308 2016-03-29 15:34:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14310 * gst-libs/gst/vaapi/video-format.c:
14311 video-format: Keep the HW order preference while mapping to GstVideoFormats
14313 2016-03-29 15:02:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14315 * gst/vaapi/gstvaapidecode.c:
14316 * gst/vaapi/gstvaapipluginbase.c:
14317 * gst/vaapi/gstvaapipluginutil.c:
14318 * gst/vaapi/gstvaapipluginutil.h:
14319 * gst/vaapi/gstvaapivideomemory.c:
14320 gst/vaapi: keep precedence for NV12 over I420
14321 Use NV12 as default "assumption" format all over.
14322 NV12 is the default high priority format used my most of the
14325 2016-03-29 14:34:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14327 * gst/vaapi/gstvaapidecode.c:
14328 vaapidecode: Use video format derived from decoded surface as default src pad format
14329 Use the surface format derived from first decoded surface
14330 to negotiate the downstream video format capabilities.
14331 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14333 2016-03-29 14:34:00 +0300 Scott D Phillips <scott.d.phillips@intel.com>
14335 * gst-libs/gst/vaapi/gstvaapiimage.c:
14336 * gst-libs/gst/vaapi/video-format.c:
14337 * gst/vaapi/gstvaapidecode.c:
14338 * gst/vaapi/gstvaapipluginutil.h:
14339 * gst/vaapi/gstvaapisink.c:
14340 Add P010 video format support
14341 The P010 video format is the native format used by the vaapi intel driver
14342 for HEVCMain10 decode . Add support for planes and images of this video format.
14343 https://bugzilla.gnome.org/show_bug.cgi?id=759181
14345 2016-03-27 09:11:00 +0000 Stephen <elfarto@elfarto.com>
14347 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14348 libs: x11: allows 30-bit colour depth
14349 The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
14350 fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
14351 with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
14353 https://bugzilla.gnome.org/show_bug.cgi?id=764256
14355 2016-03-28 13:13:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14357 * gst/vaapi/gstvaapivideometa_texture.c:
14358 gltextureupload: use an array for texture type
14359 Instead of using a single value for the texture type, use an array with 4
14360 elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
14362 https://bugzilla.gnome.org/show_bug.cgi?id=764231
14364 2016-03-24 15:09:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14366 * gst/vaapi/gstvaapidecode.c:
14367 * gst/vaapi/gstvaapipluginbase.c:
14368 vaapidecode: Fix decide_allocation handling
14369 Set the already configured pool in decide_allocation query
14370 in cases where pool renegotiation is not required.
14371 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14373 2016-03-24 15:09:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14375 * gst/vaapi/gstvaapidecode.c:
14376 vaapidecode: Derive and save the decoded surface format
14377 After the decoding of first frame, try to extract the exact
14378 decoded surface format using vaDeriveImage and keep this
14379 as the format in decoded_info.
14380 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14382 2016-03-24 15:08:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14384 * gst/vaapi/gstvaapidecode.c:
14385 * gst/vaapi/gstvaapidecode.h:
14386 * gst/vaapi/gstvaapipluginbase.c:
14387 * gst/vaapi/gstvaapipluginbase.h:
14388 * gst/vaapi/gstvaapipostproc.c:
14389 Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
14390 -- Maintaing decoded surface resoluton and actual display resoultion separately
14391 -- Before pushing every frames downstream, check for the requirement of pool negoation and
14392 output_state negotiation: This is needed to avoid multiple issuses with cropping,
14393 multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
14394 possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
14395 We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
14396 This is slight overhead, but safe enough. Optimization could be possible though.
14397 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14399 2016-03-24 15:08:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14401 * gst/vaapi/gstvaapidecode.c:
14402 vaapidecode: Delay the output format setting until we have a decoded surface
14403 This will help to consoidate the out caps negotiation to a single place,
14404 which will make the code simpler, allows to get the exact decoded format
14405 if needed and the selected chroma type too.
14406 https://bugzilla.gnome.org/show_bug.cgi?id=753914
14408 2016-03-24 13:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14410 * gst/vaapi/gstvaapidecode.h:
14411 vaapidecode: GST_VAAPIDECODE macro is a cast
14412 This patch is the continuation of commit 1e1d3b1d because the function
14413 gst_vaapidecode_get_type() got undefined since then.
14414 Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
14415 structure. The rest of the GObject handling macros were deleted too.
14417 2016-03-24 13:34:18 +0200 Sebastian Dröge <sebastian@centricular.com>
14420 Back to development
14422 === release 1.8.0 ===
14424 2016-03-24 13:11:05 +0200 Sebastian Dröge <sebastian@centricular.com>
14429 * gstreamer-vaapi.doap:
14432 === release 1.7.91 ===
14434 2016-03-15 12:39:20 +0200 Sebastian Dröge <sebastian@centricular.com>
14439 * gstreamer-vaapi.doap:
14442 2016-03-11 17:44:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14444 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14445 decoder: h265: Fix offset calculation in codec_data parsing
14446 https://bugzilla.gnome.org/show_bug.cgi?id=762922
14448 2016-03-09 20:26:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14450 * gst/vaapi/gstvaapidecodebin.c:
14451 vaapidecodebin: don't handle jpeg decoding
14452 As JPEG decoder has been split and demoted, it cannot be handled by
14454 Added a fixme comment regarding the future removal of vaapidecode.
14455 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14457 2016-03-09 20:25:08 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14459 * gst/vaapi/gstvaapidecode.c:
14460 vaapidecode: split out jpeg decoder
14461 Split, as a different element, the JPEG decoder.
14462 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14464 2016-03-09 18:41:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14466 * gst/vaapi/gstvaapi.c:
14467 * gst/vaapi/gstvaapidecode.c:
14468 * gst/vaapi/gstvaapidecode.h:
14469 vaapidecode: register decoder with internal GType
14470 Don't expose the the vaapidecode GType, instead expose a function
14471 which will register element.
14472 This is the first step to split the decoder by codecs.
14473 https://bugzilla.gnome.org/show_bug.cgi?id=734093
14475 2016-03-10 12:47:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14477 * gst/vaapi/gstvaapidecode.c:
14478 vaapidecode: remove unused function declaration
14479 There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
14480 code-style of the other pre-declared functions.
14482 2016-03-09 18:58:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14484 * docs/plugins/Makefile.am:
14485 build: git ignore gtkdoc generated files
14487 2016-03-09 18:55:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14490 build: handle git ignore in m4 directory
14492 2016-03-04 20:17:54 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14494 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14495 vaapidecoder_h265: plug leak of h265 parsing info
14496 If something goes wrong while parsing, the info object is
14498 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14500 2016-03-04 20:17:20 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14502 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14503 vaapidecoder_h264: plug leak of h264 parsing info
14504 If something goes wrong while parsing, the info object is
14506 https://bugzilla.gnome.org/show_bug.cgi?id=763121
14508 2016-03-09 11:03:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
14510 * gst/vaapi/gstvaapipluginutil.c:
14511 plugins: fix gstgl and vaapi memory leaks
14512 1\ Unref gl_display and gl_window as soon they are not needed.
14513 2\ Remove an unneeded display type check, since is handled by
14514 gst_vaapi_created_display_from_handle()
14515 3\ Unref vaapi's display if the display cannot be bind to a GL API.
14516 Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14517 https://bugzilla.gnome.org/show_bug.cgi?id=763354
14519 2016-03-09 14:13:24 +0900 Vineeth TM <vineeth.tm@samsung.com>
14521 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14522 vaapidisplay: Fix uninitialized value error for VA attribute
14523 https://bugzilla.gnome.org/show_bug.cgi?id=763362
14525 2016-03-08 10:47:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14527 * gst/vaapi/gstvaapidecode.c:
14528 * gst/vaapi/gstvaapiencode.c:
14529 plugins: proxy information from downstream caps
14530 Propagate to upstream the downstream information, such as fps, par, etc.
14531 This will fix several "getcaps" critical warnings in gst-validate.
14532 https://bugzilla.gnome.org/show_bug.cgi?id=763300
14534 2016-03-04 10:51:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14536 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14537 decoder: vp9: Assign values for profile and bit_depth from frame header
14538 bit_depth field has added only in VA-API 0.39.0, added version check.
14540 2016-03-04 09:12:13 +0200 Sebastian Dröge <sebastian@centricular.com>
14543 build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
14544 https://bugzilla.gnome.org/show_bug.cgi?id=763067
14546 === release 1.7.90 ===
14548 2016-03-01 19:23:51 +0200 Sebastian Dröge <sebastian@centricular.com>
14553 * gstreamer-vaapi.doap:
14556 2016-03-01 16:14:47 +0200 Sebastian Dröge <sebastian@centricular.com>
14559 configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
14561 2016-03-01 11:35:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14563 * gst/vaapi/gstvaapidecode.c:
14564 vaapidecode: intersect with filter in getcaps()
14565 In commit 6034734d I forgot to add the caps filter intersection in the
14566 getcaps() vmethod generating a regression when a capsfilter is set in the
14568 This commit adds the caps filter intersection.
14570 2016-02-29 11:55:27 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
14572 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
14573 Add memset to initialize value for VAEncSliceParameterBufferJPEG
14574 https://bugzilla.gnome.org/show_bug.cgi?id=762850
14576 2016-02-26 12:42:46 +0200 Sebastian Dröge <sebastian@centricular.com>
14579 Automatic update of common submodule
14580 From b64f03f to 6f2d209
14582 2016-02-24 12:36:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14587 build: add m4 directory
14588 Instead of rely on the automatic creation of m4 directory by aclocal, we
14589 already control it. Later we could create our own m4 scripts in order to
14590 unclutter configure.ac
14591 https://bugzilla.gnome.org/show_bug.cgi?id=762528
14593 2016-02-23 10:55:02 +0200 Scott D Phillips <scott.d.phillips@intel.com>
14595 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14596 decoder: hevc: Fill dependent slice segment headers while parsing
14597 Copy the data into the dependent slice segment header from the
14598 corresponding independent slice segment header during parsing.
14599 Previously the reference to the "previous" independent header was
14600 held through the parsing phase and then dereferenced during the
14601 decoding phase. This caused all dependent headers to be populated
14602 with the data of the AU's last independent header instead of the
14603 proper corresponding header.
14604 https://bugzilla.gnome.org/show_bug.cgi?id=762352
14606 - Reworded commit message
14608 2016-02-17 13:43:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14610 * gst/vaapi/gstvaapidecode.c:
14611 vaapidecode: use video decoder getcaps()
14612 The usage of getcaps() vmethod is preferred than to handle manually the sink's
14614 In order to avoid function declarations, this patch moves the class_init()
14615 method to the end of the file.
14617 2016-02-17 12:51:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14619 * gst/vaapi/gstvaapipluginbase.c:
14620 plugins: remove deprecated code
14621 Since we are only supporting current GStreamer version, since 1.3
14622 gst_buffer_pool_config_add_option() checks if the option to add is
14623 already set. There is no need to do it ourselves.
14625 2016-02-19 19:03:44 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14627 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14628 vaapidecoder_h265: fix parsing of NALU aligned data
14629 Don't assume the whole buffer is a single NAL, instead look for the
14630 next start code in case there are multiple NALs per buffer.
14631 https://bugzilla.gnome.org/show_bug.cgi?id=762328
14633 2016-02-19 11:10:25 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14635 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14636 vaapidecoder_h264: fix parsing of NALU aligned data
14637 Don't assume the whole buffer is a single NAL, instead look for the
14638 next start code in case there are multiple NALs per buffer.
14639 https://bugzilla.gnome.org/show_bug.cgi?id=762328
14641 2016-02-18 10:13:53 +0900 Vineeth TM <vineeth.tm@samsung.com>
14643 * gst/vaapi/gstvaapisink.c:
14644 vaapisink: Fix event,pad,structure memory leaks
14645 https://bugzilla.gnome.org/show_bug.cgi?id=762229
14647 2016-02-17 15:40:54 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
14649 * gst/vaapi/gstvaapipluginbase.c:
14650 Add icamerasrc as dmabuf capable peer element
14651 icamerasrc is another gstreamer plugin using to capture RAW
14652 frames from camera device. It is based on libcamhal library.
14653 There are some properties available to control icamera behavior.
14654 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
14655 Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
14656 https://bugzilla.gnome.org/show_bug.cgi?id=759481
14657 Fixme: This is the similar workaround we done for v4l2src.
14658 The workaround will be removed once we fix #755072
14660 2016-02-17 17:15:28 +0900 Vineeth TM <vineeth.tm@samsung.com>
14662 * gst/vaapi/gstvaapipluginbase.c:
14663 vaapipluginbase: Fix structure memory leak
14664 config structure is not being freed in all cases
14665 https://bugzilla.gnome.org/show_bug.cgi?id=762172
14667 2016-02-17 17:20:08 +0900 Vineeth TM <vineeth.tm@samsung.com>
14669 * gst/vaapi/gstvaapidecode.c:
14670 vaapidecode: Fix videocodec state memory leak
14671 When state is not NULL and either width/height of video info is 0, then state leaks
14672 https://bugzilla.gnome.org/show_bug.cgi?id=762173
14674 2016-02-16 15:44:48 +0000 Tim-Philipp Müller <tim@centricular.com>
14676 * gst/vaapi/gstvaapisink.c:
14677 vaapisink: post message for application for unhandled keyboard/mouse events
14678 Makes (most) keyboard shortcuts work in gst-play-1.0 when
14679 the video window has focus.
14681 2016-02-16 08:48:43 +0900 Vineeth TM <vineeth.tm@samsung.com>
14683 * gst/vaapi/gstvaapidecode.c:
14684 vaapidecode: Fix capsfeature memory leak
14685 https://bugzilla.gnome.org/show_bug.cgi?id=762116
14687 2016-02-16 08:15:40 +0900 Vineeth TM <vineeth.tm@samsung.com>
14689 * gst/vaapi/gstvaapisink.c:
14690 vaapisink: Fix capsfeature memory leak
14691 caps feature allocated is not being freeing in some cases
14692 https://bugzilla.gnome.org/show_bug.cgi?id=762111
14694 2016-02-16 15:09:01 +0200 Sebastian Dröge <sebastian@centricular.com>
14697 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
14698 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14699 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14700 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14701 * gst-libs/gst/vaapi/gstvaapifilter.c:
14702 * gst/vaapi/gstvaapidecodebin.c:
14703 * gst/vaapi/gstvaapipluginutil.c:
14704 vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
14706 2016-02-16 14:36:39 +0200 Sebastian Dröge <sebastian@centricular.com>
14709 configure: Fix setting of extra compiler warning flags
14711 2016-02-15 18:00:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14713 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
14714 libs: fix build error
14715 gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
14716 functions are used only when libva's API version is greater than 0.36.0
14717 This patch guards those functions completely rather than just their
14718 content. The patch is a continuation of commit 38f8fea4
14719 Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
14720 https://bugzilla.gnome.org/show_bug.cgi?id=762055
14722 2016-02-15 10:01:54 +0900 Vineeth TM <vineeth.tm@samsung.com>
14724 * tests/simple-encoder.c:
14725 tests: simple-encoder: fix build error
14726 argument mismatch of gsize with 'long unsigned int'
14727 https://bugzilla.gnome.org/show_bug.cgi?id=762055
14729 2016-02-04 10:16:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14731 * gst/vaapi/gstvaapisink.c:
14732 vaapisink: Fix wrong caps advertising
14733 The get_caps() should only report the supported formats.
14734 https://bugzilla.gnome.org/show_bug.cgi?id=761147
14736 2016-02-05 18:11:29 -0300 Thiago Santos <thiagoss@osg.samsung.com>
14739 Automatic update of common submodule
14740 From e97c9bb to b64f03f
14742 2016-02-03 19:07:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14744 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14745 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14746 * gst/vaapi/gstvaapi.c:
14747 * gst/vaapi/gstvaapiencode_h264.c:
14748 * gst/vaapi/gstvaapiencode_h265.c:
14749 * gst/vaapi/gstvaapiencode_jpeg.c:
14750 * gst/vaapi/gstvaapiencode_mpeg2.c:
14751 * gst/vaapi/gstvaapiencode_vp8.c:
14752 rename encoders to vaapi{codec}enc
14753 Trying to comply with GStreamer's element names, this patch renames the
14754 encoders using the name format vaapi{codec}enc.
14755 In this way, the plugin documentation is linked correctly.
14756 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14758 2016-02-03 18:42:36 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14761 Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
14762 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14764 2016-02-03 18:02:21 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14767 build: remove vp9 parser check
14768 Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
14769 the check of the parser, as we did for the others.
14770 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14772 2016-02-03 17:06:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14776 Back to development
14777 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14779 === release 1.6.0 ===
14781 2016-02-03 16:53:41 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14786 2016-02-03 16:45:18 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14788 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
14789 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14790 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14791 libs: fix compiler warnings
14792 After setting the release flags, the compiler warns about a couple
14793 initialized variables.
14794 Also marked a couple of set variables as unused, because they are only
14795 used for assertion.
14796 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14798 2016-01-29 20:41:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14800 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14801 * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14802 * gst/vaapi/gstvaapidecode.c:
14803 * gst/vaapi/gstvaapidecodebin.c:
14804 * gst/vaapi/gstvaapiencode_h264.c:
14805 * gst/vaapi/gstvaapiencode_h265.c:
14806 * gst/vaapi/gstvaapiencode_jpeg.c:
14807 * gst/vaapi/gstvaapiencode_mpeg2.c:
14808 * gst/vaapi/gstvaapiencode_vp8.c:
14809 * gst/vaapi/gstvaapipostproc.c:
14810 * gst/vaapi/gstvaapisink.c:
14811 docs: update plugin documentation
14812 Update all the documentation of elements of the vaapi plugin.
14813 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14815 2016-01-29 15:39:09 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14819 * docs/Makefile.am:
14820 * docs/plugins/Makefile.am:
14821 * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14822 * docs/plugins/gstreamer-vaapi-plugins.types:
14823 * docs/reference/Makefile.am:
14824 * docs/reference/plugins/Makefile.am:
14825 * docs/reference/plugins/plugins-sections.txt:
14826 * docs/reference/plugins/plugins.types:
14827 * docs/version.entities.in:
14828 resurrect gtk-doc machinery
14829 Our auto-generated documentation has been a bit neglected. This patch replaces
14830 the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
14831 plugins, elements and libraries.
14832 This patch also re-enables documentation generation.
14833 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14835 2016-01-28 19:35:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14841 use gst-common submodule
14842 This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
14843 GStreamer common submodule.
14844 The documentation generation has been disable temporarily since it needs a
14845 major rework, which will be done in the following commit.
14846 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14848 2016-01-25 16:06:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14852 add gst-common submodule
14853 Pointing to branch 1.6
14854 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14856 2016-01-28 13:28:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14858 * gstreamer-vaapi.doap:
14859 add doap descriptor
14860 DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
14861 describe software projects, in particular free and open source software.
14862 The description is used in GStreamer as in many other open source projects.
14863 This patch adds the doap description of this project.
14864 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14866 2016-02-03 11:50:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14868 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
14869 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14870 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
14871 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
14872 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14873 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
14874 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
14875 * gst-libs/gst/vaapi/gstvaapiimage.c:
14876 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
14877 * gst-libs/gst/vaapi/gstvaapipixmap.c:
14878 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
14879 * gst-libs/gst/vaapi/gstvaapiprofile.c:
14880 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
14881 libs: humongous code style fix
14882 As part of the upstreaming process of gstreamer-vaapi into the GStreamer
14883 umbrella, we need to comply with the project's code style. This meant to
14884 change a lot of code.
14885 It was decided to use a single massive patch to update the code style.
14886 I would like to apologize with the original developers of this code because of
14887 the history breakage.
14888 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14890 2016-02-03 11:04:15 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14892 * gst-libs/gst/vaapi/gstvaapicontext.c:
14893 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14894 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
14895 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
14896 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
14897 * gst/vaapi/gstvaapivideomemory.c:
14898 libs: small refactors to enhance the code style
14899 As gst-indent generated ugly code in these cases, this patch changes the used
14900 idiomatic into other one.
14901 No functional changes were introduced.
14902 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14904 2016-02-02 17:59:57 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14906 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
14907 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14908 * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
14909 * gst-libs/gst/vaapi/gstvaapidecoder.c:
14910 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14911 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
14912 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14913 * gst-libs/gst/vaapi/gstvaapidisplay.c:
14914 * gst-libs/gst/vaapi/gstvaapiencoder.c:
14915 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14916 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14917 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
14918 * gst-libs/gst/vaapi/gstvaapifilter.c:
14919 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
14920 * gst-libs/gst/vaapi/gstvaapisurface.c:
14921 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
14922 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
14923 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
14924 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
14925 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14926 * gst-libs/gst/vaapi/gstvaapiwindow.c:
14927 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
14928 libs: small code style fixes
14929 This a set of small code style fixes detected as-is by gst-indent.
14930 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14932 2016-02-02 17:50:19 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14934 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14935 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14936 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
14937 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
14938 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
14939 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
14940 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
14941 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
14942 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
14943 libs: trivial comment style fixes
14944 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14946 2016-02-02 17:31:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14948 * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
14949 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
14950 libs: avoid gst-indent mess up
14951 Guard pieces of code to avoid gst-ident to mess up the following code.
14952 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14954 2016-02-03 12:17:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14956 * gst/vaapi/gstvaapidecode.c:
14957 * gst/vaapi/gstvaapidecodebin.c:
14958 * gst/vaapi/gstvaapipluginutil.c:
14959 * gst/vaapi/gstvaapisink.c:
14960 * gst/vaapi/gstvaapivideomemory.c:
14961 plugins: fix code style
14962 Minor code style changes by executing gst-indent in gst/vaapi directory.
14963 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14965 2016-02-01 13:22:10 +0000 Tim-Philipp Müller <tim@centricular.com>
14967 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14968 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14969 Fix some more compiler warning
14970 Two (false) compiler warnings about variables potentially
14971 being used uninitialized, and one about a variable being
14973 https://bugzilla.gnome.org/show_bug.cgi?id=759192
14975 2016-02-01 13:02:13 +0000 Tim-Philipp Müller <tim@centricular.com>
14977 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14978 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14979 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14980 * gst-libs/gst/vaapi/gstvaapifilter.c:
14981 * gst/vaapi/gstvaapidecode.c:
14982 * gst/vaapi/gstvaapipluginbase.c:
14983 * gst/vaapi/gstvaapipluginutil.c:
14984 * gst/vaapi/gstvaapipostproc.c:
14985 * tests/simple-encoder.c:
14986 * tests/test-filter.c:
14987 vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
14988 Declare variables at the beginning of a code block, which
14989 is how it's done in GStreamer.
14990 https://bugzilla.gnome.org/show_bug.cgi?id=759192
14992 2016-01-28 14:21:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14994 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14995 decoder: vp9: Fix crop rectangle setting
14996 Align with software vp9dec behaviour: Add crop rectangle
14997 only if display_width/display_height is less than the
14998 frame_hdr->width/frame_hdr->height
15000 2016-01-27 08:56:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15002 * gst/vaapi/gstvaapidecode.c:
15003 vaapidecode: Fix renegotiation for resolution change
15004 Always renegotiate the pool if the immediate frame which going
15005 to be pushed has a different un-cropped resolution than the already
15008 2016-01-29 15:51:49 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15010 * gst/vaapi/gstvaapipluginbase.h:
15011 plugins: use the same pre-processor macro
15012 In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
15013 code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
15014 HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
15015 We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
15016 in the header file.
15017 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15019 2016-01-29 18:06:29 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15021 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15022 decoder: update a deprecated function
15023 Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
15024 deprecated since GStreamer 1.0.
15025 This patch replace it with gst_adapter_prev_pts()
15026 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15028 2016-01-29 13:13:56 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15031 build: honor configure's cache
15032 The user might enable --config-cache when calling configure script. If so, our
15033 configuration variables will not be correctly calculated.
15034 This patch extracts the value of our variables either from the cache or from
15035 the operation result.
15036 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15038 2016-01-28 19:12:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15041 build: use common version variables
15042 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15044 2016-01-28 19:01:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15047 build: hard-code an unneeded macro
15048 That macro is required for EGL's dynamic module loading, but since
15049 gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
15050 That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
15051 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15053 2016-01-28 17:14:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15056 build: refactorization of dependency tracking
15057 This patch tries to avoid branching in configure.ac using a more functional
15058 approach in macros usage.
15059 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15061 2016-01-29 12:34:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15064 build: check for OpenGL either GLX or EGL are requested
15065 Refactor some code in configure.ac to centralize $enable_opengl definition.
15066 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15068 2016-01-28 16:55:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15071 build: indent and add square braces
15072 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15074 2016-01-28 16:50:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15077 build: upgrade autotools version dependency
15078 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15080 2016-01-29 11:14:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15083 build: enhance string comparisons
15084 Add a 'x' as a prefix in string comparisons to watch out for edge cases where
15085 the string is empty or undefined.
15086 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15088 2016-01-28 14:29:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15091 build: remove unused variables
15092 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15094 2016-01-27 19:00:51 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15097 build: remove check for old version of gstreamer
15098 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15100 2016-01-27 17:55:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15103 build: remove GStreamer's parsers checks
15104 This patch removes almost all the parsers check since they are already in place,
15105 with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
15106 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15108 2016-01-29 12:11:17 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15111 * gst/vaapi/Makefile.am:
15112 build: add gstreamer-pbutils dependency
15113 This dependency was added in gstvaapidecodebin with the call
15114 gst_missing_element_message_new().
15115 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15117 2016-01-27 17:53:59 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15120 build: fix variable declaration
15121 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15123 2016-01-27 17:47:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15125 * gst-libs/gst/vaapi/Makefile.am:
15126 build: fix when HEVC decoder is disabled
15127 This a very pathological situation: when we have a HEVC encoder but not a HEVC
15129 The encoder needs functions that are only available when the decoder is
15131 This patch moves the utils functions into the generic sources, such as the
15133 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15135 2016-01-27 17:20:31 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15137 * gst/vaapi/Makefile.am:
15138 build: remove unused EGL specific sources
15139 These Makefile variables are not used at all.
15140 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15142 2016-01-27 17:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15144 * gst/vaapi/Makefile.am:
15145 build: remove check for GStreamer 1.2
15146 Since we are working for current stable GStreamer 1.6
15147 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15149 2016-01-26 11:49:40 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15151 * gst/vaapi/gstvaapiparse.h:
15152 Remove more video parser crufts
15153 This header is not used anymore since it declares parsers that are
15154 already in GStreamer 1.6
15155 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15157 2016-01-25 12:43:15 +0000 Tim-Philipp Müller <tim@centricular.com>
15160 * docs/reference/Makefile.am:
15161 * docs/reference/libs/Makefile.am:
15162 * docs/reference/libs/libs-docs.xml.in:
15163 * docs/reference/libs/libs-overrides.txt:
15164 * docs/reference/libs/libs-sections.txt:
15165 docs: remove library documentation which is non-public now
15166 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15168 2016-01-25 12:40:49 +0000 Tim-Philipp Müller <tim@centricular.com>
15172 * debian.upstream/Makefile.am:
15173 * debian.upstream/changelog.in:
15174 * debian.upstream/compat:
15175 * debian.upstream/control.in:
15176 * debian.upstream/copyright:
15177 * debian.upstream/gstreamer-vaapi-doc.install.in:
15178 * debian.upstream/gstreamer-vaapi.install.in:
15179 * debian.upstream/rules:
15180 Remove debian.upstream packaging
15181 https://bugzilla.gnome.org/show_bug.cgi?id=759192
15183 2016-01-22 19:27:13 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15185 * gst-libs/gst/vaapi/gstvaapidecoder.c:
15186 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15187 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
15188 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15189 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15190 * gst/vaapi/gstcompat.h:
15191 * gst/vaapi/gstvaapi.c:
15192 * gst/vaapi/gstvaapidecode.c:
15193 * gst/vaapi/gstvaapiencode.c:
15194 * gst/vaapi/gstvaapipluginbase.c:
15195 * gst/vaapi/gstvaapipluginbase.h:
15196 * gst/vaapi/gstvaapipluginutil.c:
15197 * gst/vaapi/gstvaapisink.c:
15198 Remove old gst version guards
15199 As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
15200 all the old GStreamer version guards.
15201 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15203 2016-01-22 19:23:43 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15205 * gst/vaapi/gstvaapiparse.c:
15206 Remove video parser crufts
15207 We forgot to remove gstvaapiparse.c when we removed all the videoparser
15209 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15211 2015-12-09 19:52:33 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15213 * docs/reference/libs/Makefile.am:
15214 * docs/reference/plugins/Makefile.am:
15215 * gst-libs/gst/vaapi/Makefile.am:
15216 * gst/vaapi/Makefile.am:
15217 * tests/Makefile.am:
15218 libs: remove versioning
15219 Since we don't install libraries anymore, it makes no sense to keep
15220 versioning them according to the gstreamer's version.
15221 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15223 2015-12-09 16:59:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15226 * debian.upstream/Makefile.am:
15227 * debian.upstream/control.in:
15228 * debian.upstream/libgstvaapi-dev.install.in:
15229 * debian.upstream/libgstvaapi-drm.install.in:
15230 * debian.upstream/libgstvaapi-glx.install.in:
15231 * debian.upstream/libgstvaapi-wayland.install.in:
15232 * debian.upstream/libgstvaapi-x11.install.in:
15233 * debian.upstream/libgstvaapi.install.in:
15234 * gst-libs/gst/vaapi/Makefile.am:
15235 * tests/Makefile.am:
15236 libs: make libraries no installables
15237 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15239 2015-12-09 15:37:39 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15241 * debian.upstream/libgstvaapi-dev.install.in:
15242 * gst-libs/gst/vaapi/Makefile.am:
15243 Do not install libgstvaapi headers
15244 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15246 2016-01-19 10:40:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15250 * patches/Makefile.am:
15251 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
15252 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15253 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
15254 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
15255 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15256 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15257 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15258 * patches/videoparsers/Makefile.am:
15259 * patches/videoparsers/series.frag:
15260 Remove videoparser patches
15262 2015-12-09 15:18:11 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15266 * debian.upstream/libgstvaapi-dev.install.in:
15267 * pkgconfig/Makefile.am:
15268 * pkgconfig/gstreamer-vaapi-drm.pc.in:
15269 * pkgconfig/gstreamer-vaapi-glx.pc.in:
15270 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
15271 * pkgconfig/gstreamer-vaapi-x11.pc.in:
15272 * pkgconfig/gstreamer-vaapi.pc.in:
15273 Remove pkg-config files
15274 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15276 2015-12-09 13:24:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15282 * ext/codecparsers:
15283 * gst-libs/gst/Makefile.am:
15284 * gst-libs/gst/codecparsers/Makefile.am:
15285 * gst-libs/gst/vaapi/Makefile.am:
15286 * gst/vaapi/Makefile.am:
15287 Remove codecparsers submodule
15288 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15290 2015-12-08 00:36:36 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15295 * debian.upstream/libgstvaapi.install.in:
15297 * ext/libvpx/Makefile.am:
15298 * ext/libvpx/gstlibvpx.c:
15299 * ext/libvpx/gstlibvpx.h:
15300 * ext/libvpx/libgstcodecparsers_vpx.vers:
15301 * ext/libvpx/sources.frag:
15302 * ext/libvpx/upstream:
15303 * gst-libs/gst/codecparsers/Makefile.am:
15304 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
15305 Remove libvpx submodule
15306 We will be using upstream codecparsers always.
15307 No more internal libvpx !
15309 2015-12-09 14:12:22 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15312 build: fix check for GstJpegParser
15313 Right now the local JPEG parser is always compiled because the check for the
15314 upstreamed version is broken: it looks for an non existent symbol:
15316 This patch changes that check for< GstJpegFrameHdr.
15317 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15319 2015-10-28 09:56:46 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
15321 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15322 wayland: free the frame in frame_release_callback()
15323 This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
15324 decouple wl_buffer from frame).
15325 Otherwise the frame may be overwritten while it is still used by the
15327 The frame done callback (frame_done_callback()) is called, when the
15328 compositor is done processing the frame and hands it to the hardware.
15329 The buffer release callback (frame_release_callback()) is called when the
15330 buffer memory is no longer used.
15331 This can be quite some time later: E.g. if weston (with the DRM backend)
15332 puts the buffer on a hardware plane, then then buffer release callback is
15333 called when the kernel is done with the buffer. This is usually when the
15334 next frame is shown, so most likely after the frame done callback for the
15336 Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
15337 destroy()" the mentioned possible leak should no longer be a problem, so
15338 reverting this change should cause no leaking buffers.
15339 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15340 https://bugzilla.gnome.org/show_bug.cgi?id=758848
15341 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15343 2016-01-14 17:36:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15345 * gst/vaapi/gstvaapipostproc.c:
15346 vaapipostproc: check ANY caps at transform_caps()
15347 When transforming downstream caps we should check for ANY caps from peer pad,
15348 otherwise we get a segmentation fault.
15349 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15350 https://bugzilla.gnome.org/show_bug.cgi?id=759893
15352 2016-01-13 19:17:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15354 * gst/vaapi/gstvaapisink.c:
15355 vaapisink: ignore frame if its upload failed
15356 When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
15357 into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
15358 ignored by the vaapisink, leading to a segmentation fault.
15359 This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
15360 returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
15361 segmentation fault, but doing and effort to continue rendering. This is
15362 the same behavior of ximagesink.
15363 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15364 https://bugzilla.gnome.org/show_bug.cgi?id=759332
15366 2015-12-09 18:24:50 +0200 Joel Holdsworth <joel.holdsworth@vcatechnology.com>
15369 build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
15370 https://bugzilla.gnome.org/show_bug.cgi?id=759184
15372 2015-12-08 16:14:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15374 * gst-libs/gst/vaapi/gstvaapicontext.c:
15375 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15376 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15377 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
15378 Add 10 HEVC 10 bit decoding support
15379 Only supporting vaapidecode ! vaapisink combination for now.
15380 Missing dependencies:
15381 1: No support for P010 video format in GStreamer
15382 2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
15383 3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
15384 through GstVideoMeta.
15385 Right now we only set chroma format (YUV420 with more than 8 bits per channel)
15386 for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
15387 of the surfaces is implementation (driver) defined, which is P010.
15389 2001-01-01 04:59:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15391 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15392 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
15393 gstvaapisurfacepool: Add new API to create surface pool based on chroma type
15394 This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
15395 creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
15396 chroam type and dimensions. The underlying format of the surfaces is
15397 implementation (driver) defined.
15399 2015-12-07 19:06:28 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15401 * gst-libs/gst/vaapi/gstvaapisurface.h:
15402 * gst-libs/gst/vaapi/gstvaapiutils.c:
15403 Add definitions for YUV420 with more than 8 bits per channel
15405 2015-12-07 17:26:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15407 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15408 gstvaapiporfile: Fix string representation of HEVCMain10 profile
15410 2015-12-07 16:17:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15413 Bump version for development
15415 === release 0.7.0 ===
15417 2015-12-07 12:52:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15422 2015-12-07 12:49:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15427 2015-12-07 12:47:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15432 2015-12-07 12:39:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15437 2015-11-26 10:34:12 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15439 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15440 texture: detect GL version and use the proper API
15441 When receiving the texture from the application or the video sink, we must
15442 know it size and border. To query the texture the API has changed according to
15443 the OpenGL version used in the GL context of the application/vsink.
15444 This patch checks the current context API type and queries the texture
15445 according to this detected API.
15446 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15447 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15449 2015-11-26 10:19:32 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15451 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15452 texture: check for expected target and format
15453 gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
15454 formats GL_RGBA or GL_BGRA.
15455 This patch adds a debugging verification of those values.
15456 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15457 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15459 2015-11-26 10:26:10 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15461 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15462 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15463 libs: add gl3_bind_texture_2d()
15464 Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
15465 needed. In particular, the Intel's Mesa implementation complains if it is
15467 This patch add a new binding function for 2D textures, without enabling
15468 gl3_bind_texture_2d()[2].
15469 1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
15470 2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
15471 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15472 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15474 2015-11-26 10:14:45 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15476 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15477 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15478 libs: add gl_get_current_api()
15479 In order to know which OpenGL API use, we must detect the API type of current
15480 context. This patch adds the function gl_get_current_api() which returns the
15482 This function is an adaptation of gst_gl_context_get_current_gl_api() from
15484 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15485 https://bugzilla.gnome.org/show_bug.cgi?id=753099
15487 2015-11-27 12:29:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15490 * gst-libs/gst/vaapi/Makefile.am:
15491 build: Add gmodule dependency for libgstvaapi_egl
15492 https://bugzilla.gnome.org/show_bug.cgi?id=756259
15494 2015-11-27 14:24:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15496 * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15497 * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15498 * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15499 * patches/videoparsers/series.frag:
15500 patches/videoparsers: h264: Disable passthorugh mode enabling
15501 This is a quick fix for regression introduced by the upstream
15502 commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
15503 The patch is disabling the passthrough mode, otherwise it will
15504 break multi-layer mvc stream parsing.
15505 https://bugzilla.gnome.org/show_bug.cgi?id=758656
15507 2015-11-25 15:12:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15509 * gst/vaapi/Makefile.am:
15510 * patches/videoparsers/Makefile.am:
15511 * patches/videoparsers/series.frag:
15512 build: add gsth265parse patches conditionally
15513 As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
15514 GStreamer 1.2, the patching of gsth265parse must be conditional to the target
15516 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15517 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15519 2015-11-25 15:11:28 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15521 * gst/vaapi/Makefile.am:
15522 build: declare correctly parse lib built files
15523 This is a continuation of commit fc8a0d12
15524 When declaring BUILT_SOURCES, those files should not be distributed. This
15525 patch avoids the distribution of the generated source code.
15526 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15527 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15529 2015-11-24 17:14:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15531 * ext/libvpx/sources.frag:
15532 build: libvpx: Add missing source file
15534 2015-11-23 17:21:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15536 * gst/vaapi/gstvaapipostproc.c:
15537 vaapipostproc: Correctly detect the caps change
15538 This is a quick fix for regression introuduced by the
15539 commit 757833230bc73b8e3b4e31649e4618ba802bea51
15540 With out this, the gst_vaapipostproc_create() will
15542 https://bugzilla.gnome.org/show_bug.cgi?id=758543
15544 2015-11-18 20:48:30 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15546 * ext/libvpx/Makefile.am:
15547 * ext/libvpx/sources.frag:
15548 build: libvpx: update the sources lists
15549 `make dist` broke since commit f06798 (libvpx: Update the submodule to
15550 libvpx-1.4.0) because the sources.frag does not contain all the module
15552 This patch updates thoroughly the sources.
15553 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15554 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15556 2015-11-16 17:49:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15558 * gst/vaapi/gstvaapipostproc.c:
15559 vaapipostproc: don't set caps change at first set
15560 When the source caps change, the filter is destroyed and recreated.
15561 Nonetheless, this happens every time the vaapipostproc starts, since the caps
15562 change detection algorithm does not take in consideration when the caps are
15564 This patch intents to be an optimization, to avoid a useless filter
15565 destroy-creation cycle when the sources caps are set for first time.
15566 The new helper function video_info_update() is a refactorization to avoid
15568 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15569 https://bugzilla.gnome.org/show_bug.cgi?id=758007
15571 2015-11-12 16:13:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15573 * gst/vaapi/gstvaapipostproc.c:
15574 vaapipostproc: params video_info_changed() callers
15575 The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
15576 swapped the the order. This didn't raise problems since the comparison of both
15577 structures were not affected by its semantics.
15578 But still it would be better to fix this to keep the coherence of the code.
15579 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15580 https://bugzilla.gnome.org/show_bug.cgi?id=758007
15582 2015-09-24 10:35:44 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15584 * gst/vaapi/Makefile.am:
15585 build: declare real built files
15586 When runnig the `make dist` target from a clean tree, it fails because
15587 if could not find the copied files from codecparsers submodule.
15588 They weren't copied because they weren't declared as built sources.
15589 This patch removes the stamp mechanism and use the actual file list to copy
15590 as the built sources. Also it fixes the duplication of the parser files.
15591 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15592 https://bugzilla.gnome.org/show_bug.cgi?id=755525
15594 2015-11-17 19:37:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15596 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15597 decoder: vp9: Fix last/golden/altref frame index setting
15598 Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
15599 based on what ever reference frame indices encoded in frame header.
15601 2015-08-25 16:01:51 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15603 * debian.upstream/rules:
15604 debian: remove custom parallel compilation
15605 In order to build a debian package with upstream source, the user should
15608 cp -a debian.upstream debian
15609 debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
15610 The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
15611 way to make a parallel build (-j8 in this case).
15612 This commit removes the script in debian/rules that detects the number of
15613 cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
15614 official in debian.
15615 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15616 https://bugzilla.gnome.org/show_bug.cgi?id=754087
15618 2015-11-16 18:22:55 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15620 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15621 decoder: vp9: Fix PTS calculation of cloned frames
15623 2015-11-16 18:22:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15625 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15626 decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
15627 We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
15628 gstvaapidecoder base calss is reponsible for handling those frames later on.
15629 No need for explicit verification of frame header's show_frame in order to
15630 do picture outputing.
15632 2015-11-16 18:22:14 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15634 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15635 decoder: vp9: Fix ref picture update while doing repeat frame
15636 Don't try to do frame decoding and reference picture update
15637 while receiving a vp9 frame having show_existing_frame flag
15640 2015-11-16 18:21:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15642 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15643 decoder: vp9: Add repeat-frame display handling
15644 If vp9 frame header come up with show_existing_frame flag set,
15645 we should duplicate the existing decoded frame as current frame to
15648 2015-11-12 11:07:38 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15650 * gst/vaapi/gstvaapidecodebin.c:
15651 vaapidecodebin: add me as element co-author
15652 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15653 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15655 2015-11-12 12:47:01 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15657 * gst/vaapi/gstvaapidecodebin.c:
15658 vaapidecodebin: try to get display from decoder
15659 Rather than create a dummy display, if none has propagated as a context, we
15660 should try to get the one from vaapidecode.
15661 As the bin is already in READY state, the vaapidecode should be also in that
15662 state. That means that the contexts have been negotiated, and it should have
15664 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15665 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15667 2015-11-11 19:04:25 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15669 * gst/vaapi/gstvaapidecodebin.c:
15670 * gst/vaapi/gstvaapidecodebin.h:
15671 vaapidecodebin: add postprocessor dynamically
15672 The former approach to left the bin unfinished has some problems: the context
15673 cannot be shared because the vaapidecode is unlinked in many cases, leading to
15674 creating a VADisplay twice.
15675 Initially the bin is fully functional, constructed as
15676 (-----------------------------------)
15678 | (-------------) (-------) |
15679 |<--| vaapidecode |--->| queue |--->|
15680 | (-------------) (-------) |
15681 (-----------------------------------)
15682 When the context is shared and the VADisplay has VPP capabilities, before
15683 changing to READY state, the bin is reconfigured dynamically, adding the
15684 vaapipostproc element afeter the queue:
15685 (--------------------------------------------------------)
15687 | (-------------) (-------) (---------------) |
15688 |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
15689 | (-------------) (-------) (---------------) |
15690 (--------------------------------------------------------)
15691 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15692 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15694 2015-11-11 16:33:24 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15696 * gst/vaapi/gstvaapidecodebin.c:
15697 vaapidecodebin: delay the bin configuration
15698 Delay the bin configuration until changing to READY state. This is because we
15699 should add the vaapipostproc element until the vaapidecode has emitted the
15700 HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
15702 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15703 https://bugzilla.gnome.org/show_bug.cgi?id=757957
15705 2015-11-13 19:39:56 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15707 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15708 decoder: vp9: Add crop rectangle support.
15709 Set crop rectange if:
15710 There is display_width and display_height which is different from actual width/height
15712 The changed resolution is less than the actual configured dimension of surfaces
15714 2015-11-13 19:23:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15716 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15717 decoder: vp9: Fix the context and surface pool reset for multi resolution video
15718 Unlike other decoders, vp9 decoder doesn't need to reset the
15719 whole context and surfaces for each resolution change. Context
15720 reset only needed if resolution of any frame is greater than
15721 what actullay configured. There are streams where a bigger
15722 resolution set in ivf header or webm header but actual resolution
15723 of all frames are less. Also it is possible to have inter-prediction
15724 between these multi resolution frames.
15726 2015-11-13 18:58:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15728 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15729 decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
15730 Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
15731 Preliminary fix for supproting multi resolution video decode.
15733 2015-11-13 18:51:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15735 * gst/vaapi/gstvaapidecode.c:
15736 vaapidecode: Add comments for corner case fixes and fix couple of indentations.
15738 2015-11-13 18:41:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15740 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15741 decoder: vp9: Set lossless flag from frame header
15743 2015-11-13 18:40:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15745 * ext/codecparsers:
15746 codecparsers: Update to gst-vaapi-branch d9f25
15747 d9f2527: codecparsers: vp9: Set lossless flag in frame header
15749 2015-11-11 19:16:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15751 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15752 libs: vp9: remove unused symbols
15753 clang complains about a couple variables and one label which were not
15754 used. This patch removes them.
15755 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15756 https://bugzilla.gnome.org/show_bug.cgi?id=757958
15758 2015-11-10 19:00:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15760 * ext/codecparsers:
15761 codecparsers: Update to gst-vaapi-branch da251bb
15762 da251bb: codecparsers: vp9: Optimize the memory allocation
15763 f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
15765 2015-11-05 12:58:52 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15767 * gst/vaapi/gstvaapipluginbase.c:
15768 * gst/vaapi/gstvaapipluginbase.h:
15769 plugin: guard pointers to pad query functions
15770 Since gstreamer 1.4 is not required to have pad query functions if the query
15772 This patch guards out the pad query functions for gstreamer < 1.4
15773 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15774 https://bugzilla.gnome.org/show_bug.cgi?id=757629
15776 2015-11-05 12:39:55 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15778 * gst/vaapi/gstvaapiencode.c:
15779 vaapiencode: use pad query vmethods
15780 GstVideoEncoder, the base class of vaapiencode, added support for pad queries
15781 as virtual methods since gstreamer 1.4. This patch enables those vmethods,
15782 while keeps support for previous versions of gstreamer.
15783 This patch is relevant since GstVideoEncoder takes care of other queries that
15784 we are currently ignoring.
15785 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15786 https://bugzilla.gnome.org/show_bug.cgi?id=757629
15788 2015-10-28 13:01:04 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15790 * gst/vaapi/gstvaapidecode.c:
15791 vaapidecode: return pad's template caps if no display
15792 A caps query can occur before the element has a display. In that case, the
15793 element can return its pad's template. But when the element already has a
15794 display, and the caps probe fails, the element shall return an empty caps, so
15795 the auto-plug could try with another decoder.
15796 If the element has a display and the caps probe works, then the computed caps
15797 should be returned.
15798 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15799 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15801 2015-10-28 12:59:02 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15803 * gst/vaapi/gstvaapidecode.c:
15804 * gst/vaapi/gstvaapisink.c:
15805 plugins: don't create display at caps query
15806 Caps query can happen before the element has a bus. The display creation should
15807 be should occur on the context negotiation, when the bus is already configured.
15808 Then at caps query no display should be created.
15809 Instead of force the display creation, we graciously fail the allowed_caps()
15811 This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
15812 basetransform descendant, seems to be not affected by this, nor the encoders.
15813 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15814 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15816 2015-11-04 21:38:42 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15818 * gst/vaapi/gstvaapidecode.c:
15819 * gst/vaapi/gstvaapiencode.c:
15820 * gst/vaapi/gstvaapipluginutil.c:
15821 * gst/vaapi/gstvaapipluginutil.h:
15822 * gst/vaapi/gstvaapipostproc.c:
15823 * gst/vaapi/gstvaapisink.c:
15824 plugins: fix context query handling
15825 The current context query handling design is flawed: the function
15826 gst_vaapi_reply_to_query() returns FALSE either if the query is not a
15827 GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
15828 pad query function should handle differently each case.
15829 This patch changes the gst_vaapi_reply_to_query() for
15830 gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
15831 to match the correct context query handling.
15832 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15833 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15835 2015-11-04 20:37:05 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15837 * gst/vaapi/gstvaapipluginutil.c:
15838 plugin: don't lose previous context at query
15839 When processing the GST_CONTEXT_QUERY we should not lose the previous
15840 context in the query, we should only add our display structure.
15841 This patch copies the old context, if it is there, and stamp our display on
15842 it. Otherwise, a new context is created.
15843 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15844 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15846 2015-11-04 20:29:03 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15848 * gst/vaapi/gstvaapivideocontext.c:
15849 * gst/vaapi/gstvaapivideocontext.h:
15850 vaapivideocontext: add gst_vaapi_video_context_set_display()
15851 This function set the display to an already created context. This function is
15852 going to be used later.
15853 Also, gst_vaapi_video_context_new_with_display() now uses this function.
15854 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15855 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15857 2015-10-30 12:27:16 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15859 * gst/vaapi/gstvaapipluginutil.c:
15860 * gst/vaapi/gstvaapivideocontext.c:
15861 * gst/vaapi/gstvaapivideocontext.h:
15862 plugins: check if display is set in sync
15863 Since the context messages are sync'ed, the display assignation happens in the
15864 same thread, hence we can know if the display was found or not as soon we call
15866 In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
15867 as a new parameter, the address of the plugin's display, and reports back if
15868 the display was found and set.
15869 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15870 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15872 2015-10-30 12:33:48 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15874 * gst/vaapi/gstvaapipluginutil.c:
15875 * gst/vaapi/gstvaapivideocontext.c:
15876 plugins: set display through context
15877 Instead of setting the display to the plugin directly after its creation, do
15878 it through the gstreamer's context mechanism, avoiding double assignations.
15879 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15880 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15882 2015-11-02 18:20:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15884 * gst/vaapi/gstvaapivideocontext.c:
15885 vaapivideocontext: rename context structure
15886 The context structure is named "display" which is too generic. The contrary
15887 happens, for example, with GstGL, what uses the same name as the context, and
15888 its logs make more sense.
15889 This patch renames the context structure with the same name as the
15890 context, thus GST_PTR_FORMAT can pretty print it.
15891 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15893 2015-11-04 19:02:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15895 * gst/vaapi/gstvaapivideocontext.c:
15896 vaapivideocontext: refactor gst_vaapi_video_context_prepare()
15897 First, refactorized run_context_query() into _gst_context_run_query(), adding
15898 a new parameter: the pad direction, in order to simplify the code.
15899 Second, added a new helper function: _gst_context_query(), which is a generic
15900 context query function. It isolates the operation of running the query and
15901 sets the context if found, also it enhances the logs.
15902 _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
15903 future this helper function will be merged into the core libraries of
15905 Finally, gst_vaapi_video_context_prepare() was rewritten to use
15906 _gst_context_query().
15907 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15908 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15910 2015-10-30 11:18:47 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15912 * gst/vaapi/gstvaapivideocontext.c:
15913 vaapivideocontext: refactor context category debug
15914 Refactor the extraction GST_CAT_CONTEXT logging using a only once
15915 initializator, so we could get the debug category from different code
15917 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15918 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15920 2015-10-23 11:17:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15922 * gst/vaapi/gstvaapivideocontext.c:
15923 gstvaapivideocontext: fix indentation
15924 gst-indent does not handle correctly some expression like function
15925 declaration with attributes, breaking the following expressions.
15926 This patch makes gst-indent to ignore the attributed function
15927 declartion so the followed function definition is not mangled, such
15928 as happened in commit b4154a
15929 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15930 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15932 2015-11-02 16:48:27 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15934 * gst/vaapi/gstvaapipluginbase.c:
15935 plugin: chain up set_context() vmethod
15936 Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
15937 the parent class in order to broadcast all its contexts when the element
15938 is added into a bin:
15939 http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
15940 There is no need to guard the call, because before GStreamer 1.7, the
15941 set_context() vmethod was NULL in the element class, hence the conditional
15943 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15944 https://bugzilla.gnome.org/show_bug.cgi?id=757598
15946 2015-11-06 10:20:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15948 * tests/simple-encoder.c:
15949 tests: simple-encoder: remove dead code
15950 The caps creation for codec state configuration is not used. Let's remove it.
15951 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15953 2015-11-02 19:05:07 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15955 * gst/vaapi/gstvaapidecodebin.c:
15956 vaapidecodebin: fix a leaked display instance
15957 The display returned by gst_vaapi_video_context_get_display() increments the
15958 references. Thus, we have to unref the returned display.
15959 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15960 https://bugzilla.gnome.org/show_bug.cgi?id=757595
15962 2015-11-04 16:50:44 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15964 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
15965 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15966 libs: remove unneeded headers
15967 Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
15968 required to include them in the header. It is not also required to include
15969 them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
15970 exposes their structures (e.g. GLXPixmap).
15971 Nonetheless, glext.h neither glxext.h are required to include, they are
15972 already included conditionally by gl.h and glx.h, respectively.
15973 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15974 https://bugzilla.gnome.org/show_bug.cgi?id=757577
15976 2015-11-06 19:18:54 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15978 * ext/codecparsers:
15979 codecparsers: Update to gst-vaapi-branch 0ea6792
15980 0ea6792: codecparsers: vp9: Add header comments
15981 347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
15983 2015-11-06 15:19:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15985 * gst/vaapi/gstvaapidecode.c:
15986 VP9: plugins: Add VP9 decoder
15988 2015-11-06 15:12:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15990 * gst-libs/gst/vaapi/Makefile.am:
15991 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15992 * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
15993 VP9: libgstvaapi: Add VP9 decoder
15995 2015-11-06 14:57:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15997 * gst-libs/gst/vaapi/gstvaapiprofile.c:
15998 * gst-libs/gst/vaapi/gstvaapiprofile.h:
15999 VP9: gstvaapiprofile: Add profile definitions
16001 2015-11-06 14:39:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16004 VP9: build: Check availability of vp9 decoder APIs
16006 2015-11-06 14:24:08 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16010 * gst-libs/gst/codecparsers/Makefile.am:
16011 VP9: Allow building vp9 codecparser internally
16013 2015-11-06 12:38:46 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16015 * ext/codecparsers:
16016 codecparsers: Update to gst-vaapi-branch commit ac5dc1a
16017 ac5dc1a: codecparsers: vp9: Add vp9 codec parser
16018 e7d9217: codecparser: h264: initialize parsing structures
16019 403d400: codecparser: h265: initialize parsing structures
16021 2015-11-04 15:37:34 +0100 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16024 configure.ac: don't use an undefined variable
16025 If the environment lacks of gstreamer development packages, this error will
16026 be reported to the user: "gstreamer- was not found"
16027 This is because we are using an undefined variable in the printed message. The
16028 fix simple changes the variable for the hard-coded string "1.0".
16029 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16030 https://bugzilla.gnome.org/show_bug.cgi?id=757283
16032 2015-10-16 15:55:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16034 * gst/vaapi/gstvaapidecode.c:
16035 vaapidecode: relax guards for memory:VASurface capsfeature
16036 Though caps features are supported since GStreamer 1.2, there are some
16037 issues with the features caps negotiation in that version. Nonetheless,
16038 those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
16039 feature negotiation is relaxed for GStreamer 1.4.
16040 The guard is the same as in vaapisink's caps template.
16041 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16042 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16044 2015-10-15 18:18:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16046 * gst/vaapi/gstvaapidecode.c:
16047 vaapidecode: decide allocation doesn't update srccaps
16048 The received caps query will bring the already negotiated caps, so they are
16049 not expected to change.
16050 This patch removes this verification which is dead code path.
16051 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16052 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16054 2015-10-14 20:30:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16056 * gst/vaapi/gstvaapidecode.c:
16057 * gst/vaapi/gstvaapipluginutil.c:
16058 * gst/vaapi/gstvaapipluginutil.h:
16059 vaapidecode: use caps to check the features
16060 Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
16061 expensive, we check the caps from the allocation query, to check the
16062 negotiated feature.
16063 In order to do this verification a new utility function has been implemented:
16064 gst_vaapi_caps_feature_contains().
16065 As this new function shared its logic with gst_caps_has_vaapi_surface(), both
16066 have been refactorized.
16067 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16068 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16070 2015-10-14 20:22:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16072 * gst/vaapi/gstvaapidecode.c:
16073 vaapidecode: set format before decide allocation
16074 There is a regression from commit 3d8e5e. It was expected the buffer pool
16075 allocation occur before the caps negotiation, but it is not.
16076 This patch fixes this regression: the caps negotiation is done regardless the
16077 allocation query from downstream.
16078 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16079 https://bugzilla.gnome.org/show_bug.cgi?id=756686
16081 2015-10-16 20:21:50 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16084 build: check for patch and fix yasm check
16085 Add configure checking for GNU patch tools and fixed configure
16086 checking YASM to correct sequence.
16087 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16088 https://bugzilla.gnome.org/show_bug.cgi?id=756690
16090 2015-10-15 19:20:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16092 * ext/libvpx/Makefile.am:
16093 build: Remove disable-md5 option for libvpx build
16094 The configure option --disable-md5 was provided in libvpx-1.3.0 which
16095 has been removed in 1.4.0.
16097 2015-10-15 19:00:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16099 * ext/libvpx/upstream:
16100 libvpx: Update the submodule to libvpx-1.4.0
16101 libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
16103 2015-10-15 10:59:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16106 configure: mark support for GStreamer 1.2 as obsolete.
16107 Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
16108 Our goal is to support the last two stable versions of GStreamer which
16109 are 1.4 and 1.6 at the moment.
16110 We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
16111 release and will get rid of those in 0.8.
16113 2015-10-12 14:13:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16115 * gst/vaapi/gstvaapidecode.c:
16116 vaapidecode: Fix buffer copy assertion
16117 Don't try to copy the NULL buffer-codec_data.
16119 2015-09-28 14:57:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16122 build: allow builds against GStreamer 1.7.x
16123 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16125 2015-09-23 16:02:46 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16127 * gst/vaapi/gstcompat.h:
16128 gstcompat: add gst_buffer_copy_deep() if gst < 1.5
16129 gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
16130 add an implementation if gstreamer-vaapi is linked to previous versions.
16131 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16133 2015-09-23 12:13:41 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16135 * gst/vaapi/gstvaapidecode.c:
16136 vaapidecode: simplify copy of GstVideoCodecState
16137 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16139 2015-09-14 19:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16141 * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
16142 * patches/videoparsers/series.frag:
16143 patches/videoparsers: h265parser: more API fences
16144 Add more API fences according with its version and refresh the patch.
16145 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16146 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16148 2015-09-14 19:19:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16150 * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
16151 * patches/videoparsers/series.frag:
16152 patches/videoparsers: h265parser: rename patch keeping number
16153 Refresh the patch and rename it in order to keep the patch number.
16154 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16155 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16157 2015-09-14 19:18:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16159 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16160 patches/videoparsers: h264parser: more API fences and refresh
16161 Add more API fences according with its version and refresh the patch.
16162 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16163 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16165 2015-09-14 19:16:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16167 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
16168 * patches/videoparsers/series.frag:
16169 patches/videoparsers: h264parser: fix description and refresh
16170 Fix a typo in the patch description and refresh it in order to avoid the
16171 creation of .orig files and break the distcheck target.
16172 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16173 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16175 2015-09-14 19:15:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16177 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
16178 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
16179 patches/videoparsers: h264parser: refresh patches
16180 In order to avoid the creation of .orig files and break the distcheck target.
16181 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16182 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16184 2015-09-15 16:53:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16186 * gst/vaapi/Makefile.am:
16187 build: link libgstvaapi_parse against codec parser
16188 GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
16189 when running configure.
16190 Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
16191 need it if builtin codec parsers are disabled.
16192 This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
16193 compilation. If builtin codec parsers are enable, this variable is null, so it
16194 should work using libgstvaapi, as normal.
16195 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16196 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16198 2015-09-11 16:35:30 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16201 build: verify for H264 MVC and H265 SPS
16202 Currently the H264 and H265 parsers look for MVC and SPS respectively, and
16203 the required symbols for those were added in GStreamer 1.5
16204 If we try to compile in GStreamer < 1.4, without enabling the builtin codec
16205 parsers, the compilation fails, because the lack of those symbols.
16206 This patch verifies if the installed H264 and H265 parsers have those symbols. If
16207 they do not, the specific built in codec parsers are enabled and used.
16208 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16209 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16211 2015-09-11 16:49:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16213 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16214 decoder: h264: initialize PPS's slice_group_id
16215 When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
16216 so it contains random data.
16217 When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
16218 pointer uninitialized, leading to a segmentation fault when the memory is
16220 This patch prevents this by initializing the slice_group_id before the PPS
16222 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16223 https://bugzilla.gnome.org/show_bug.cgi?id=754845
16225 2015-09-15 11:01:29 +0300 Mark Nauwelaerts <mnauw@users.sourceforge.net>
16227 * gst/vaapi/gstvaapidecode.c:
16228 vaapidecode: proper numerator and denominator for forced latency framerate
16229 https://bugzilla.gnome.org/show_bug.cgi?id=755040
16231 2015-09-11 20:51:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16233 * ext/codecparsers:
16234 codecparsers: Update to gst-vaapi-branch commit f9e284b
16235 dae1a84: h264parse/h265parse: Fix negotiation crash
16236 45a9f8a: codecparsers: h265 : Fix default scaling list values
16237 28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
16238 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16240 2015-09-04 22:19:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16242 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16243 decoder: hevc: Don't flush dpb for EOS/EOB nal
16244 Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
16245 the dpb_add() itself will handle the flusing(if needed) of dpb
16246 for end of sequence and end of bitstream.
16247 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16249 2015-09-04 22:11:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16251 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16252 decoder: hevc: Fix the dpb_add() based on C.5.2.3
16253 Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
16254 just after the PicLatencyCnt setting of existing dpb frames.
16255 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16257 2015-09-04 22:02:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16259 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16260 decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
16261 This fix is based on the V3 vesion of spec which was missing in older versions.
16262 When the current picture has PicOutputFlag equal to 1, for each picture in the
16263 DPB that is marked as "needed for output" and follows the current picture in output order,
16264 the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
16265 https://bugzilla.gnome.org/show_bug.cgi?id=754010
16267 2015-09-04 22:00:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16269 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16270 decoder: h265: Fix indentation
16272 2015-06-13 01:39:31 +1000 Jan Schmidt <jan@centricular.com>
16274 * gst-libs/gst/vaapi/gstvaapidecoder.c:
16275 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16276 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16277 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16278 * gst/vaapi/gstvaapidecode.c:
16279 * gst/vaapi/gstvaapipluginutil.c:
16280 multiview: initial attempt at stereo/multiview support
16281 Add support for marking caps and buffers for multiview or
16282 stereoscopic output.
16283 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16285 2015-08-28 17:12:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16287 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16288 decoder: hevc: remove unused functions
16289 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16290 https://bugzilla.gnome.org/show_bug.cgi?id=754250
16292 2015-08-31 13:11:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16294 * gst/vaapi/gstvaapidecode.c:
16295 vaapidecode: remove (another) unused variable
16296 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16298 2015-08-28 17:10:40 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16300 * gst/vaapi/gstvaapidecode.c:
16301 vaapidecode: remove unused variable
16302 Thus silence the compilation warnings.
16304 2015-08-28 16:06:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16306 * gst/vaapi/gstvaapidecode.c:
16307 vaapidecode: compilation fix
16308 gst_vaapi_decoder_state_changed() returns void. This patch fixes the
16309 compilation where the toolchain uses restrictive flags as clang.
16310 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16312 2015-08-29 00:27:05 +0300 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16314 * gst/vaapi/gstvaapidecode.c:
16315 vaapidecode: renegotiate if caps are not equal
16316 The use of gst_caps_is_always_compatible() for this optimization may lead to
16317 false positives. It is better to stick to gst_caps_is_strictly_equal() to know
16318 if it is required a re-negotiation.
16319 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16320 https://bugzilla.gnome.org/show_bug.cgi?id=750835
16322 2015-08-29 00:18:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16324 * gst/vaapi/gstvaapidecode.c:
16325 * gst/vaapi/gstvaapidecode.h:
16326 vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
16327 Delaying the pool re-negotiation untill we push all decoded (and queued)
16328 frames downstream. Otherwise for the multi-resolution videos, the
16329 GstVideoVideoMemory will be having wrong resolution and which leads
16330 to nasty behaviours, especially when using software renderers.
16331 sample media file: RAP_B_Bossen_1.bin
16333 The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
16334 get the final resoultion 416x240.
16335 Starting from 25 th frame, the resolution will change to 416x240. But parser
16336 elements won't report this since the effective croped resolution is same in
16337 both cases. Here the core libgstvaapi will detect this through it's internal
16338 parsing and do all context/pool destory/reset stuffs. Also it will notify this
16339 change to plugins in advance. But if the plugin try to do re-negotiaion of pool
16340 immediately, this will not sync with the resolution of already decoded and queued
16341 frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
16342 software renderer). So we have to delay the pool renegotiation in vaapidecode,
16343 untill we push all decoded frames downstream.
16344 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16346 2015-08-28 23:43:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16348 * gst/vaapi/gstvaapidecode.c:
16349 vaapidecode: Always keep a copy of input codec state
16350 Currently we are sharing the input GstVideoCodecState with
16351 GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
16352 each caps change. This is troublesome in many cases, for eg: if
16353 resoultion changes with in a singe stream. Because, when ever there
16354 is a resolution change, GstVideoDecoder will first change the Codec_state->caps
16355 fields with new resolution, but since we are using the same codecstate (ref)
16356 in gstvaapidecode.c, the caps check for input caps change will always fail.
16357 https://bugzilla.gnome.org/show_bug.cgi?id=753914
16359 2015-08-26 07:25:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16361 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16362 decoder: hevc: Fix the scaling list scan order
16363 The default scan order of scaling lists are up-right-diagonal
16364 as per hevc specification. Use the newly implemented
16365 uprightdiagonal_to_raster conversion codecparser APIs to
16366 get the the scaling_list values in raster order, which is
16367 what the VA intel driver requires.
16369 2015-08-26 07:20:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16371 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16372 decoder: hevc: sync with the codecparser changes
16373 The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
16374 in codecparsers now. Remove the duplication from gstvaapidecoder_h265
16376 2015-08-26 07:04:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16378 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16379 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16381 2015-08-26 06:57:36 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16383 * ext/codecparsers:
16384 codecparsers: Update to gst-vaapi-branch commit 69550f1
16385 c207c6d: codecparsers: h265: Fix tile row and column parsing
16386 47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
16387 cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16388 1746bbe: videoparsers: Use gst_base_parse_merge_tags()
16389 2f0932b: h264parse: Clear SPS info after processing
16390 f57d6b0: videoparsers: enable accept-template flag
16392 2015-08-25 15:38:42 +0000 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16394 * debian.upstream/control.in:
16395 debian: add yasm as build dependency
16396 As the compilation of libvpx (for vp8 parser) is enabled by default,
16397 yasm is required by default too.
16398 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16400 2015-08-14 19:21:04 +0800 Lim Siew Hoon <siew.hoon.lim@intel.com>
16402 * debian.upstream/rules:
16403 debian: remove --with-gstreamer-api option
16404 It is no longer valid in gstreamer-vaapi.
16405 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16406 [removed unused GST_API_VERSION variable]
16407 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16408 https://bugzilla.gnome.org/show_bug.cgi?id=753618
16410 2015-08-24 19:22:14 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16412 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16413 wayland: rename is_cancelled to sync_failed
16414 Since commit 065a18a3, the semantics of the variable is_cancelled did not make
16415 sense. This commit renames this variable to sync_failed.
16417 2015-08-13 15:12:44 -0400 Olivier Crete <olivier.crete@collabora.com>
16419 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16420 wayland: Don't return GST_FLOW_ERROR on flushing
16421 Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
16422 return FALSE which makes gst_vaapi_window_wayland_render() return
16423 FALSE which ends up posting an ERROR message in
16424 gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
16426 https://bugzilla.gnome.org/show_bug.cgi?id=753598
16428 2015-08-06 12:28:51 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16430 * gst/vaapi/gstvaapi.c:
16431 Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
16432 This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
16434 2015-07-06 20:22:57 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16436 * gst/vaapi/gstvaapidecodebin.c:
16437 vaapidecodebin: check for postproc instance
16438 If the VPP's deinterlace-method is set, first we should check if the postproc
16439 is already instanced to set it. Otherwise we just store it until the VPP is
16440 added into the bin.
16441 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16442 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16444 2015-08-06 18:48:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16446 * gst/vaapi/gstvaapidecodebin.c:
16447 * gst/vaapi/gstvaapipluginutil.c:
16448 * gst/vaapi/gstvaapipluginutil.h:
16449 vaapidecodebin: ensure VPP before going to READY
16450 There are sometimes that the VA-API display context is not shared among the
16451 pipeline, but it is important to know it before going to READY state (when the
16452 pipeline is already linked).
16453 One instance of this case is this:
16454 gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
16455 This patch adds a new function in gstvaapipluginutil called
16456 gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
16457 display, which only will be used for verify if the VAEntrypointVideoProc is
16458 available by the hardware. Afterwards, it should be unrefed.
16459 If the vaapidecodebin is going to READY state, and the element still doesn't
16460 know if VPP is available, the last resort is to create a new instance of the
16461 VA-API display and test for it.
16462 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16464 2015-08-06 12:39:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16466 * gst/vaapi/gstvaapidecodebin.c:
16467 vaapidecodebin: post an error message if fails
16468 If the construction of the bin fails, post an error message in the bus.
16469 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16470 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16472 2015-08-06 12:36:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16474 * gst/vaapi/gstvaapidecodebin.c:
16475 * gst/vaapi/gstvaapidecodebin.h:
16476 vaapidecodebin: has_vpp as a tri-state variable
16477 has_vpp can be UNKNOWN while the context message hasn't being received.
16478 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16479 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16481 2015-08-03 16:33:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16483 * gst/vaapi/gstvaapivideomemory.c:
16484 gstvaapivideomemory: native format with no derived image
16485 If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
16486 info based on the derived image configuration.
16487 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16488 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16490 2015-07-23 20:07:59 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16492 * gst-libs/gst/vaapi/video-format.c:
16493 * gst-libs/gst/vaapi/video-format.h:
16494 * gst/vaapi/gstvaapivideomemory.c:
16495 surface pool config based on video info
16496 First added the function gst_vaapi_video_format_get_best_native(), which
16497 returns the best native format that matches a particular chroma type:
16498 YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
16499 RGB32 chroma and encoded format map to NV12 too.
16500 That format is used to configure, initially, the surface's pool for the
16502 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16503 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16505 2015-07-23 16:03:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16507 * gst/vaapi/gstvaapivideomemory.c:
16508 gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
16509 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16510 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16512 2015-06-19 15:51:07 +0200 Victor Jaquez <vjaquez@igalia.com>
16514 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16515 gstvaapiencoder: validate chroma according to the VA's RT format
16516 Before, only YUV420 color space where supported. With this patch, the
16517 encoder is queried to know the supported formats and admits YUV422
16518 color space if its available.
16519 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16520 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16522 2015-08-13 05:07:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16524 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16525 decoder: hevc: Add calculation of WpOffsetHalfRangeC
16526 This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
16527 prediction weight table values with out using any hard coding.
16528 Fixme: We don't have parser API for sps_range_extension, so
16529 assumed zero value for high_precision_offsets_enabled_flag.
16530 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16532 2015-08-13 04:09:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16534 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16535 decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
16536 Based on ITU-T rec H265(4/2015): 7-56
16537 This was a wrong equation in rec H265 (4/2013): 7-44...
16538 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16540 2015-08-13 04:08:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16542 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16543 decoder: hevc: Fix default value assignment of pred_weight_table
16545 2015-08-13 03:48:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16547 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16548 decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
16549 Assign only if ChromaArrayType != 0..
16550 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16552 2015-08-13 03:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16554 * ext/codecparsers:
16555 codecparsers: Update to gst-vaapi-branch commit 1c70432
16556 8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16557 839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
16558 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16560 2015-08-11 08:09:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16562 * ext/codecparsers:
16563 codecparsers: Update to gst-vaapi-branch commit c18b8ad
16564 8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
16565 a033083: videoparsers: h265: Fix the frame start detection code
16566 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16568 2015-08-10 05:50:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16570 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16571 decoder: hevc: Add SEI parsing
16572 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16574 2015-08-07 08:43:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16576 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16577 decoder: hevc: Workaround to recognize wrongly encoded main profile streams
16578 HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
16579 There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
16580 have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
16581 has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
16582 is TRUE. Assuming them as MAIN profile for now.
16583 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16584 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16586 2015-08-07 08:41:57 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16588 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16589 patches/videoparsers: Fix the wrong source file path
16590 This is something wrongly typed in commit 6d7b631
16592 2015-08-07 08:34:55 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16594 * ext/codecparsers:
16595 codecparsers: Update to gst-vaapi-branch commit b8d8be4
16596 ee7e81b: h264parse: Don't discard first AU delimiter
16597 3690fb9: h264parse: Add more NAL types for debugging output
16598 108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
16599 ace61048: h265parse: expose compatible profiles to downstream
16600 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16602 2015-08-06 13:07:53 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16604 * gst/vaapi/gstvaapipluginutil.c:
16605 * gst/vaapi/gstvaapivideocontext.c:
16606 * gst/vaapi/gstvaapivideocontext.h:
16607 gstvaapivideocontext: remove unused parameter
16608 gst_vaapi_video_context_prepare() received an unused parameter. This patch
16609 removes it and the structure passed by the caller.
16610 This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
16611 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16613 2015-08-06 04:01:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16615 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16616 decoder: hevc: Fix decoding of stream when it has temporal sublayers
16617 We are calculating the dpb size based on max_dec_pic_buffering.
16618 But if there are more than one temporal sublayers, we are supposed
16619 to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
16620 size calculation (Assuming HighestTid as max_sub_layers_minus).
16621 Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
16622 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16623 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16625 2015-08-05 14:11:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16627 * gst/vaapi/gstvaapidecode.c:
16628 * gst/vaapi/gstvaapidecodebin.c:
16629 * gst/vaapi/gstvaapiencode_h264.c:
16630 * gst/vaapi/gstvaapiencode_h265.c:
16631 * gst/vaapi/gstvaapiencode_jpeg.c:
16632 * gst/vaapi/gstvaapiencode_mpeg2.c:
16633 * gst/vaapi/gstvaapiencode_vp8.c:
16634 * gst/vaapi/gstvaapipluginutil.h:
16635 * gst/vaapi/gstvaapipostproc.c:
16636 * gst/vaapi/gstvaapisink.c:
16637 refactor vaapi caps strings for pad templates
16638 Refactor the main vaapi caps strings into three macros:
16639 GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
16640 GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
16641 Those are in gstvaapipluginutil.h so all the elements could use them, instead
16642 of re-declaring them every time.
16643 No functional changes.
16644 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16646 2015-08-05 14:15:07 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16648 * gst/vaapi/gstvaapipostproc.c:
16649 gstvaapipostproc: fix code style
16650 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16652 2015-08-05 05:23:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16654 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16655 decoder: hevc: Fix the decoding of dependent slice segment
16656 Decoding process for reference picture list construction needs to be
16657 invoked only for P and B slice and the value for slice_type of dependent slice
16658 segment should be taken from the previous independent slice segment header
16660 https://bugzilla.gnome.org/show_bug.cgi?id=753226
16661 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16663 2015-06-22 17:38:41 +0200 Victor Jaquez <vjaquez@igalia.com>
16665 * gst/vaapi/gstvaapipluginbase.c:
16666 plugins: reduce the noise of warnings
16667 Those messagse should be attached to the object, also the lack of
16668 caps is not an error, in particular in the case of JPEG encoding.
16669 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16670 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16672 2015-06-23 17:49:51 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16674 * gst-libs/gst/vaapi/gstvaapicontext.c:
16675 gstvaapicontext: fix the JPEG encoder attribs value
16676 When we query for the VAConfigAttribEncJPEG, we get a value which packs the
16677 VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
16678 assigns the returned value to the attribute.
16679 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16680 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16682 2015-06-18 17:37:46 +0200 Victor Jaquez <vjaquez@igalia.com>
16684 * gst-libs/gst/vaapi/gstvaapiencoder.c:
16685 gstvaapiencoder: framerate 0/1 is valid too
16686 Framerate 0/1 is valid, and it is particularly useful for picture
16687 encoding, such as jpeg. This patch makes the encoder to admit that
16689 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16690 https://bugzilla.gnome.org/show_bug.cgi?id=744042
16692 2015-07-03 09:35:16 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16694 * gst/vaapi/gstvaapipostproc.c:
16695 vaapipostroc: GLTextureUploadMeta in sink template
16696 Advertise GLTextureUploadMeta in sink caps template.
16697 https://bugzilla.gnome.org/show_bug.cgi?id=752130
16699 2015-07-23 13:11:40 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16701 * gst/vaapi/Makefile.am:
16702 * gst/vaapi/gstvaapiencode.c:
16703 * gst/vaapi/gstvaapipluginbase.c:
16704 * gst/vaapi/gstvaapipluginbase.h:
16705 * gst/vaapi/gstvaapipostproc.c:
16706 * gst/vaapi/gstvaapisink.c:
16707 * gst/vaapi/gstvaapiuploader.c:
16708 * gst/vaapi/gstvaapiuploader.h:
16709 remove gstvaapiuploader
16710 Working on bug #744042 I realized that the gstvaapiuploader is practically not
16712 This patch removes the gstvaapiuploader and add the method
16713 gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
16714 the system can handle, which is used by vaapisink and vaapipostproc.
16715 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16716 https://bugzilla.gnome.org/show_bug.cgi?id=752777
16718 2015-07-27 18:49:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16720 * gst/vaapi/gstvaapidecode.c:
16721 vaapidecode: don't lost GLTextureUpload on seek
16722 When seeking, the decoder is reset, but the buffer pool is not
16723 re-negotiated, but in reset_full() the code forgets if the negotiated buffer
16724 pool has the GLTextureUpload meta.
16725 The decoder knows that GLTextureUpload meta was negotiated in
16726 decide_allocation(), but this method is not called when seeking.
16727 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16728 https://bugzilla.gnome.org/show_bug.cgi?id=752929
16730 2015-07-21 18:45:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16732 * gst/vaapi/gstvaapipluginutil.c:
16733 plugins: don't use gst_pad_get_allowed_caps()
16734 gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
16735 decoders, that is OK, but in the case of the postproc might lead loops,
16736 since the gst_base_transform_query_caps() forwards the query upstream
16738 Instead of gst_pad_get_allowed_caps() we only query the peer with
16739 gst_pad_peer_query_caps() using the pad's template as filter.
16740 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16741 https://bugzilla.gnome.org/show_bug.cgi?id=752558
16743 2015-07-22 12:40:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16748 2015-07-22 09:45:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16750 * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
16751 * patches/videoparsers/series.frag:
16752 patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
16753 All API/ABI changes for S3D/MVC are added in 1.5, backporting
16754 them to older verison is not recommended.
16755 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16757 2015-07-22 09:41:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16759 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16760 patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16762 2015-07-22 09:38:42 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16764 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
16765 decoder: jpeg: Align with new API/ABI changes in codecparser
16766 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16768 2015-07-22 09:31:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16770 * ext/codecparsers:
16771 codecparsers: Update to gst-vaapi-branch commit 800bdb2
16772 ed13220: mpegvideometa: add meta transform function
16773 18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
16774 7a51722: codecparsers: jpeg: fix docs for table parsing functions
16775 06b8ded: codecparsers: jpeg: fix validity checking of data parsed
16776 387a39d: codecparsers: jpeg: fix up API
16777 db9d6a9: codecparsers: jpeg: tweak API a little
16778 bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
16779 f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
16780 4658c30: codecparsers: jpeg: fix calculation of segment size
16781 759bcb9: codecparsers: jpeg: fix default Huffman tables generation
16782 b4811ee: codecparsers: jpeg: add JPEG bitstream parser
16783 9422464: h264parse: fix typo in log message
16784 9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
16785 77704ce: nalutils: trivial patch to check if
16786 8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
16787 7862f95: Revert "codecparsers: remove ignored increment of return"
16788 54017b1: h264parse: Add support for passing stereoscopic/multiview info
16789 8667ee4: h264parse: Don't switch to passthrough on set_caps()
16790 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16792 2015-06-29 14:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16794 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16795 decoder: h264: track previous reference frames.
16796 Improve closure of gaps in frame_num by strictly following and trying
16797 to fill them with previous reference frames. So, they are now tracked
16798 thus avoiding insertion of dummy ("greenish") frames.
16800 2015-06-29 13:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16802 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16803 decoder: h264: fix integration of second field into the DPB.
16804 If the new picture to be added to the DPB is not a first field, then
16805 it shall be the second field of the previous picture that was added
16807 This removes the need for dpb_find_picture() now that we track the
16808 immediately preceding decoded picture, in decode order.
16810 2015-07-06 14:38:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16812 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16813 decoder: h264: fix closure of "other-field" gap.
16814 When a dummy "other-field" is inserted, it is assumed to inherit the
16815 reference flags from the first field, and the sliding window decoded
16816 reference picture marking process is also executed so that corrupted
16817 frames are moved out as early as possible.
16818 While doing so, we also try to output frames that now contain a single
16819 valid field picture, prior to inserting any other picture into the DPB.
16820 Note: this may be superfluous currently based on the fact that dpb_add()
16821 combines the two most recent pairable fields, but this process would be
16822 further simplified later on.
16824 2015-06-24 13:58:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16826 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16827 decoder: h264: track corrupted frames.
16828 Mark the picture as "corrupted" if it is reconstructed from corrupted
16829 references or if those references are fake, e.g. resulting from lost
16831 This is useful for notifying the upper layer, or downstream elements,
16832 that the decoded frame may contain artefacts.
16833 https://bugzilla.gnome.org/show_bug.cgi?id=703921
16835 2015-06-24 13:48:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16837 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
16838 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
16839 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
16840 * gst/vaapi/gstvaapidecode.c:
16841 decoder: add initial infrastructure for marking corrupted output.
16842 Add initial infrastructure in core codec library and vaapidecode to mark
16843 corrupted frames as such. A corrupted frame is such a frame that was
16844 reconstructed from invalid references for instance.
16845 https://bugzilla.gnome.org/show_bug.cgi?id=751434
16846 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16848 2015-07-15 18:18:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16851 Bump version for development
16853 === release 0.6.0 ===
16855 2015-07-15 15:49:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16860 2015-07-15 15:49:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16865 2015-07-14 19:39:20 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16867 * gst-libs/gst/vaapi/gstvaapiprofile.c:
16868 vaapidecoder: no wmv profiles gstreamer 1.4/1.2
16869 This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
16870 Right now there is not a primary ranked parser for vc1 and the demuxers
16871 delivers caps without specifying the profile. This situation is not an issue
16872 for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
16873 explicit profile defined in the negotiated caps.
16874 Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
16875 negotiation admits caps subsets try outs.
16876 This patch solves the issue ignoring the profile negotiation in the caps. For
16877 gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
16878 done without the vc1 parser, such as happens in gstreamer 1.5.
16879 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16881 2015-07-07 20:57:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16883 * gst/vaapi/gstvaapi.c:
16884 Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
16885 Unfortunately vaapidecodebin element is not seems to be stable
16886 enough for autoplugging ahead of vaapidecode.
16887 Lowering the rank for now (cosidering the immediate 0.6 release).
16888 See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
16889 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16891 2015-07-07 13:32:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16893 * gst-libs/gst/vaapi/Makefile.am:
16894 build: Add missing CFLAGS to Makefile.am
16896 2015-07-03 15:07:02 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16898 * gst-libs/gst/vaapi/gstvaapifilter.c:
16899 gstvaapifilter: Only register STE property if it supported by corresponding VA library
16900 Fix the regression introduced in commit eb465fb.
16901 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
16902 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16904 2015-07-02 17:49:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16906 * gst/vaapi/gstvaapipostproc.c:
16907 vaapipostproc: no format convert on GL tex upload meta
16908 When GL texture upload meta is negotiated, vaapipostproc shall not modify the
16909 color format of the buffer.
16910 https://bugzilla.gnome.org/show_bug.cgi?id=748184
16912 2015-07-03 12:42:09 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16914 * gst-libs/gst/vaapi/gstvaapifilter.c:
16915 gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
16916 VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
16917 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16919 2015-07-02 21:57:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16921 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
16922 encoder:h265: Fix the check for packed-header support
16923 Use VA_ENC_PACKED_HEADER_* definition for checking.
16924 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16926 2015-07-02 21:37:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16928 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16929 encoder:h264: Fix the check for packed-header support
16930 Use VA_ENC_PACKED_HEADER_* definition for checking.
16931 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16933 2015-07-02 21:00:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16935 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16936 encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
16937 One buffering_period() SEI message shall be present in every IDR access unit
16938 when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
16939 use a non-CQP mode, e.g. CBR. In other words, when
16940 nal_hrd_parameters_present_flag is set to 1.
16941 One picture_timing() SEI messages shall be present in every access unit
16942 if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
16943 https://bugzilla.gnome.org/show_bug.cgi?id=722734
16944 https://bugzilla.gnome.org/show_bug.cgi?id=751831
16945 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16947 2015-07-01 14:16:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16949 * gst/vaapi/gstvaapidecodebin.c:
16950 vaapidecodebin: notify if vpp is disabled
16951 When the system is aware that VPP is not available by the VA driver,
16952 it would be useful to notify to the user that the disable-vpp property
16954 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16956 2015-07-01 14:17:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16958 * gst/vaapi/gstvaapidecodebin.c:
16959 * gst/vaapi/gstvaapidecodebin.h:
16960 vaapidecodebin: enable vpp if it is available
16961 Instead of creating and adding VPP into the bin at setup, we wait until
16962 we are sure the VA driver supports it. We know that when the VA video
16963 context is received by the bin. Afterwards, it is decided to instanciate
16964 and link the VPP or not.
16965 This is more efficient and safer than waiting the VPP to fail and then
16967 https://bugzilla.gnome.org/show_bug.cgi?id=749554
16969 2015-07-02 12:29:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16971 * tests/test-display.c:
16972 * tests/test-windows.c:
16973 tests: Fix compilation while enabling egl as the only renderer in build
16974 Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
16976 2015-07-02 10:45:50 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16979 configure: fix the build while enabling egl as the only renderer
16981 2015-07-02 10:25:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16984 libs: Bump library major version
16986 2015-06-30 09:44:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16988 * gst/vaapi/gstvaapi.c:
16989 * gst/vaapi/gstvaapidecodebin.c:
16990 * gst/vaapi/gstvaapiencode.c:
16991 * gst/vaapi/gstvaapiencode_jpeg.c:
16992 * gst/vaapi/gstvaapipluginbase.c:
16993 * gst/vaapi/gstvaapipluginutil.c:
16994 * gst/vaapi/gstvaapipostproc.c:
16995 * gst/vaapi/gstvaapivideobufferpool.c:
16996 * gst/vaapi/gstvaapivideocontext.c:
16997 * gst/vaapi/gstvaapivideomemory.c:
16998 * gst/vaapi/gstvaapivideometa.c:
16999 gst/vaapi: Switch to upstreram like indentation.
17000 gst-indent for all gst/vaapi/*.c source files
17002 2015-06-30 09:35:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17004 * gst/vaapi/gstvaapidecodebin.c:
17005 * gst/vaapi/gstvaapidecodebin.h:
17006 vaapidecodebin: Add property to disable VPP
17007 Adding a new propery "disable-vpp", enabling it will prevent
17008 the insertion of vaapipostproc child element.
17009 This is helpful in debugging, specifically to narrow-down the
17010 vaapidecodebin/vaapipostproc related negotiation issues.
17011 No support for run-time disabling for now.
17012 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17014 2015-06-29 13:35:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17016 * gst/vaapi/gstvaapipostproc.c:
17017 vaapipostproc: Fix wrong selection of passthrough mode.
17018 The Current code path is falling back to passthorugh mode if there is no
17019 vpp property set by the user explictily. But we should not use the
17020 passthrough mode if the negotiated src pad caps have a differnt color space
17021 format than sink pad caps (Even though the user didn't set the format property
17023 https://bugzilla.gnome.org/show_bug.cgi?id=748184
17024 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17026 2015-06-29 13:20:28 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17028 * gst/vaapi/gstvaapipostproc.c:
17029 vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
17030 This is a workaround to deal with the va-intel-driver for non-native
17031 formats while doing advanced deinterlacing. The format of reference surfaces must
17032 be same as the format used by the driver internally for motion adaptive
17033 deinterlacing and motion compensated deinterlacing.
17034 A permanent solution could be to do the color space conversion internally
17035 for reference surfaces.
17036 https://bugzilla.gnome.org/show_bug.cgi?id=730925
17037 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17039 2015-06-29 13:06:30 +0300 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17041 * gst/vaapi/gstvaapisink.c:
17042 Work around ABBA deadlock between vaapisink and vaapipostproc
17043 vaapisink takes the display lock, then does a gst_buffer_replace which can
17044 take the lock on the gst_vaapi_video_pool.
17045 vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
17046 the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
17047 surfaces, which means that gst_vaapi_surface_create is
17048 called. gst_vaapi_surface_create takes the display lock.
17049 If vaapisink and vaapipostproc are in different threads, and this happens,
17050 you get a deadlock. vaapisink holds the display lock, and wants the
17051 gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
17052 and wants the display lock.
17053 Work around this by releasing the display lock in vaapisink around the
17054 gst_buffer_replace.
17055 https://bugzilla.gnome.org/show_bug.cgi?id=738249
17056 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17057 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17059 2015-04-29 16:34:07 +0200 Jacobo Aragunde Pérez <jaragunde@igalia.com>
17061 * gst/vaapi/gstvaapidecodebin.c:
17062 * gst/vaapi/gstvaapidecodebin.h:
17063 vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
17064 https://bugzilla.gnome.org/show_bug.cgi?id=745901
17066 2015-05-19 11:24:10 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17068 * gst/vaapi/gstvaapipostproc.c:
17069 vaapipostproc: log negotiated caps
17071 2015-05-18 14:30:22 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17073 * gst/vaapi/gstvaapipostproc.c:
17074 vaapipostproc: remove useless debug message
17076 2015-02-12 12:31:57 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17078 * gst/vaapi/gstvaapidecode.c:
17079 vaapidecode: log negotiated src/sink caps
17081 2015-05-07 15:57:26 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17083 * gst/vaapi/gstvaapisink.c:
17084 vaapisink: error handling if rendering fails
17085 This patch enhance the code path when an error is found when rendering a
17087 If the video meta doesn't contain a surface proxy or a surface, a warning
17088 message is printed.
17089 If the rendering backend fails, a error message is posted in the bus.
17090 https://bugzilla.gnome.org/show_bug.cgi?id=749382
17092 2015-06-18 14:55:12 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17094 * gst/vaapi/gstvaapisink.c:
17095 vaapisink: Fix the conditional pad template creation.
17097 2015-06-18 13:19:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17099 * tests/Makefile.am:
17100 build: Don't build simple-encoder test program if there is no VA Encoding support
17101 This will fix the build error against older VA-APIs <= 0.32
17103 2015-06-18 12:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17105 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17106 * gst-libs/gst/vaapi/gstvaapicompat.h:
17107 Fix build error for older VA-API versions
17108 Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
17109 VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
17112 2015-06-17 14:20:37 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17114 * gst/vaapi/gstvaapisink.c:
17115 vaapisink: Fix the capsfeature advertisement in padtemplate
17116 This fixes the regression introduced in 64acc74.
17117 If a pad supports multiple set of capsfeatures, it needs to add
17118 multiple equal structures with different feature sets to the caps.
17119 Because caps structures with the same name but with a non-equal
17120 set of caps features are not compatible.
17121 Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
17122 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17124 2015-06-17 12:41:28 +0300 Adrian Cox <adrian@humboldt.co.uk>
17126 * gst/vaapi/gstvaapisink.c:
17127 vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
17128 https://bugzilla.gnome.org/show_bug.cgi?id=750095
17129 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17130 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17132 2015-06-17 09:53:29 +0300 Olivier Crete <olivier.crete@collabora.com>
17134 * gst/vaapi/gstvaapipluginbase.c:
17135 vaapipluginbase: Override downstream allocation reply if no pool
17136 If the downstream replied without a pool, then override it.
17137 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17139 2015-06-09 15:15:31 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17141 * gst/vaapi/gstvaapipostproc.c:
17142 * gst/vaapi/gstvaapipostproc.h:
17143 vaapipostproc: add color balance interface
17144 https://bugzilla.gnome.org/show_bug.cgi?id=720376
17146 2015-05-22 18:13:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17148 * gst-libs/gst/vaapi/gstvaapifilter.c:
17149 * gst-libs/gst/vaapi/gstvaapifilter.h:
17150 * gst/vaapi/gstvaapipostproc.c:
17151 * gst/vaapi/gstvaapipostproc.h:
17152 vaapipostproc: add skin tone enhancement
17153 Added the 'skin-tone-enhancement' property to vaapostproc.
17154 https://bugzilla.gnome.org/show_bug.cgi?id=744088
17156 2015-05-20 18:02:37 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17158 * docs/reference/libs/libs-docs.xml.in:
17159 doc: add VA-API reference in freedesktop
17161 2015-06-04 19:03:44 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17163 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17164 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17165 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17166 patches/videoparsers: rebase all the h264parse patches
17167 In order to avoid the creation of .orig files and break the distcheck target
17169 2015-06-04 18:29:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17171 * ext/libvpx/Makefile.am:
17172 build: don't build in parallel libvpx
17173 This fixes the distcheck -j XX target.
17175 2015-06-02 08:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17177 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
17178 encoder: jpeg: Fix the packed header generation
17179 This is a work-around to satisfy the va-intel-driver.
17180 Normalize the quality factor and scale QM values (only for packed header
17181 generation) similar to what VA-Intel driver is doing . Otherwise the
17182 generated packed headers will be wrong, since the driver itself is
17183 scaling the QM values using the normalized quality factor.
17184 https://bugzilla.gnome.org/show_bug.cgi?id=748335
17185 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17187 2015-06-02 11:46:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17189 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17190 decoder: h264: fix uninitialized variables in avcC mode.
17191 Fix uninitialized variables when decoding SPS and PPS NAL units from
17192 "codec-data" buffers. This is particularly important when seeking ops
17193 are involved, and the new persistent states are used more often.
17194 https://bugzilla.gnome.org/show_bug.cgi?id=750094
17196 2015-06-01 18:39:18 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17198 * gst/vaapi/gstvaapidecode.c:
17199 vaapidecode: remove unneeded casting
17200 And a code-style fix
17202 2015-05-21 19:38:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17204 * gst/vaapi/gstvaapidecode.c:
17205 vaapidecode: calculate decoding latency
17206 This is a naïve approach to the calculation of the VA-API decoding latency. It
17207 takes into consideration when the frame-rate has some insane value.
17208 https://bugzilla.gnome.org/show_bug.cgi?id=740419
17210 2015-05-21 23:16:14 +1000 Jan Schmidt <jan@centricular.com>
17213 configure: Compiling against libgstgl requires libgstvideo
17214 Fix detection of the GstGL helper headers in uninstalled
17217 2015-05-28 10:52:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17219 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17220 encoder: hevc: Fix the size over-flow for encoded buffer.
17221 The approximation of 6 times compression ratio migh not
17222 work in all cases. Especially when enabling I frames.
17223 Provide large enough size for coded-buffer creation.
17225 2015-05-28 10:43:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17227 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
17228 encoder: vp8: Fix the size over-flow for encoded buffer.
17229 The approximation of 4 times compression ratio will not
17230 work in all cases. Especially when enabling I frames.
17231 Provide large enough size for coded-buffer creation.
17233 2015-05-28 05:43:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17235 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17236 encoder: hevc: fix bug in multi slice encoding.
17237 This is a work-around for satisfying the VA-Intel driver.
17238 The driver only support slices begin from CTU row start address.
17239 Multi-Slice encoding also requires a fix in va-intel-driver:
17240 http://lists.freedesktop.org/archives/libva/2015-May/003351.html
17241 https://bugzilla.gnome.org/show_bug.cgi?id=749854
17242 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17244 2015-03-12 22:57:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17246 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17247 decoder: h264: add initial support for loss of pictures.
17248 Implement decoding process for gaps in frame_num (8.5.2). This
17249 also somewhat supports unintentional loss of pictures.
17250 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17251 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17252 Original-patch-by: Wind Yuan <feng.yuan@intel.com>
17253 [fixed derivation of POC, ensured clone is valid for reference,
17254 actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
17255 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17257 2015-05-22 11:42:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17259 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17260 decoder: h264: add support for missing first field.
17261 Try to identify missing first fields too, thus disregarding any
17262 intermediate gaps in frames. We also assume that we keep the same
17263 field sequence, i.e. if previous frames were in top-field-first
17264 (TFF) order, then so are subsequent frames.
17265 Note that insertion of dummy first fields need to operate in two
17266 steps: (i) create the original first field that the current field
17267 will inherit from, and (ii) submit that field into the DPB prior
17268 to initializing the current (other) field POC values but after any
17269 reference flag was set. i.e. copy reference flags from the child
17270 (other field) to the parent (first field).
17271 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17273 2015-05-07 14:00:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17275 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17276 decoder: h264: add support for missing second field.
17277 Interlaced H.264 video frames always have two fields to decode and
17278 display. However, in some cases, e.g. packet loss, one of the field
17279 can be missing. This perturbs the reference picture marking process,
17280 whereby the number of references available in DPB no longer matches
17281 the expected value.
17282 This patch adds initial support for missing field within a decoded
17283 frame. The current strategy taken is to find out the nearest field,
17284 by POC value, and with the same parity.
17285 https://bugzilla.gnome.org/show_bug.cgi?id=745048
17287 2015-05-22 17:06:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17289 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17290 decoder: h264: improve tracking of "top-field-first" flag.
17291 Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
17292 does not mandate it. This will be useful for tracking missing fields, and
17293 also for more correct _split_fields() implementation for frames in the DPB.
17295 2015-05-05 11:56:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17297 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17298 decoder: h264: skip all pictures prior the first I-frame.
17299 Don't try to decode pictures until the first I-frame is received within
17300 the currently active sequence. There is no point is decoding and then
17301 displaying frames with artifacts.
17303 2015-05-12 15:36:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17305 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17306 decoder: h264: fix processing of EOSEQ NAL.
17307 Fix decoding of end_of_seq() NAL unit so that to not submit the current
17308 picture for decoding again. This is pretty vintage code that dates back
17309 before the existing of the whole decoder units machinery.
17310 One issue that could be arising if that code was kept is that we could
17311 have submitted a picture, and subsequently a GstVideoCodec frame, twice.
17312 Once without the decode_only flag set, and once with that flag set. The
17313 end result is that the GstVideoDecoder would release the codec frame
17314 twice, thus releasing stale data.
17315 In short, the piece of code that is removed by this patch is for once
17316 completely obsolete for a while, and secondly error-prone in corner
17319 2013-02-28 15:26:36 +0800 Wind Yuan <feng.yuan@intel.com>
17321 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17322 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17323 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17324 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17325 decoder: add utility function to clone picture objects.
17326 https://bugzilla.gnome.org/show_bug.cgi?id=703921
17327 Signed-off-by: Wind Yuan <feng.yuan@intel.com>
17328 [added cosmetic changes, fixed propagation of "one-field" flag to
17329 children, fixed per-codec clone modes (h264)]
17330 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17332 2015-05-27 23:49:18 +0300 Alban Browaeys <prahal@yahoo.com>
17334 * gst/vaapi/Makefile.am:
17335 build: don't compile HEVC encoder if not supported
17337 (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
17338 https://bugzilla.gnome.org/show_bug.cgi?id=749954
17339 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17340 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17342 2015-05-27 23:43:16 +0300 Alban Browaeys <prahal@yahoo.com>
17344 * gst-libs/gst/vaapi/gstvaapicompat.h:
17345 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17346 HEVC: decode: add missing va_dec_hevc header
17347 Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17348 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17349 https://bugzilla.gnome.org/show_bug.cgi?id=749953
17351 2015-05-26 13:28:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17353 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17354 mpeg2: fix PTS cache for GOP start.
17355 If the GOP temporal sequence number (TSN) is interpolated from a valid
17356 PTS, then we need to compensate that PTS corresponding to the start of
17357 GOP with the next picture to be decoded, which shall be an I-frame,
17358 based on its sequence number.
17359 https://bugzilla.gnome.org/show_bug.cgi?id=748676
17361 2015-05-27 10:49:56 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17363 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17364 mpeg2: avoid crash when seeking with debug logs
17365 Move down the debug message when the state of the decoder is verified
17366 so the slice header is not NULL.
17368 2014-12-17 00:41:10 +1100 Jan Schmidt <jan@centricular.com>
17370 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17371 mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
17372 Reset state and add some checks for safe state to avoid a crash and
17373 a warning after the decoder is destroyed/recreated during a seek.
17375 2015-05-26 10:21:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17377 * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17378 * patches/videoparsers/series.frag:
17379 patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
17380 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17382 2015-05-26 10:03:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17384 * ext/codecparsers:
17385 codecparsers: Update to gst-vaapi-branch commit 20ee952
17386 b7dded3: h264parse: don't consider unknown stream-format as avc
17387 5110ad9: h264parse: fix up handling of input caps corner cases
17388 e51db3e: h264parse: Remove dead code
17389 3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
17390 8482957: h265parse: Fix profile, tier and level setting in caps
17391 4649acb: h265parse: Fix the memory freeing of stored VPS nals
17392 f2beeb7: h265parse: Fix source caps to report cropped dimensions
17393 6886a31: h264parse: Fix profile and level setting in caps
17394 5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
17395 eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
17396 53074fc: build: Upgrade GStreamer dependency to 1.0
17397 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17399 2015-05-26 06:01:10 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17401 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17402 HEVC: decode: Replace clip3 implementation with glib CLAMP macro
17403 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17405 2015-05-26 05:33:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17407 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17408 HEVC: decode: Update Cropping Rectangle
17409 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17411 2015-05-25 11:58:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17413 * gst/vaapi/Makefile.am:
17414 * gst/vaapi/gstvaapi.c:
17415 * gst/vaapi/gstvaapiencode_h265.c:
17416 * gst/vaapi/gstvaapiencode_h265.h:
17417 HEVC_Encode: Add HEVC(h265) Encoder plugin
17418 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17419 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17421 2015-05-25 11:38:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17423 * gst-libs/gst/vaapi/Makefile.am:
17424 * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17425 * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
17426 HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
17427 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17428 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17430 2015-05-25 11:26:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17433 HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
17434 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17435 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17437 2015-05-25 10:58:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17439 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
17440 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
17441 gstvaapiutils_h265: Add H265 Tier specific utility functions
17442 -- New API: gst_vaapi_utils_h265_get_tier_from_string()
17443 -- New API: gst_vaapi_utils_h265_get_tier_string()
17444 https://bugzilla.gnome.org/show_bug.cgi?id=748874
17445 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17447 2015-05-19 10:57:42 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17449 * docs/reference/plugins/Makefile.am:
17450 doc: conditional linking for scanner
17451 Add x11 library only if it is enabled.
17452 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17454 2015-05-19 10:37:13 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17456 * docs/reference/plugins/plugins.types:
17457 doc: fix scanner compilation warning
17458 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17460 2015-05-06 16:19:23 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17462 * docs/reference/libs/libs-docs.xml.in:
17463 * docs/reference/libs/libs-sections.txt:
17464 doc: update sections and symbols
17465 https://bugzilla.gnome.org/show_bug.cgi?id=749018
17467 2015-05-13 10:38:24 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17471 * debian.upstream/Makefile.am:
17472 * docs/Makefile.am:
17473 * docs/reference/Makefile.am:
17474 * docs/reference/libs/Makefile.am:
17475 * docs/reference/plugins/Makefile.am:
17477 * ext/libvpx/Makefile.am:
17479 * gst-libs/Makefile.am:
17480 * gst-libs/gst/Makefile.am:
17481 * gst-libs/gst/base/Makefile.am:
17482 * gst-libs/gst/codecparsers/Makefile.am:
17483 * gst-libs/gst/vaapi/Makefile.am:
17485 * gst/vaapi/Makefile.am:
17486 * patches/Makefile.am:
17487 * patches/videoparsers/Makefile.am:
17488 * pkgconfig/Makefile.am:
17489 * tests/Makefile.am:
17491 This patch handles dinamically the gitignore files with git.mk[1].
17492 Removed the automake variable MAINTAINERCLANFILES in most of the
17493 Makefile.am files since now it is handled by the top one.
17494 1. https://github.com/behdad/git.mk/blob/master/git.mk
17495 https://bugzilla.gnome.org/show_bug.cgi?id=749321
17497 2015-05-07 11:28:15 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17499 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17500 wayland: sync() when destroy()
17501 Before pushing a the new frame, the render() method calls sync() to flush the
17502 pending frames. Nonetheless, the last pushed frame never gets rendered, leading
17503 to a memory leak too.
17504 This patch calls sync() in the destroy() to flush the pending frames before
17505 destroying the window.
17506 Also a is_cancelled flag is added. This flag tells to not flush the event
17507 queue again since the method failed previously or were cancelled by the user.
17508 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17510 2015-05-07 15:55:40 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
17512 * gst-libs/gst/vaapi/gstvaapiwindow.c:
17513 * gst-libs/gst/vaapi/gstvaapiwindow.h:
17514 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17515 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17516 * gst/vaapi/gstvaapisink.c:
17517 vaapisink: implement unlock/unlock_stop for wayland
17518 Otherwise wl_display_dispatch_queue() might prevent the pipeline from
17519 shutting down. This can happen e.g. if the wayland compositor exits while
17520 the pipeline is running.
17522 * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
17523 * splitted the patch removing wl_display_dispatch_queue()
17524 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17525 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17526 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17528 2015-05-07 12:33:34 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17531 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17532 wayland: wl_display_dispatch_queue() can block forever.
17533 wl_display_dispatch_queue() might prevent the pipeline from shutting
17534 down. This can happen e.g. if the wayland compositor exits while the
17535 pipeline is running.
17536 This patch replaces it with these steps:
17537 - With wl_display_prepare_read() all threads announce their intention
17539 - wl_display_read_events() is thread save. On threads reads, the other
17540 wait for it to finish.
17541 - With wl_display_dispatch_queue_pending() each thread dispatches its
17543 wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
17544 Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
17545 * stripped out the unlock() unlock_stop() logic
17546 * stripped out the poll handling
17547 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17548 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17549 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17551 2015-05-07 18:30:33 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17553 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17554 wayland: rename frame for last_frame
17555 Since frame in the private data means the last frame sent, it would
17556 semantically better use last_frame.
17557 Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
17559 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17561 2015-05-07 11:18:12 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17563 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17564 wayland: use a counter as sync flag
17565 Wayland window has a pointer to the last pushed frame and use it to set the
17566 flag for stopping the queue dispatch loop. This may lead to memory leaks,
17567 since we are not keeping track of all the queued frames structures.
17568 This patch removes the last pushed frame pointer and change the binary flag
17569 for an atomic counter, keeping track of number of queued frames and use it for
17570 the queue dispatch loop.
17571 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17573 2015-05-07 10:36:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17575 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17576 wayland: decouple wl_buffer from frame
17577 This patch takes out the wayland's buffer from the the frame structure. The
17578 buffer is queued to wayland and destroyed in the "release" callback. The
17579 frame is freed in the surface's "done" callback.
17580 In this way a buffer may be leaked but not the whole frame structure.
17581 - surface 'done' callback is used to throttle the rendering operation and to
17582 unallocate the frame, but not the buffer.
17583 - buffer 'release' callback is used to destroy wl_buffer.
17584 Original-patch-by: Zhao Halley <halley.zhao@intel.com>
17586 * kept the the event_queue for buffer's proxy
17587 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17588 https://bugzilla.gnome.org/show_bug.cgi?id=749078
17590 2015-05-14 16:22:36 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17592 * gst/vaapi/gstvaapisink.c:
17593 vaapisink: fix indentation
17595 2015-05-13 11:54:01 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17597 * debian.upstream/Makefile.am:
17598 * ext/libvpx/Makefile.am:
17599 * gst-libs/gst/vaapi/Makefile.am:
17600 * gst/vaapi/Makefile.am:
17601 * tests/Makefile.am:
17602 build: fix make distcheck
17603 This patch fixes several issues found when running the `make distcheck`
17605 - In commit c561b8da, the update of gstcompat.h in Makefile.am was
17607 - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
17609 - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
17610 - The make target distcleancheck failed because some autogenerated files
17611 were not handled with the DISTCLEANFILES variable.
17612 Note: `make distcheck -jXX` is not currently supported.
17614 2015-05-13 13:28:17 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17616 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17617 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17618 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17619 h264parse: update patches with upstream
17620 These patches didn't applied cleanly, breaking the `make distcleancheck`
17621 target. Re-sync'ed the patches against the current git's submodule.
17623 2015-05-12 16:04:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17625 * tests/simple-encoder.c:
17626 tests: simple-encoder: fix build warnings on 64-bit platforms.
17627 Add a cosmetic change to replace VAAPI buffer with VA buffer and most
17628 importantly fix warnings spitted out during build on 64-bit platforms.
17629 ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17630 g_warning ("Invalid VAAPI buffer size (%d)", size);
17632 ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17633 g_warning ("Failed to create output buffer of size %d", size);
17636 2015-05-08 15:54:09 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17638 * gst/vaapi/gstvaapipluginbase.c:
17639 * gst/vaapi/gstvaapipluginutil.c:
17640 * gst/vaapi/gstvaapipluginutil.h:
17641 * gst/vaapi/gstvaapivideocontext.h:
17642 plugins: remove gstreamer-0.10 crumbs
17643 GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
17644 Still, its definition was still in the code. This patch removes it.
17645 https://bugzilla.gnome.org/show_bug.cgi?id=749113
17647 2015-05-05 13:08:25 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17649 * tests/Makefile.am:
17650 * tests/simple-encoder.c:
17651 * tests/y4mreader.c:
17652 * tests/y4mreader.h:
17653 tests: add simple-encoder program
17654 This patch adds a simple-encoder test program that uses libgstvaapi for video
17655 encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
17656 format. That can be from a regular file or standard input when the input
17658 Usage: simple-encoder [options]* <source>
17660 --output|-o output file name
17661 --codec|-c codec to use for video encoding
17662 --bitrate|-b desired bitrate (kbps)
17663 By default, and as an initial patch, the encoded stream shall conform to the
17664 minimally supported profile. That is "Constrained Baseline Profile" for H.264
17665 and "Simple Profile" for MPEG-2. Though, those are the defaults to be
17666 generated by libgstvaapi.
17667 You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
17668 Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
17669 * general code clean-up
17670 * removed the yuv reader thread
17671 * re-wrote the y4m file parser
17672 * updated used API fixed some wrong usage
17673 * fixed a lot of memory leaks
17674 * added the bitrate setting
17675 * keep fps' numerator and denominator
17676 * simplified the thread control
17677 * removed custom logging and use glib
17678 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17679 https://bugzilla.gnome.org/show_bug.cgi?id=719528
17681 2015-05-05 13:02:19 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17683 * gst-libs/gst/vaapi/gstvaapiencoder.h:
17684 libs: trivial documentation fix
17685 GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
17686 are not errors, so they do not have the ERROR namespace.
17687 This patch fixes this typo in documentation.
17689 2015-02-15 15:01:03 +0000 Simon Farnsworth <simon@farnz.org.uk>
17691 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17692 window: Correct prototype to match implementation
17693 On s390x, guintptr and GstVaapiID are not compatible types. The
17694 implementation of gst_vaapi_window_new_internal() and all its callers
17695 seem to assume that its third argument is a GstVaapiID, while the
17696 header gives it guintptr type.
17697 https://bugzilla.gnome.org/show_bug.cgi?id=744559
17699 2015-05-04 14:24:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17701 * gst/vaapi/gstvaapidecode.c:
17702 * gst/vaapi/gstvaapidecodebin.c:
17703 vaapidecode: add guards for disabled codecs.
17704 Fix link when building plugin elements without HEVC support. e.g. don't
17705 try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
17706 support HEVC enabled in libgstvaapi.
17707 Also, drop disabled codecs from static template caps. Add the missing
17708 HEVC static template caps into vaapidecodebin too.
17710 2015-04-30 13:29:48 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17713 * gst-libs/gst/vaapi/glibcompat.h:
17714 build: upgrade glib dependency to 2.32
17715 Since bug #745728 was fixed the oldest supported version of GStreamer is
17716 1.2. That GStreamer release requires glib 2.32, so we can upgrade our
17718 This patch changes the required version of glib in configure.ac and removes
17719 the hacks in glibcompat.h
17720 https://bugzilla.gnome.org/show_bug.cgi?id=748698
17722 2015-04-30 13:21:08 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17724 * gst/vaapi/gstvaapipluginbase.c:
17725 plugins: check if the pool config is already set
17726 In commit 97b768, a regression for GStreamer 1.2 was introduced:
17727 GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
17728 config option is already set. This patch adds an inline function to
17729 first verify if the option is not in the pool config berfore add it.
17731 2015-04-29 12:39:50 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17733 * gst/vaapi/gstvaapipostproc.c:
17734 vaapipostproc: tune up a couple of log messages
17735 In order to reduce the noise, the query type log was downgrade from INFO to
17736 DEBUG, and the shared display address log message is assigned to the object.
17738 2015-04-29 12:27:43 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17740 * gst/vaapi/gstvaapipluginbase.c:
17741 plugins: check gst_buffer_pool_set_config()
17742 Check the return value of gst_buffer_pool_set_config(). If it fails an error
17743 message is posted in the bus.
17745 2015-04-29 12:24:52 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17747 * gst/vaapi/gstvaapipluginbase.c:
17748 plugins: more specific log message
17749 Be more specific in the log message about the reason of creating a new pool.
17751 2015-04-29 12:22:29 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17753 * gst/vaapi/gstvaapipluginbase.c:
17754 plugins: delete unused variable
17755 need_pool is a boolean variable extracted from the allocation query, but it is
17756 not used afterwards.
17758 2015-04-27 19:21:12 -0400 Olivier Crete <olivier.crete@collabora.com>
17760 * gst/vaapi/gstvaapipluginbase.c:
17761 vaapipluginbase: Update the pool if there was no pool in the downstream reply
17762 Fix regression introduced by bd866479, the query after decide_allocation()
17763 always needs a pool in the first slot.
17764 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17765 https://bugzilla.gnome.org/show_bug.cgi?id=748559
17767 2015-04-27 20:50:19 -0400 Olivier Crete <olivier.crete@collabora.com>
17769 * gst/vaapi/gstvaapivideobufferpool.c:
17770 videopool: Free members before chaining up finalize
17771 The finalize function in GObject frees the object memory, so
17772 everything else needs to have been freed before.
17773 https://bugzilla.gnome.org/show_bug.cgi?id=748563
17775 2015-04-27 20:31:50 -0400 Olivier Crete <olivier.crete@collabora.com>
17777 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
17778 wayland: don't leak the registry proxy
17779 Release the registry proxy when closing the display.
17780 https://bugzilla.gnome.org/show_bug.cgi?id=748564
17782 2015-04-21 17:17:06 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17784 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17785 wayland: refactor _sync() method and rename callback
17786 This patch only intends to improve readability: in the method
17787 gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
17789 Also renames the frame_redraw_callback() callback into frame_done_callback(),
17790 which is a bit more aligned to Wayland API.
17792 2015-02-03 16:52:06 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
17794 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17795 wayland: free frame in buffer release callback
17796 The Wayland compositor may still use the buffer when the frame done
17797 callback is called.
17798 This patch destroys the frame (which contains the buffer) until the
17799 release callback is called. The draw termination callback only controls
17800 the display queue dispatching.
17801 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17802 https://bugzilla.gnome.org/show_bug.cgi?id=747492
17804 2015-04-21 10:00:36 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17806 * gst/vaapi/gstvaapidecode.c:
17807 vaapidecode: refactor gst_vaapidecode_internal_flush()
17808 This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
17809 label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
17810 shares the same error message of gst_vaapidecode_internal_flush() when flush
17813 2015-04-20 13:27:27 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17815 * gst/vaapi/gstvaapidecode.c:
17816 vaapidecode: refactor gst_vaapidecode_destroy()
17817 Add the method gst_vaapidecode_purge(). This method releases the
17818 flushed frames from the decoder.
17819 This new method add more readablity to gst_vaapidecode_destroy()
17821 2015-04-16 12:53:18 -0400 Olivier Crete <olivier.crete@collabora.com>
17823 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17824 * gst/vaapi/gstvaapidecode.c:
17825 vaapidecode: Tell the base class about released frames on close
17826 The base class needs to be informed about frames that were still queued
17827 in the decoder on release, otherwise they are leaked.
17828 https://bugzilla.gnome.org/show_bug.cgi?id=747999
17830 2015-04-19 11:19:03 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17832 * gst/vaapi/gstvaapidecode.c:
17833 vaapidecode: reduce logging noise
17834 When a frame is rejected by downstream, the message is logged twice. This
17835 patch removes one of those logging messages.
17836 Also, the reject of a frame doesn't mean an alarming error. This patch demotes
17837 the log message from error to info.
17839 2015-04-16 20:18:13 -0400 Olivier Crete <olivier.crete@collabora.com>
17841 * gst/vaapi/gstvaapidecode.c:
17842 vaapidecode: Use the GstVideoDecoder error reporting function
17843 This way, the decoder won't stop on the first decoding error,
17844 in most cases it can recover after some glitchiness.
17845 https://bugzilla.gnome.org/show_bug.cgi?id=744620
17847 2015-04-17 19:10:35 +0000 Olivier Crete <olivier.crete@collabora.com>
17849 * gst/vaapi/gstvaapipluginbase.c:
17850 vaapipluginbase: The allocation query can return without a pool
17851 It is possible to return the min/max/size without actually providing
17852 a pool. This way the source knows how many buffers downstream needs.
17853 https://bugzilla.gnome.org/show_bug.cgi?id=748076
17855 2015-04-17 16:45:22 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17858 * gst/vaapi/Makefile.am:
17859 * gst/vaapi/gstvaapiparse.c:
17860 * gst/vaapi/gstvaapiparse.h:
17861 * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
17862 * patches/videoparsers/series.frag:
17863 plugins: Add h265 videoparser element "vaapiparse_h265"
17864 This is a mirror of h265parse element in upstream gst-plugins-bad.
17865 There could be additional patches but all should go to upstream.
17866 This is for making development faster.
17867 Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
17869 2015-04-17 15:44:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17871 * ext/codecparsers:
17872 codecparsers: Update to gst-vaapi-branch commit 43a0368
17873 45f1c28: codecparser: h265: Fix nal unit size checking
17874 f25987b: codecparser: h265: Calculate crop rectangle dimensions
17875 639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
17876 4c8ec41: Add h265 videoparser plugin source files
17878 2015-04-17 10:10:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17881 autogen: drop videoutils submodule.
17883 2015-04-17 10:36:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17885 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17886 decoder: hevc: cosmetics.
17887 Mostly coding style updates. Avoid integer signess inconsistencies.
17888 Optimize dpb_find_lowest_poc() to align with original h264's decoder.
17890 2015-04-16 14:13:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17892 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17893 decoder: hevc: Add Support for tiled video decoding
17894 Based up on the value of uniform_spacing_flag in Picture Parameter Set,
17895 the tile column width and tile row height should be calculated.
17896 Equations: 6-1, 6-2
17897 Tiled video Descriptions: 7.3.2.3, 7.4.3.3
17899 2015-04-16 14:13:21 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17901 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17902 decoder: hevc: Fix decoding when there are RASL pictures present.
17903 -- Set NoRaslOutputFlag based on EOS and EOB Nal units
17904 -- Fix PicOutputFlag setting for RASL picture
17905 -- Fix prev_poc_lsb/prev_poc_msb calculation
17906 -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
17907 -- Fixed couple of crashes and added cosmetics
17909 2015-04-14 10:54:54 +0100 Martin Sherburn <martin.sherburn@datapath.co.uk>
17911 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
17912 display: drm: fix race condition setting device type
17913 There is a race condition where g_drm_device_type can be left set to
17914 DRM_DEVICE_RENDERNODES when it shouldn't.
17915 If thread 1 comes in and falls into the last else statement setting up both
17916 RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
17917 it sets g_drm_device_type = RENDERNODES.
17918 Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
17919 up that type to be tried but then encounters the lock and has to wait until the
17920 first thread finishes. Once the lock is acquired it will then proceed to ONLY try
17921 RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
17922 attempts will only try RENDERNODES.
17923 So to avoid this situation I have simply moved the acquisition of the lock higher
17924 up in the attached patch.
17925 https://bugzilla.gnome.org/show_bug.cgi?id=747914
17927 2015-04-15 15:26:12 -0400 Olivier Crete <olivier.crete@collabora.com>
17929 * gst/vaapi/gstvaapipostproc.c:
17930 vaapipostproc: Don't create filter on caps query
17931 The problem with this is that creating the filter causes the display to
17932 be selected, and the caps query happens while linking the element. So,
17933 if the downstream or upstream element is using a specific display
17934 object, it won't be propagated correctly to the postproc as it already
17935 has a display at this point.
17936 https://bugzilla.gnome.org/show_bug.cgi?id=747945
17938 2015-04-15 15:20:17 -0400 Olivier Crete <olivier.crete@collabora.com>
17940 * gst-libs/gst/vaapi/gstvaapivideopool.c:
17941 videopool: Release lock while allocating new object
17942 The video pool can be accessed with the display lock held, for example,
17943 when releasing a buffer from inside vaapisink_render, but allocating
17944 a new object can may also take the display lock. Which means a possible
17946 https://bugzilla.gnome.org/show_bug.cgi?id=747944
17948 2015-04-15 17:26:43 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17950 * gst/vaapi/gstvaapisink.c:
17951 vaapisink: use GstVideoSink vmethod show_frame()
17952 vaapisink inherits from GstVideoSink, in order to use its functionality (such
17953 as ::show-preroll-frame property), we should use its vmethod show_frame(),
17954 rather than call ourselves render() and preroll().
17956 2015-04-15 18:16:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17958 * gst/vaapi/gstvaapisink.c:
17959 * gst/vaapi/gstvaapisink.h:
17960 vaapisink: add 'handoff' signal
17961 This patch adds the signal ::handoff and the property signal-handoffs. If the
17962 property is set TRUE, the signal ::handoff is emitted just after the buffer is
17964 Based on Zhao Halley <halley.zhao@intel.com>
17965 https://bugzilla.gnome.org/show_bug.cgi?id=747905
17967 2015-04-14 10:17:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17969 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17970 HEVC: silence the compiler
17971 Fixed a couple of clang complains.
17973 2015-02-02 16:42:43 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
17975 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17976 wayland: destroy vpp buffer pool on resize
17977 Otherwise the old buffers with the old size are used.
17978 https://bugzilla.gnome.org/show_bug.cgi?id=747491
17980 2015-04-14 10:08:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17983 * gst-libs/gst/vaapi/Makefile.am:
17984 build: don't compile HEVC if not supported
17985 HEVC decoding was added recently libva-1.5.
17986 This patch avoids HEVC decoding support in libgstvaapi if it is not available
17987 in the installed libva.
17988 https://bugzilla.gnome.org/show_bug.cgi?id=747831
17990 2015-04-13 16:04:59 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17992 * gst/vaapi/gstvaapidecode.c:
17993 vaapidecode: Update Author name in plugin metadata
17995 2015-04-13 15:43:30 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17997 * gst/vaapi/gstvaapidecode.c:
17998 plugins: Add HEVC decoder
17999 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18001 2015-04-13 15:41:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18003 * gst-libs/gst/vaapi/Makefile.am:
18004 * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18005 * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
18006 HEVC: Add HEVC(h265) decoder to core libgstvaapi
18007 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18009 2015-04-13 14:53:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18011 * gst-libs/gst/vaapi/Makefile.am:
18012 * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
18013 * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
18014 * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
18015 HEVC: Add codec utility methods to core libgstvaapi
18016 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18018 2015-04-13 14:52:53 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18020 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18021 * gst-libs/gst/vaapi/gstvaapiprofile.h:
18022 HEVC: gstvaapiprofile: Add profile definitions
18023 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18025 2015-04-13 14:52:14 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18028 HEVC: build: Check availability of h265 decoder APIs
18029 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18031 2015-04-13 14:51:51 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18035 * gst-libs/gst/codecparsers/Makefile.am:
18036 HEVC: Allow to build h265 codecparser internally
18037 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18039 2015-04-08 18:05:20 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18041 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18042 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
18043 * gst-libs/gst/vaapi/gstvaapisurface.c:
18044 guard buffer export API if not available
18045 The support for buffer exports in VA-API was added in version 0.36. These
18046 interfaces are for interop with EGL, OpenCL, etc.
18047 GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
18048 has to support VA-API versions ranging from 0.30.4, which doesn't support it.
18049 This patch guards all the buffer exports handling (and dmabuf allocator) if
18050 the detected VA-API version is below 0.36.
18051 https://bugzilla.gnome.org/show_bug.cgi?id=746405
18053 2015-04-13 11:29:35 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18055 * ext/codecparsers:
18056 codecparsers: Update to gst-vaapi-branch commit 9bc72b0
18057 767bf22: codecparsers: h265: add helpers to convert quantization matrices
18058 71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
18059 3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
18060 10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
18061 2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
18063 2014-12-11 12:02:38 +0100 Michael Olbrich <m.olbrich@pengutronix.de>
18065 * gst/vaapi/gstvaapidecode.c:
18066 vaapidecode: unref video codec frame twice
18067 We get one reference when the frame is passed to decode_handle_frame()
18068 and create another one in gst_vaapi_decoder_push_frame().
18069 Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
18070 Here the frame is always released twice:
18071 gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
18072 gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
18073 In gst_vaapidecode_reset_full() both references to the frame must be
18075 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18076 https://bugzilla.gnome.org/show_bug.cgi?id=743226
18078 2015-04-08 18:20:34 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18080 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
18081 libs: remove unused variables
18082 clang reports these unused variables. Let's get rid of them.
18083 This patch is a missing part of commit c82e5173
18084 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18086 2015-04-03 20:38:07 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18088 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18089 decoder: mpeg4: remove an spurious comparison
18090 The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
18091 less than zero. Hence this pre-condition test is a no-op. This patch removes
18093 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18095 2015-04-03 20:33:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18097 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18098 encoder: h264: casts slice_param->slice_type
18099 slice_type in slice_param is defined as (char *), but it is compared against a
18100 signed integer. clang complains about this comparison.
18101 This patch casts the variable.
18102 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18104 2015-04-03 20:31:47 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18106 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
18107 encoder: avoid GstVaapiCodedBuffer redefinition
18108 The symbol GstVaapiCodedBuffer is already defined in
18109 gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
18110 gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
18111 This patch removes that redefinition.
18112 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18114 2015-04-03 20:28:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18116 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18117 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
18118 libs: remove unused variables
18119 clang reports these unused variables. Let's get rid of them.
18120 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18122 2015-04-03 20:27:24 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18124 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18125 encoder: mpeg2: use fabsf() instead of abs()
18126 The member value in frame_rate_tab is float, the result of the abs() function
18127 should be float too. But abs() only manages integers.
18128 This patch replaces abs() with fabsf() to handle correctly the possible floats
18130 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18132 2015-04-03 20:02:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18134 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18135 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18136 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
18137 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18138 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18139 decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
18140 Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
18141 GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
18142 https://bugzilla.gnome.org/show_bug.cgi?id=747312
18144 2015-04-04 00:40:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18149 2015-04-04 00:06:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18153 Changing source code download links from https://gitorious to https://github
18154 -- gitmodules: Change gstreamer-codecparsers submodule source download link
18155 -- README: Change the gstreamer-vaapi webpage link
18157 2015-04-03 23:30:24 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18159 * ext/codecparsers:
18160 codecparsers: update to gst-vaapi-branch commit 1f792e4
18161 87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
18162 7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
18163 2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
18164 2b92a67: h264parse: reset the parser information when caps changes
18165 05eee86: codecparsers: Indent file
18166 e27a38b: codecparsers: Add READ_UE_MAX macro
18167 2036471: Constify some static arrays everywhere
18169 2015-04-03 17:45:08 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18171 * gst/vaapi/gstvaapivideoconverter_glx.c:
18172 * gst/vaapi/gstvaapivideoconverter_x11.c:
18173 Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
18175 2015-04-03 17:09:08 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18177 * gst/vaapi/gstvaapidecode.c:
18178 * gst/vaapi/gstvaapidecodebin.c:
18179 * gst/vaapi/gstvaapiencode_h264.c:
18180 * gst/vaapi/gstvaapiencode_jpeg.c:
18181 * gst/vaapi/gstvaapiencode_mpeg2.c:
18182 * gst/vaapi/gstvaapiencode_vp8.c:
18183 * gst/vaapi/gstvaapipluginbase.c:
18184 * gst/vaapi/gstvaapipluginutil.c:
18185 * gst/vaapi/gstvaapipluginutil.h:
18186 * gst/vaapi/gstvaapipostproc.c:
18187 * gst/vaapi/gstvaapisink.c:
18188 * gst/vaapi/gstvaapivideobuffer.c:
18189 * gst/vaapi/gstvaapivideobufferpool.c:
18190 * gst/vaapi/gstvaapivideocontext.c:
18191 * gst/vaapi/gstvaapivideocontext.h:
18192 * gst/vaapi/gstvaapivideoconverter_glx.h:
18193 * gst/vaapi/gstvaapivideoconverter_x11.h:
18194 * gst/vaapi/gstvaapivideomemory.h:
18195 * gst/vaapi/gstvaapivideometa_texture.c:
18196 Removal of gstreamer-1.0 support
18197 The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
18198 GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
18199 This patch removes all the pre-processor conditional code compilation guarded
18201 Thus, all the video converters were removed too.
18202 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18203 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18204 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18206 2015-04-03 17:08:30 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18208 * gst-libs/gst/vaapi/gstcompat.h:
18209 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18210 * gst-libs/gst/vaapi/gstvaapiprofile.c:
18211 * gst-libs/gst/vaapi/sysdeps.h:
18212 * gst/vaapi/gstcompat.h:
18213 * gst/vaapi/gstvaapi.c:
18214 * gst/vaapi/gstvaapidecode.c:
18215 * gst/vaapi/gstvaapidecodebin.c:
18216 * gst/vaapi/gstvaapiencode.c:
18217 * gst/vaapi/gstvaapiencode_h264.c:
18218 * gst/vaapi/gstvaapiencode_jpeg.c:
18219 * gst/vaapi/gstvaapiencode_mpeg2.c:
18220 * gst/vaapi/gstvaapiencode_vp8.c:
18221 * gst/vaapi/gstvaapiparse.c:
18222 * gst/vaapi/gstvaapipluginbase.c:
18223 * gst/vaapi/gstvaapipluginutil.c:
18224 * gst/vaapi/gstvaapipostproc.c:
18225 * gst/vaapi/gstvaapisink.c:
18226 * gst/vaapi/gstvaapiuploader.c:
18227 * gst/vaapi/gstvaapivideobuffer.c:
18228 * gst/vaapi/gstvaapivideobufferpool.c:
18229 * gst/vaapi/gstvaapivideocontext.c:
18230 * gst/vaapi/gstvaapivideoconverter_glx.c:
18231 * gst/vaapi/gstvaapivideoconverter_x11.c:
18232 * gst/vaapi/gstvaapivideomemory.c:
18233 * gst/vaapi/gstvaapivideometa.c:
18234 * gst/vaapi/gstvaapivideometa_texture.c:
18236 update and move gstcompat.h
18237 The purpose of gstcompat.h is to couple the API differences among
18238 gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
18239 in this compatibility layer shall be removed.
18240 Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
18241 appear in the future, but it shall live in gst/vaapi, not in gst-libs.
18242 This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
18243 In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
18244 the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
18245 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18246 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18247 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18249 2015-04-03 17:05:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18252 * gst/vaapi/Makefile.am:
18253 autotools: remove gstreamer-1.0 support
18254 This patch only removes the support of gstreamer-1.0 in the autotools
18255 scripts. No other files are touched.
18256 In the automake file all the converters were deprecated.
18257 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18258 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18259 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18261 2015-04-03 17:03:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18266 Remove the gstreamer-videoutils submodule
18268 2015-04-03 17:01:45 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18271 * gst-libs/gst/Makefile.am:
18272 * gst-libs/gst/vaapi/Makefile.am:
18273 * gst-libs/gst/video/Makefile.am:
18274 * gst/vaapi/Makefile.am:
18275 * tests/Makefile.am:
18276 Remove libgstvaapi-videoutils.so
18277 This library was intended to add the base classes for video decoders which
18278 where not included in gstreamer-0.10.
18279 Since the support of gstreamer-0.10 is deprecated those classes are not
18280 required, thus the whole library is removed.
18281 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18282 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18283 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18285 2015-04-03 16:55:43 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18288 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18289 * gst-libs/gst/vaapi/gstvaapiutils.c:
18290 * tests/test-subpicture.c:
18291 Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
18292 This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
18293 defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
18294 deprecated these guards are not required.
18295 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18296 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18297 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18299 2015-04-03 16:55:27 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18301 * gst-libs/gst/vaapi/gstcompat.h:
18302 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18303 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18304 * gst-libs/gst/vaapi/gstvaapiimage.c:
18305 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18306 * gst-libs/gst/vaapi/video-format.c:
18307 * gst-libs/gst/vaapi/video-format.h:
18308 * gst/vaapi/gstvaapi.c:
18309 * gst/vaapi/gstvaapidecode.c:
18310 * gst/vaapi/gstvaapidecodebin.c:
18311 * gst/vaapi/gstvaapidownload.c:
18312 * gst/vaapi/gstvaapidownload.h:
18313 * gst/vaapi/gstvaapiencode.c:
18314 * gst/vaapi/gstvaapiencode_h264.c:
18315 * gst/vaapi/gstvaapiencode_jpeg.c:
18316 * gst/vaapi/gstvaapiencode_mpeg2.c:
18317 * gst/vaapi/gstvaapiencode_vp8.c:
18318 * gst/vaapi/gstvaapiparse.c:
18319 * gst/vaapi/gstvaapipluginbase.c:
18320 * gst/vaapi/gstvaapipluginbase.h:
18321 * gst/vaapi/gstvaapipluginutil.c:
18322 * gst/vaapi/gstvaapipluginutil.h:
18323 * gst/vaapi/gstvaapipostproc.c:
18324 * gst/vaapi/gstvaapisink.c:
18325 * gst/vaapi/gstvaapiupload.c:
18326 * gst/vaapi/gstvaapiupload.h:
18327 * gst/vaapi/gstvaapiuploader.c:
18328 * gst/vaapi/gstvaapivideobuffer.c:
18329 * gst/vaapi/gstvaapivideoconverter_glx.c:
18330 * gst/vaapi/gstvaapivideoconverter_x11.c:
18331 * gst/vaapi/gstvaapivideometa.c:
18332 * gst/vaapi/gstvaapivideometa.h:
18333 * tests/test-filter.c:
18334 * tests/test-subpicture.c:
18335 Removal of gstreamer-0.10 support
18336 This patch removes all the pre-processor conditional code compilation guarded
18337 for gstreamer-0.10.
18338 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18339 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18340 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18342 2015-04-03 16:54:54 +0300 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18345 * debian.upstream/control.in:
18346 * gst-libs/gst/video/Makefile.am:
18347 * gst/vaapi/Makefile.am:
18348 autotools: remove gstreamer-0.10 support
18349 This patch only removes the support of gstreamer-0.10 in the autotools
18350 scripts. No other files are touched.
18351 The configuration parameter --gstreamer-api was deleted since now it is always
18353 The verification of vmethod query in GstBaseSinkClass was removed since it was
18354 added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
18356 The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
18358 The automake files were changed accordingly.
18359 Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
18360 https://bugzilla.gnome.org/show_bug.cgi?id=732666
18361 https://bugzilla.gnome.org/show_bug.cgi?id=745728
18362 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18364 2015-03-16 23:38:18 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18366 * gst/vaapi/gstvaapidecode.c:
18367 vaapidecode: add drain() vmethod
18368 In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
18369 class. This patch implements this new method.
18370 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18371 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18372 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18374 2015-03-16 23:37:29 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18376 * gst/vaapi/gstvaapidecode.c:
18377 vaapidecode: remove vmethod reset()
18378 Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
18379 this patch removes the method reset() which was deprecated in GStreamer 1.2.
18380 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18381 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18382 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18384 2015-03-16 23:36:33 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18386 * gst/vaapi/gstvaapidecode.c:
18387 vaapidecode: handle flush() vmethod
18388 Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
18389 and flush() was added.
18390 This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
18391 superior. Otherwise, reset() is set.
18392 v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
18393 was renamed to gst_vaapidecode_internal_flush().
18394 2) The new vmethod flush() always do a hard full reset.
18395 v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
18396 gather all collected data with gst_video_decoder_have_frame()
18397 https://bugzilla.gnome.org/show_bug.cgi?id=742922
18398 Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18399 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18401 2015-03-16 23:10:53 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18403 * gst/vaapi/gstvaapidecode.c:
18404 vaapidecode: call the correct query function
18405 In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
18406 a bug was introduced: when calling the parent's query function of the
18407 src pad, the one of the sink pad is called instead. This patch fixes
18409 https://bugzilla.gnome.org/show_bug.cgi?id=746248
18411 2015-03-15 00:36:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18414 gitmodules: Use https:// url instead of git:// for submodules.
18415 Gitorious is failing to clone repositories over git:// url.
18417 2015-03-14 22:12:19 +0200 Julien Isorce <j.isorce@samsung.com>
18419 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18420 vaapidisplay: mark X11 display as compatible with EGL
18421 GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
18422 gst-launch-1.0 ... ! vaapidecode ! glimagesink
18423 https://bugzilla.gnome.org/show_bug.cgi?id=745902
18424 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18426 2015-03-06 15:20:01 +0200 Olivier Crete <olivier.crete@collabora.com>
18428 * gst/vaapi/gstvaapidecode.c:
18429 vaapidecode: Don't crash if a buffer outlives the decoder
18430 Sometimes, for example, when switching video streams but keeping
18431 the same sink, the surface will be released after the decoder is
18432 stopped and replaced. This caused a crash because the release
18433 callback was called on an invalid pointer.
18434 The patch adding an additional reference to the decoder object in the buffer.
18435 https://bugzilla.gnome.org/show_bug.cgi?id=745189
18436 Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
18437 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18439 2015-03-06 14:31:21 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18441 * gst/vaapi/gstvaapidecode.c:
18442 vaapidecode: clean-ups (indentation, drop unused variables)
18444 2015-03-06 14:09:22 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18446 * gst/vaapi/gstvaapidecode.c:
18447 vaapidecode: use the query virtual methods in 1.4
18448 GstVideoDecoder, the base class of vaapidecode, added support for
18449 pad queries as virtual methods. This patch enables the use of that
18450 support, while keeping support for lower versions of gstreamer.
18451 This patch is important because GstVideoDecoder takes care of other
18452 queries that might be important in the pipeline managing.
18453 v2: 1) rebase to current master
18454 2) fix indentation with gst-indent
18455 3) simplify the patch layout
18456 4) fix the context query
18457 5) initialise the filter to NULL
18458 6) improve the query log message for gst-1.2
18459 https://bugzilla.gnome.org/show_bug.cgi?id=744406
18461 2015-03-06 12:16:17 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18463 * gst/vaapi/gstvaapipostproc.c:
18464 * gst/vaapi/gstvaapipostproc.h:
18465 vaapipostproc: always activate buffer pool
18466 The vaapipostproc has a proxy flag to know if the the buffer pool is
18467 already active. But this fails in some situations where it is needed
18468 to renegotiate the buffer pool.
18469 This patch removes that flag so the renegotiation is done whenever is
18471 https://bugzilla.gnome.org/show_bug.cgi?id=745535
18473 2015-03-02 17:04:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18475 * gst/vaapi/gstvaapisink.c:
18476 vaapisink: fix minor memory leak in debug mode.
18477 The gst_video_colorimetry_to_string() function returns a newly created
18478 string that represents the GstVideoColorimetry value. So, that needs
18479 to be released after usage, in e.g. GST_DEBUG().
18481 2015-03-03 12:37:41 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18483 * gst/vaapi/gstvaapidecodebin.h:
18484 vaapidecodebin: Avoid usage of "__" prefix in macro names
18485 Avoiding "__" prefix usage in Header File Guards as per
18486 C standard recommendation.
18488 2015-03-03 12:31:11 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18490 * gst/vaapi/gstvaapi.c:
18491 plugins: Disable vaapidecodebin for GStreamer < 1.4
18492 There are autoplugging issues in GStreamer-1.2.
18493 Lets disable vaapidecodebin untill we get some workarounds for this.
18495 2015-03-02 15:19:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18497 * gst/vaapi/Makefile.am:
18498 * gst/vaapi/gstvaapi.c:
18499 * gst/vaapi/gstvaapidecodebin.c:
18500 * gst/vaapi/gstvaapidecodebin.h:
18501 plugins: Add a vaapidecodebin element
18502 Add a "vaapidecodebin" element to vaapi plugins.
18503 Child Elements: "vaapidecode ! queue ! vaapipostproc"
18504 The Reasons for implementing a new bin element:
18505 -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
18506 with out any dependency to upstream gstreamer.
18507 This is to overcome the *unacceptable* delay in upstream gstreamer to get new
18508 features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
18509 Also customers using older gstreamer versions (1.2 and 1.4) will get the
18510 benefit of autoplugging, hardware accelerated deinterlacing support etc.
18511 -- Help to maintain a single thread implementation in vaapidecode.
18512 This will result a dead-lock free vaapidecode in most of the cases.
18513 More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
18514 https://bugzilla.gnome.org/show_bug.cgi?id=745216
18516 2015-03-02 14:59:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18518 * gst/vaapi/gstvaapidecode.c:
18519 vaapidecode: re-indent (gst-indent) gstvaapidecode.c
18521 2015-03-02 14:46:38 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18523 * gst/vaapi/gstvaapidecode.c:
18524 * gst/vaapi/gstvaapidecode.h:
18525 vaapidecode: Switch back to Single thread implementation
18526 Because the decoder uses the thread from handle_frame() to decode a frame,
18527 the src pad task creates an unsolveable AB-BA deadlock between
18528 handle_frame() waiting for a free surface and decode_loop() pushing
18529 decoded frames out.
18530 Instead, have handle_frame() take responsibility for pushing surfaces,
18531 and remove the deadlock completely. If you need a separate thread
18532 downstream, you can insert a queue between vaapidecode and its downstream
18534 Another justification for the single thread implementation is,
18535 there are two many point of locking in gstreamer-vaapi's current
18536 implementation which can lead to deadlocks.
18537 https://bugzilla.gnome.org/show_bug.cgi?id=742605
18538 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18539 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18540 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18542 2015-03-02 13:28:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18544 * gst/vaapi/gstvaapipluginbase.c:
18545 plugins: fix detection of upstream v4l2src element.
18546 Improve check for upstream element that requires DMABUF buffer pool,
18547 e.g. v4l2src element. In particular, make sure to traverse through
18548 any additional capsfilter for instance.
18549 Note: the traversal to the top-most upstream element could be made
18550 more generic, but we are insofar only interested in supporting pipes
18551 similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
18552 specification for a desired video camera format, or resolution.
18554 2015-03-02 11:12:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18556 * gst/vaapi/gstvaapivideomemory.c:
18557 plugins: fix allocation of DMABUF memory.
18558 The dmabuf allocator would close the DMABUF handle passed in the init
18559 function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
18560 to avoid a double close, ultimately in the underlying driver that owns
18563 2015-02-26 12:28:02 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18565 * gst/vaapi/gstvaapidecode.c:
18566 vaapidecode: keep src caps and output state in sync
18567 vaapidecode keeps an output state that use the format
18568 GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
18569 for a correct negotiation.
18570 I don't see the rational behind this decoupling, it looks like
18571 unnecessary complexity. This patch simplify this logic keeping
18572 in sync the output state and the src caps.
18573 This patch improves the readability of the function
18574 gst_vaapidecode_update_src_caps() and simplify its logic. Also,
18575 the patch validates if the buffer pool has the configuration for
18576 the GL texture upload meta, in order to set the caps feature
18577 meta:GLTextureUpload. Otherwise, the I420 format is set back.
18578 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18579 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18580 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18582 2015-02-26 12:26:54 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18584 * gst/vaapi/gstvaapidecode.c:
18585 vaapidecode: upload meta only if feature and allocation
18586 When vaapidecode finishes the decoding of a frame and pushes it,
18587 if, in the decide_allocation() method, it is determined if the
18588 next element supports the GL texture upload meta feature, the
18589 decoder adds the buffer's meta.
18590 Nonetheless, in the same spirit of the commit 71d3ce4d, the
18591 determination if the next element supports the GL texture upload
18592 meta needs to check both the preferred caps feature *and* if the
18593 allocation query request the API type.
18594 This patch, first removes the unused variable need_pool, and
18595 determines the attribute has_texture_upload_meta using the
18596 preferred caps feature *and* the allocation query.
18597 Also, the feature passed to GstVaapPluginBase is not longer
18598 determined by has_texture_upload_meta, but by the computed
18600 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18601 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18602 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18604 2015-02-26 12:24:55 +0200 Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18606 * gst/vaapi/gstvaapidecode.c:
18607 * gst/vaapi/gstvaapidecode.h:
18608 * gst/vaapi/gstvaapipluginutil.c:
18609 * gst/vaapi/gstvaapipluginutil.h:
18610 vaapidecode: delayed src caps negotiation
18611 Currently the src caps are set immediately after the sink caps are set, but in
18612 that moment the pipeline might not fully constructed and the video sink has
18613 not negotiated its supported caps and features. As a consequence, in many cases
18614 of playback, the least optimized caps feature is forced. This is partially the
18615 responsible of bug #744039.
18616 Also, vaapidecode doesn't attend the reconfigure events from downstream,
18617 which is a problem too, since the video sink can be changed with different
18619 This patch delays the src caps, setting them until the first frame arrives to
18620 the decoder, assuming until that very moment the whole pipeline is already
18621 negotiated. Particularly, it checks if the src pad needs to be reconfigured,
18622 as a consequence of a reconfiguration event from downstream.
18623 A key part of this patch is the new GstVaapiCapsFeature
18624 GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
18625 doesn't have a peer yet. Also, for a better report of the caps allowed
18626 through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
18627 instead of gst_pad_peer_query_caps() when looking for the preferred feature.
18628 v3: move the input_state unref to close(), since videodecoder resets at
18629 some events such as navigation.
18630 v4: a) the state_changed() callback replaces the input_state if the media
18631 changed, so this case is also handled.
18632 b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
18633 always the input_state, the parameter were removed.
18634 c) there were a lot of repeated code handling the input_state, so I
18635 refactored it with the function gst_vaapi_decode_input_state_replace().
18636 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18637 Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18638 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18640 2015-02-24 17:14:33 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18642 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18643 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
18644 encoder: h264: add support for more than 2 views
18645 Add support for H.264 MVC Multiview High profile encoding with
18646 more than 2 views. All views within the same accesss unit are
18647 provided in increasing order of view order index (VOIdx).
18648 Upto 10 view are supported for now.
18649 A new property "view-ids" has been provided for the plugins to
18650 set the view ids (which is an array of guint values) to be used
18652 https://bugzilla.gnome.org/show_bug.cgi?id=732453
18654 2015-02-23 16:55:36 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18656 * gst/vaapi/gstvaapipluginbase.c:
18657 plugins: upload meta only if feature and allocation
18658 Working on bug #743687, I realized that vaapidecode always adds to its buffer
18659 pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
18660 the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
18661 Nevertheless, there are occasions where the query has the API type, but the
18662 last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
18663 Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
18664 buffer pool configuration, and adds its buffer's meta to each output buffer,
18665 even if the negotiated caps feature is memory:SystemMemory with I420 color
18667 This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
18668 that relates caps <-> GL upload method. If it receives a buffer with color
18669 format I420, it assumes that it doesn't have a texture upload meta, because
18670 only those with RGB color format has it. Our buffers, with I420 format, say
18671 that they have the upload meta too. In that case the mapped method is a dummy
18672 one which does nothing. I reported this issue in bug #744039 (the patch,
18673 obviously, was rejected).
18674 This patch workarounds the problem: the buffer pool's configuration option
18675 GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
18676 query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
18677 caps feature is meta:GstVideoGLTextureUploadMeta.
18678 I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
18679 in all they seem to work correctly.
18680 https://bugzilla.gnome.org/show_bug.cgi?id=744618
18681 [adapted to fit current EGL changes]
18682 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18684 2015-02-20 15:13:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18686 * gst-libs/gst/vaapi/gstvaapitexture.c:
18687 * gst-libs/gst/vaapi/gstvaapitexture.h:
18688 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
18689 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
18690 * gst/vaapi/gstvaapivideometa_texture.c:
18691 plugins: add support for GstVideoGLTextureOrientation.
18692 Add support for GstVideoGLTextureOrientation modes. In particular,
18693 add orientation flags to the GstVaapiTexture wrapper and the GLX
18694 implementations. Default mode is that texture memory is laid out
18695 with top lines first, left row first. Flags indicate whether the
18696 X or Y axis need to be inverted.
18698 2015-02-09 21:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18700 * gst/vaapi/gstvaapidecode.c:
18701 * gst/vaapi/gstvaapipluginbase.c:
18702 * gst/vaapi/gstvaapipluginutil.c:
18703 * gst/vaapi/gstvaapipluginutil.h:
18704 * gst/vaapi/gstvaapipostproc.c:
18705 * gst/vaapi/gstvaapivideometa_texture.c:
18706 plugins: add support for BGRA textures.
18707 Some frameworks (EFL) expect BGRA textures for storage. However,
18708 adding support for that broadly into GStreamer framework implies
18709 two kinds of hacks: (i) libgstgl helpers currently do not support
18710 BGRA textures correctly, (ii) we need to better parse downstream
18711 suggested caps and intersect them with what the VA plugin elements
18712 can offer to them for GL texturing.
18714 2015-01-23 09:31:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18716 * gst/vaapi/gstvaapipluginutil.c:
18717 plugins: fix support for Wayland/EGL running alongside X11.
18718 When multiple display servers are available, the glimagesink element
18719 (from GStreamer 1.4) may not be able to derive a global display in
18720 Wayland. Rather, a "window"-specific display is created. In this case,
18721 the GstGLDisplay handle available through GstGLContext is invalid.
18722 So, try to improve heuristics for display server characterisation in
18723 those particular situations.
18725 2015-02-20 15:29:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18728 * gst/vaapi/Makefile.am:
18729 * gst/vaapi/gstvaapidecode.c:
18730 * gst/vaapi/gstvaapipluginbase.c:
18731 * gst/vaapi/gstvaapipluginutil.c:
18732 * gst/vaapi/gstvaapivideobufferpool.c:
18733 * gst/vaapi/gstvaapivideometa_texture.c:
18734 plugins: add initial support for EGL.
18735 Add initial support for EGL through GstVideoGLTextureUploadMeta.
18736 Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
18737 downstream supplied GstGLContext configuration, i.e. use its native
18738 display handle to create a GstVaapiDisplay of type X11 or Wayland ;
18739 and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
18741 https://bugzilla.gnome.org/show_bug.cgi?id=741079
18743 2014-12-09 11:46:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18745 * gst/vaapi/gstvaapivideometa_texture.c:
18746 plugins: track video texture size changes.
18747 Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
18748 i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
18749 now update the texture size from the GstVideoMeta, if any, or reset
18750 to some defaults otherwise.
18752 2014-12-03 15:45:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18754 * gst/vaapi/gstvaapipluginbase.c:
18755 * gst/vaapi/gstvaapipluginbase.h:
18756 * gst/vaapi/gstvaapipluginutil.c:
18757 plugins: ensure VA display matches GL context expectations.
18758 If a GstGLContext is supplied by the downstream element, then make
18759 sure that the VA plugin element gets a compatible display to what
18760 is requested by the GL context. e.g. re-allocate a VA/GLX display
18761 when a GLX context is provided by the downstream element.
18763 2014-12-03 14:14:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18766 * gst/vaapi/Makefile.am:
18767 * gst/vaapi/gstvaapipluginbase.c:
18768 * gst/vaapi/gstvaapipluginbase.h:
18769 plugins: record downstream GstGLContext.
18770 Record GL context supplied by downstream elements. This can be useful,
18771 and further needed, to enforce run-time check that the GL context is
18772 compatible for use by libgstvaapi. e.g. check that we don't create a
18773 VA/GLX display for EGL/X11 contexts.
18774 https://bugzilla.gnome.org/show_bug.cgi?id=725643
18775 Original-path-by: Matthew Waters <ystreet00@gmail.com>
18777 2014-12-01 14:52:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18779 * tests/Makefile.am:
18782 Add initial support for EGL to tests. The new EGL backend can be selected
18783 through the --egl command line option. The OpenGL|ES version can further
18784 be selected with the --gles-version command line option, where the default
18785 of 0 means "desktop" OpenGL.
18787 2015-01-27 16:21:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18789 * gst-libs/gst/vaapi/Makefile.am:
18790 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18791 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
18792 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
18793 * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
18794 * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
18795 egl: add windowing support.
18796 This provides for some basic EGL window abstraction.
18798 2015-01-24 08:29:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18800 * gst-libs/gst/vaapi/Makefile.am:
18801 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18802 * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
18803 * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
18804 egl: add texture abstraction.
18805 Add GstVaapiTextureEGL abstraction that can create its own GL texture,
18806 or import a foreign allocated one, while still allowing updates from a
18809 2014-12-09 18:14:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18811 * gst-libs/gst/vaapi/Makefile.am:
18812 * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
18813 * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
18814 egl: allow for EGLImage imports into VA Surfaces.
18815 Add helpers to import EGLImage objects into VA surfaces. There are
18816 two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
18817 which allows for implicit conversion from EGLImage to a VA surface
18818 in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
18819 which exactly wraps the source EGLImage, typically in RGBA format
18820 with linear storage.
18821 Note: in case of (i), the EGLImage can be disposed right after the
18822 VA surface creation call, unlike in (ii) where the user shall ensure
18823 that the EGLImage is live until the associated VA surface is no longer
18825 https://bugzilla.gnome.org/show_bug.cgi?id=743847
18827 2015-02-20 15:27:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18830 * gst-libs/gst/vaapi/Makefile.am:
18831 * gst-libs/gst/vaapi/egl_compat.h:
18832 * gst-libs/gst/vaapi/egl_vtable.h:
18833 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18834 * gst-libs/gst/vaapi/gstvaapidisplay.h:
18835 * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18836 * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
18837 * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
18838 * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
18839 * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
18840 * gst-libs/gst/vaapi/ogl_compat.h:
18841 Add initial support for EGL.
18842 Add initial support for EGL to libgstvaapi core library. The target
18843 display server and the desired OpenGL API can be programmatically
18844 selected at run-time.
18845 A comprehensive set of EGL utilities are provided to support those
18846 dynamic selection needs, but also most importantly to ensure that
18847 the GL command stream is executed from within a single thread.
18848 https://bugzilla.gnome.org/show_bug.cgi?id=743846
18850 2015-01-30 21:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18852 * gst-libs/gst/vaapi/gstvaapivalue.c:
18853 libs: initialize GValues in a thread-safe manner.
18855 2015-01-30 21:35:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18857 * gst-libs/gst/vaapi/gstvaapivalue.c:
18858 libs: re-indent all GValue related source code.
18860 2015-01-22 22:45:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18862 * gst/vaapi/gstvaapidecode.c:
18863 vaapidecode: partially revert 0777f35.
18864 Reset the VA decoder after updating the base plugin caps, and most
18865 importantly, after GstVideoDecoder negotiation. The reason behind
18866 this is that the negotiation could trigger a last decide_allocation()
18867 where we could actually derive a new GstVaapiDisplay to use from the
18868 downstream element. e.g. GLX backend.
18870 2015-02-19 13:37:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18872 * gst/vaapi/gstvaapidecode.c:
18873 vaapidecode: Caps query should return the list of all supported caps.
18874 Query caps filtering should be always done on top of allowed caps instead
18875 of existing fixed caps on a particular pad.
18876 This fixes the mvc stream decoding when there is a base view(high profile)
18877 and non-base view(stereo-high profile).
18879 2015-02-18 13:36:16 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18881 * gst/vaapi/gstvaapidecode.c:
18882 vaapidecode: intersect filter from query caps
18883 According to documentation[1] when receiving a GST_QUERY_CAPS
18884 the return value should be all formats that this elements supports,
18885 taking into account limitations of peer elements further downstream
18886 or upstream, sorted by order of preference, highest preference first.
18887 This patch add those limitations intersecting with the received
18888 filter in the query. Also takes into account the already negotiated
18889 caps. Also adds the processing of the query on the SRC pad.
18890 1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
18891 https://bugzilla.gnome.org/show_bug.cgi?id=744406
18893 2015-02-18 11:46:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18895 * gst-libs/gst/vaapi/Makefile.am:
18896 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18897 * gst-libs/gst/vaapi/gstvaapidecoder.c:
18898 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18899 * gst-libs/gst/vaapi/gstvaapidisplay.c:
18900 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
18901 * gst/vaapi/gstvaapivideomemory.c:
18902 Fix compiler warnings
18903 This patch fixes some warnings that gcc 4.9 reports.
18904 https://bugzilla.gnome.org/show_bug.cgi?id=744411
18906 2015-02-18 11:22:21 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18908 * gst/vaapi/gstvaapidecode.c:
18909 vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
18910 Hence the function name is shown in the gst-inspect-1.0 information
18911 rather than the memory address.
18912 https://bugzilla.gnome.org/show_bug.cgi?id=744330
18914 2015-02-18 11:21:35 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18916 * gst/vaapi/gstvaapidecode.c:
18917 vaapidecode: log flow error name
18918 https://bugzilla.gnome.org/show_bug.cgi?id=744387
18920 2015-02-18 11:20:42 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18922 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18923 VC1: decoder: Ignore VC1 user BDU's
18924 Don't return error if the processed BDU is a user one, just ignore them.
18925 https://bugzilla.gnome.org/show_bug.cgi?id=741237
18926 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18928 2015-02-18 11:19:26 +0200 Olivier Crete <olivier.crete@collabora.com>
18930 * gst/vaapi/gstvaapidecode.c:
18931 * gst/vaapi/gstvaapipluginbase.c:
18932 vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
18933 This is required in GStreamer, elements should never return
18934 GST_FLOW_ERROR without posting an ERROR message on the bus.
18935 https://bugzilla.gnome.org/show_bug.cgi?id=744620
18937 2015-02-13 13:45:32 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18939 * gst/vaapi/Makefile.am:
18940 * gst/vaapi/gstvaapi.c:
18941 * gst/vaapi/gstvaapiencode_vp8.c:
18942 * gst/vaapi/gstvaapiencode_vp8.h:
18943 plugins: Add VP8 Encoder
18945 2015-02-13 13:42:04 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18947 * gst-libs/gst/vaapi/Makefile.am:
18948 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
18949 * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
18950 Add VP8 Encoder to core libgstvaapi.
18952 2015-02-13 13:40:19 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18955 configure: Add Check for VP8 Encoding API
18957 2015-02-10 11:40:16 +0200 Lim Siew Hoon <siew.hoon.lim@intel.com>
18959 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18960 decoder: vc1: Rounding control handling for VC1 simple and Main profile
18961 Added rounding control handling for VC1 simple and Main profile
18962 based on VC1 standard spec: section 8.3.7
18963 https://bugzilla.gnome.org/show_bug.cgi?id=743958
18964 Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
18965 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18967 2015-02-06 12:10:51 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18969 * gst/vaapi/Makefile.am:
18970 build: fix make dist when certain conditionals not met.
18971 Fix typo which was preventing the inclusion of jpeg encoder
18972 source files from make dist (when there is no jpeg encoder
18973 API support in libva).
18975 2015-02-05 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18977 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
18978 encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
18979 If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
18980 use native YUV420 format (which is i420) as default.
18982 2015-02-05 12:13:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18984 * gst-libs/gst/vaapi/gstvaapiencoder.c:
18985 encoder: Only support YUV420 native format as input for now
18986 Practically we should be able to support more formats, for eg:
18987 JPEG Encoder can support YUV422, RGBA and all.
18988 But this is causing more issues which need proper fix here and there.
18990 2015-02-04 18:34:59 +0200 Olivier Crete <olivier.crete@collabora.com>
18992 * gst-libs/gst/vaapi/gstvaapidecoder.h:
18993 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
18994 * gst/vaapi/gstvaapidecode.c:
18995 vaapidecode: Check the condition after taking the lock
18996 Otherwise the condition could become true before the lock
18997 is taken and the g_cond_signal() could be called
18998 before the g_cond_wait(), so the g_cond_wait() is never
19000 https://bugzilla.gnome.org/show_bug.cgi?id=740645
19002 2015-02-04 11:18:29 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19004 * gst/vaapi/Makefile.am:
19005 * gst/vaapi/gstvaapi.c:
19006 * gst/vaapi/gstvaapiencode_jpeg.c:
19007 * gst/vaapi/gstvaapiencode_jpeg.h:
19008 plugins: Add JPEG encoder element
19010 2015-02-04 11:17:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19012 * gst-libs/gst/vaapi/gstvaapicontext.c:
19013 gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
19015 2015-02-04 11:17:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19017 * gst-libs/gst/vaapi/gstvaapicontext.c:
19018 gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
19019 Don't add the VAConfigAttribRateControl to the attribute list using
19020 for the vaCreateConfig if it is not supported by the driver.
19022 2015-02-04 11:17:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19024 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19025 gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
19027 2015-02-04 11:16:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19029 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19030 gstvaapiencoder: Fix crash when handling rate control mask
19031 Having a ratecontrol_mask equal to zero is not a bug, but the driver
19032 might not be supporting any kind of rate control mechanisms.
19035 2015-02-04 11:16:05 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19037 * gst-libs/gst/vaapi/Makefile.am:
19038 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19039 * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
19040 encoder: Add JPEG Encoder
19042 2015-02-04 11:15:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19044 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
19045 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
19046 encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
19048 2015-02-04 11:15:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19050 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19051 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19052 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19053 * gst-libs/gst/vaapi/gstvaapiprofile.h:
19054 Encode: Add support for Picture level Entrypoint
19055 This is useful for JPEG encoding which is utilizing picture level
19056 entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
19058 2015-02-04 11:14:15 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19061 configure: Add Check for JPEG encoding API
19063 2015-02-03 13:08:53 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19068 2015-02-03 13:08:01 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19071 Bump version for development.
19073 === release 0.5.10 ===
19075 2015-02-03 10:00:42 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19080 2015-02-03 10:00:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19085 2015-02-02 11:43:58 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19087 * gst/vaapi/gstvaapivideometa_texture.c:
19088 Fix compilation error if there is no GL/gl.h header file installed
19090 2015-01-28 18:09:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19092 * gst/vaapi/gstvaapivideomemory.h:
19093 plugins: drop leftover declaration.
19094 GstVaapiVideoMemory quark is not needed any more, and the actual
19095 implementation was already removed bfore the merge. i.e. this is
19096 an oversight for a hunk that was not meant to be pushed.
19098 2015-01-26 18:30:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19100 * gst/vaapi/gstvaapipluginbase.c:
19101 * gst/vaapi/gstvaapivideobufferpool.c:
19102 * gst/vaapi/gstvaapivideobufferpool.h:
19103 * gst/vaapi/gstvaapivideomemory.c:
19104 * gst/vaapi/gstvaapivideomemory.h:
19105 plugins: add support for dma_buf exports (v4l2src).
19106 Allow v4l2src element to connected to vaapipostproc or vaapisink when
19107 "io-mode" is set to "dmabuf-import". In practice, this is a more likely
19108 operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
19109 to "dmabuf" could work, but with more demanding driver or kernel reqs.
19110 Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
19111 with --without-libv4l2.
19112 https://bugzilla.gnome.org/show_bug.cgi?id=743635
19114 2014-01-23 05:00:09 -0500 Wind Yuan <feng.yuan@intel.com>
19117 * gst/vaapi/Makefile.am:
19118 * gst/vaapi/gstvaapipluginbase.c:
19119 plugins: add support for dma_buf imports.
19120 Allow imports of v4l2 buffers into VA surfaces for further operation
19121 with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
19122 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19123 [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
19124 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19126 2014-09-15 15:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19128 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19129 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19130 surface: add support for GEM buffer imports.
19131 Add support for GEM buffer imports. This is useful for VA/EGL interop
19132 with legacy Mesa implementations, or when it is desired or required to
19133 support outbound textures for instance.
19134 https://bugzilla.gnome.org/show_bug.cgi?id=736718
19136 2014-09-15 15:25:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19138 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19139 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19140 surface: add support for dma_buf imports.
19141 Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
19142 to allow for creating VA surfaces from a foreign DRM PRIME fd. The
19143 resulting VA surface owns the supplied buffer handle.
19144 https://bugzilla.gnome.org/show_bug.cgi?id=735362
19146 2015-01-27 11:19:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19148 * gst-libs/gst/vaapi/gstvaapisurface.c:
19149 * gst-libs/gst/vaapi/gstvaapisurface.h:
19150 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19151 surface: add initial support for foreign buffer imports.
19152 Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
19153 create a VA surface from an external buffer provided throug the
19154 new GstVaapiBufferProxy object.
19156 2014-09-15 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19158 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19159 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19160 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19161 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19162 surface: add support for GEM buffer exports.
19163 Add support for GEM buffer exports. This will only work with VA drivers
19164 based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
19165 to support interop with EGL and the "Desktop" GL specification. Indeed,
19166 the EXT_image_dma_buf_import extension is not going to be supported in
19167 Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
19169 This is useful for implementing VA/EGL interop with legacy Mesa stacks,
19170 in Desktop OpenGL context.
19171 https://bugzilla.gnome.org/show_bug.cgi?id=736717
19173 2014-09-15 11:48:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19175 * gst-libs/gst/vaapi/Makefile.am:
19176 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19177 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19178 * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19179 * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19180 surface: add support for dma_buf exports.
19181 Use the new VA buffer export APIs to allow for a VA surface to be
19182 exposed as a plain PRIME fd. This is in view to simplifying interop
19183 with EGL or OpenCL for instance.
19184 https://bugzilla.gnome.org/show_bug.cgi?id=735364
19186 2014-09-15 10:58:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19188 * gst-libs/gst/vaapi/Makefile.am:
19189 * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19190 * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19191 * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
19192 Add abstraction for exported VA buffers.
19193 The VA buffer export APIs work for a particular lifetime starting from
19194 vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
19195 it could be much more convenient to support implicit releases by simply
19196 having a refcount reaching zero.
19197 https://bugzilla.gnome.org/show_bug.cgi?id=736721
19199 2015-01-28 18:25:09 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19201 * gst-libs/gst/vaapi/Makefile.am:
19202 Add missing header file to Makefile
19203 Add gstvaapitexture_glx.h to Makefile.am
19205 2015-01-27 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19207 * gst-libs/gst/vaapi/gstvaapicontext.c:
19208 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19209 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19210 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19211 * gst/vaapi/gstvaapipostproc.c:
19212 * gst/vaapi/gstvaapiuploader.c:
19213 * gst/vaapi/gstvaapivideobufferpool.c:
19214 * gst/vaapi/gstvaapivideomemory.c:
19215 * gst/vaapi/gstvaapivideomemory.h:
19216 * tests/test-surfaces.c:
19217 videopool: add optional flags for surface pool allocation.
19218 Reword surface pool allocation helpers so that to allow for a simple
19219 form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
19220 somewhat more elaborated/flexible form with optional allocation flags
19221 and precise GstVideoInfo specification.
19222 This is an API/ABI change, and SONAME version needs to be bumped.
19224 2015-01-26 23:21:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19226 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19227 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19228 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19229 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19230 * gst-libs/gst/vaapi/gstvaapivideopool.c:
19231 * gst-libs/gst/vaapi/gstvaapivideopool.h:
19232 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19233 videopool: re-indent all GstVaapiVideoPool related source code.
19235 2014-12-10 20:13:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19237 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19238 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19239 window: add toplevel display indirection for visualid and colormap.
19240 Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
19241 the best suitable window visual id and colormap. This is an indirection in
19242 view to supporting EGL and custom/generic replacements.
19244 2014-12-10 19:58:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19246 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19247 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19248 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19249 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19250 window: add toplevel API to determine the colormap.
19251 Add GstVaapiWindowClass::get_colormap() hook to help determine the
19252 currently active colormap bound to the supplied window, or actually
19253 create it if it does not already exist yet.
19255 2014-12-10 19:36:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19257 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
19258 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
19259 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19260 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19261 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19262 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19263 window: add toplevel API to determine a visual id.
19264 Add GstVaapiWindowClass::get_visual_id() function hook to help find
19265 the best suitable visual id for the supplied window. While doing so,
19266 also simplify the process by which an X11 window is created with a
19267 desired Visual, i.e. now use a visual id instead of a Visual object.
19269 2014-12-10 18:12:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19271 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19272 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19273 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19274 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19275 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19276 * gst-libs/gst/vaapi/gstvaapiwindow.c:
19277 * gst-libs/gst/vaapi/gstvaapiwindow.h:
19278 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19279 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19280 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19281 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19282 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19283 window: add generic helper to create windows.
19284 Add a new generic helper function gst_vaapi_window_new() to create
19285 a window without having the caller to check for the display type
19286 himself. i.e. internally, there is now a GstVaapiDisplayClass hook
19287 to create windows, and the actual backend implementation fills it in.
19288 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19289 This is a simplification in view to supporting EGL.
19291 2014-12-03 11:39:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19293 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19294 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19295 * gst-libs/gst/vaapi/gstvaapitexture.c:
19296 * gst/vaapi/gstvaapivideometa_texture.c:
19297 display: add utility function to check for OpenGL rendering.
19298 Add gst_vaapi_display_has_opengl() helper function to help determining
19299 whether the display can support OpenGL context to be bound to it, i.e.
19300 if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
19302 2014-12-10 18:02:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19304 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19305 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19306 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19307 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
19308 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19309 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
19310 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19311 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19312 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
19313 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19314 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
19315 * gst/vaapi/gstvaapipluginutil.c:
19316 * gst/vaapi/gstvaapivideobuffer.c:
19317 * gst/vaapi/gstvaapivideometa_texture.c:
19318 display: refine the meaning of display type.
19319 Make gst_vaapi_display_get_display_type() return the actual VA display
19320 type. Conversely, add a gst_vaapi_display_get_class_type() function to
19321 return the type of the GstVaapiDisplay instance. The former is used to
19322 identify the display server onto which the application is running, and
19323 the latter to identify the original object class.
19325 2014-12-02 11:23:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19327 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19328 * gst-libs/gst/vaapi/gstvaapidisplay.h:
19329 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19330 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19331 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19332 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19333 display: cosmetics (helper macros, new internal API names).
19334 Add more helper macros to the top-level GstVaapiDisplay interfaces.
19335 Rename a few others used internally for improved consistency.
19337 2014-12-01 17:08:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19339 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19340 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19341 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19342 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
19343 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19344 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19345 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19346 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19347 display: record native display object.
19348 Record the underlying native display instance into the toplevel
19349 GstVaapiDisplay object. This is useful for fast lookups to the
19350 underlying native display, e.g. for creating an EGL display.
19352 2014-12-01 16:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19354 * gst-libs/gst/vaapi/gstvaapidisplay.c:
19355 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19356 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19357 display: use a recursive mutex for the display cache.
19358 Use a recursive mutex for the display cache so that a 3rdparty display
19359 object could be initialized during the initialization of the parent
19362 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19364 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19365 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19366 * gst-libs/gst/vaapi/gstvaapitexture.c:
19367 * gst-libs/gst/vaapi/gstvaapitexture.h:
19368 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19369 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19370 texture: add generic helper to create textures.
19371 Add new generic helper functions gst_vaapi_texture_new_wrapped()
19372 and gst_vaapi_texture_new() to create a texture without having
19373 the caller to uselessly check for the display type himself. i.e.
19374 internally, there is now a GstVaapiDisplayClass hook to create
19375 textures, and the actual backend implementation fills it in.
19376 This is a simplification in view to supporting EGL.
19378 2014-10-23 17:44:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19380 * gst-libs/gst/vaapi/Makefile.am:
19381 * gst-libs/gst/vaapi/gstvaapitexture.c:
19382 * gst-libs/gst/vaapi/gstvaapitexture.h:
19383 * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19384 * gst-libs/gst/vaapi/gstvaapitexture_glx.h:
19385 * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19386 * gst/vaapi/gstvaapivideoconverter_glx.c:
19387 * gst/vaapi/gstvaapivideometa_texture.c:
19388 * tests/test-textures.c:
19389 texture: move to core libgstvaapi base library.
19390 GstVaapiTexture is a generic abstraction that could be moved to the
19391 core libgstvaapi library. While doing this, no extra dependency needs
19392 to be added. This means that a GstVaapitextureClass is now available
19393 for any specific code that needs to be added, e.g. creation of the
19394 underlying GL texture objects, or backend dependent ways to upload
19395 a surface to the texture object.
19396 Generic OpenGL data types (GLuint, GLenum) are also replaced with a
19398 https://bugzilla.gnome.org/show_bug.cgi?id=736715
19400 2014-10-23 13:11:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19403 * gst-libs/gst/vaapi/Makefile.am:
19404 * gst-libs/gst/vaapi/gstvaapicompat.h:
19405 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19406 * gst-libs/gst/vaapi/gstvaapitexture.c:
19407 texture: drop support for VA/GLX interfaces.
19408 The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
19409 ease of use, but they had other caveats to deal with. It's now better
19410 to move on to legacy mode, whereby VA/GLX interop is two be provided
19411 through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
19412 https://bugzilla.gnome.org/show_bug.cgi?id=736711
19414 2014-10-23 11:56:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19416 * gst-libs/gst/vaapi/gstvaapitexture.c:
19417 * gst-libs/gst/vaapi/gstvaapitexture.h:
19418 * gst/vaapi/gstvaapivideoconverter_glx.c:
19419 * gst/vaapi/gstvaapivideometa_texture.c:
19420 * tests/test-textures.c:
19421 texture: add support for cropping rectangle during transfer.
19422 The gst_vaapi_texture_put_surface() function is missing a crop_rect
19423 argument that would be used during transfer for cropping the source
19424 surface to the desired dimensions.
19425 Note: from a user point-of-view, he should create the GstVaapiTexture
19426 object with the cropped size. That's the default behaviour in software
19427 decoding pipelines that we need to cope with.
19428 This is an API/ABI change, and SONAME version needs to be bumped.
19429 https://bugzilla.gnome.org/show_bug.cgi?id=736712
19431 2014-10-23 11:22:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19433 * gst-libs/gst/vaapi/gstvaapitexture.c:
19434 * gst-libs/gst/vaapi/gstvaapitexture.h:
19435 texture: re-indent all GstVaapiTexture related source code.
19437 2015-01-27 11:16:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19439 * gst-libs/gst/vaapi/gstvaapisurface.c:
19440 * gst-libs/gst/vaapi/gstvaapisurface.h:
19441 surface: add more fine-grained allocation helper.
19442 Add new gst_vaapi_surface_new_full() helper function that allocates
19443 VA surface from a GstVideoInfo template in argument. Additional flags
19444 may include ways to
19445 - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
19446 - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
19447 - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
19449 2014-09-15 14:57:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19451 * gst-libs/gst/vaapi/gstvaapisurface.c:
19452 * gst-libs/gst/vaapi/gstvaapisurface.h:
19453 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19454 surface: re-indent all GstVaapiSurface related source code.
19456 2015-01-23 16:44:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19458 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19459 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19460 surfaceproxy: add helper to create a wrapped surface object.
19461 Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
19462 a proxy. The main use case for that is to convey additional information
19463 at the proxy level that would not be suitable to the plain surface.
19465 2015-01-23 16:37:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19467 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19468 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19469 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19470 surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
19472 2015-01-27 18:02:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19475 libs: bump library major version.
19477 2014-12-04 14:36:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19479 * gst-libs/gst/vaapi/gstvaapitypes.h:
19480 libs: re-introduce a GST_VAAPI_ID_INVALID value.
19481 Re-introduce a GST_VAAPI_ID_INVALID value that represents
19482 a non-zero and invalid id. This is useful to have a value
19483 that is still invalid for cases where zero could actually
19486 2014-12-02 16:51:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19488 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19489 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19490 libs: expose GstVaapiMiniObject APIs to all backends.
19491 Make it possible to have all libgstvaapi backends (libs) access to a
19492 common GstVaapiMiniObject API and implementation. This is a minor step
19493 towards full exposure when needed, but restrict it to libgstvaapi at
19496 2014-12-02 14:15:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19498 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19499 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19500 * gst-libs/gst/vaapi/gstvaapiobject.c:
19501 * gst-libs/gst/vaapi/gstvaapiobject.h:
19502 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19503 libs: re-indent all GstVaapiObject related source code.
19504 Re-indent and provide additional minor cosmetical changes to the
19505 GstVaapiMiniObject and GstVaapiObject source files.
19507 2015-01-27 16:25:21 +0200 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19509 * gst/vaapi/gstvaapipluginutil.c:
19510 pluginutil: Fix clearing of subtitle overlay
19511 dvbsuboverlay signals no subtitles present by not setting
19512 GstVideoOverlayCompositionMeta on a buffer.
19513 Detect this, and remove subtitles whenever we have no overlay composition to
19515 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19517 2015-01-27 16:06:02 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19519 * gst/vaapi/gstvaapipostproc.c:
19520 vaapipostproc: clear state on stop
19521 Otherwise restarting may fail because the state of vaapipluginbase and
19522 vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
19523 initailization and not call gst_vaapi_plugin_base_set_caps()
19525 2015-01-27 14:50:12 +0200 Michael Olbrich <m.olbrich@pengutronix.de>
19527 * gst/vaapi/gstvaapidecode.c:
19528 vaapidecode: don't print an error message for GST_FLOW_FLUSHING
19530 2015-01-27 12:38:45 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19532 * gst-libs/gst/vaapi/gstvaapiencoder.c:
19533 gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
19534 Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
19535 since the vaaapi context creation (gstvaapicontext.c) can still use the
19536 default chroma type which is YUV420.
19537 https://bugzilla.gnome.org/show_bug.cgi?id=743567
19538 https://bugzilla.gnome.org/show_bug.cgi?id=743035
19540 2015-01-21 18:31:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19542 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
19543 * patches/videoparsers/series.frag:
19544 h264parse: drop patches merged upstream.
19545 0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
19547 2015-01-21 18:26:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19549 * ext/codecparsers:
19550 codecparsers: update to gst-vaapi-branch commit d3b5c1b
19551 8194cac: h264parse: parse SPS subset
19552 64b7f52: h264parse: expose stereo-high profile
19553 774360a: h264parse: add initial support for MVC NAL units
19554 258478f: h264parser: fix stack smashing
19556 2015-01-19 11:30:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19558 * gst/vaapi/gstvaapivideometa_texture.c:
19559 Fix compilation error if there is no GL/gl.h header file installed
19561 2015-01-15 16:23:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19563 * gst/vaapi/gstvaapidecode.c:
19564 vaapidecode: commit updated srcpad caps to base plugin.
19565 Make sure that the GstVaapiPluginBase instance receives the new src
19566 pad caps whenever they get updated from within the GstVaapiDecoder
19568 This also ensures that downstream elements receive correctly sized
19569 SW decoded buffers if needed.
19570 https://bugs.tizen.org/jira/browse/TC-114
19572 2015-01-15 16:19:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19574 * gst/vaapi/gstvaapidecode.c:
19575 vaapidecode: always reset decoder on ::set_format().
19576 Split GstVideoDecoder::set_format() handler to first update the sink
19577 pad caps and reset the active VA decoder instance based on those, and
19578 then update the src pad caps whenever possible, e.g. when the caps
19579 specify a valid video resolution.
19581 2015-01-15 16:14:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19583 * gst/vaapi/gstvaapivideomemory.c:
19584 vaapivideomemory: don't crash when trying to allocate 0x0 images.
19585 In some occasions, a buffer pool is created for pre-initialization
19586 purposes regardless of whether a valid image size is available or
19587 not. However, during actual decode stage, the vaapidecode element
19588 is expected to update the srcpad caps with the new dimensions, thus
19589 also triggering a reset of the underlying bufferpool.
19591 2015-01-15 00:00:16 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19593 * ext/codecparsers:
19594 codecparsers: update to gst-vaapi-branch commit 191cb2f
19595 347605a: h264parse: expose compatible profiles to downstream
19596 d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
19597 24a3126: Revert "h264parse: expose compatible profiles to downstream"
19598 8661740: h264parse: expose compatible profiles to downstream
19599 8b7ef3f: codecparsers: fix some compiler warnings
19601 2014-11-27 12:11:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19603 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19604 encoder: h264: Fix the period between I/P frames
19605 If the key-frame period is set as one, then ip_period shuld be zero
19606 https://bugzilla.gnome.org/show_bug.cgi?id=734992
19608 2014-11-27 11:21:03 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19610 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19611 encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
19612 https://bugzilla.gnome.org/show_bug.cgi?id=734993
19614 2014-11-27 11:14:50 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19616 * gst/vaapi/gstvaapisink.c:
19617 vaapisink: Protect the X11 API invokations with proper locking
19618 https://bugzilla.gnome.org/show_bug.cgi?id=739808
19620 2014-11-27 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19622 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19623 encoder: h264: fix pixel-aspect-ratio in encoded stream.
19624 Really report sample aspect ratio (SAR) as present, and make it match
19625 what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
19626 really make sure VUI parameter aspect_ratio_info_present_flag is set
19627 to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
19628 This is a leftover from git commit a12662f.
19629 https://bugzilla.gnome.org/show_bug.cgi?id=740360
19631 2014-11-25 11:46:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19633 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19634 decoder: mpeg4: fix uninitialized variables.
19635 Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
19636 GST_MPEG4_USER_DATA so that a parse error would result in skipping
19637 that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
19638 initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
19640 2014-11-25 11:41:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19642 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19643 encoder: h264: fix profile limits.
19644 Fix ensure_profile_limits() to lower profile to the desired limits,
19645 only if the latter are actually known and the profile needed to be
19648 2014-11-24 15:14:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19650 * gst/vaapi/gstvaapipostproc.c:
19651 vaapipostproc: fix out caps for GLMemory.
19652 If the best downstream capsfeature turns out to be GLMemory, then make
19653 sure to propagate RGBA video format in caps to that element. This fixes
19654 the following pipeline: ... ! vaapipostproc ! glimagesink.
19656 2014-11-24 14:25:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19658 * gst/vaapi/gstvaapipostproc.c:
19659 vaapipostproc: fix check for compatible src pad capsfilters.
19660 When an explicit output video format is selected, from an src pad
19661 capsfilter, make sure that the downstream element actually supports
19662 that format. In particular, fix crash with the following pipelines:
19663 ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
19664 XXX is a format not supported by xvimagesink.
19665 While doing so, also reduce the set of src pad filter caps to the
19666 actual set of allowed src pad caps.
19668 2014-11-24 14:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19670 * gst/vaapi/gstvaapipostproc.c:
19671 * gst/vaapi/gstvaapipostproc.h:
19672 * gst/vaapi/gstvaapiuploader.c:
19673 * gst/vaapi/gstvaapiuploader.h:
19674 plugins: re-indent all video processing related source code.
19676 2014-11-24 13:20:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19678 * gst/vaapi/gstvaapivideomemory.c:
19679 plugins: further fixes to the new "current" storage tracker.
19680 The ensure_surface() and ensure_image() functions shall only relate
19681 to the underlying backing store. The actual current flags are to be
19682 updated only through ensure_{surface,image}_is_current() or very other
19683 particular cases in GstMemory hooks.
19685 2014-11-21 15:43:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19687 * gst/vaapi/gstvaapivideomemory.c:
19688 plugins: fix "current" video memory flags.
19689 If the surface proxy is updated into the GstVaapiVideoMemory, then
19690 it is assumed it is the most current representation of the current
19691 video frame. Likewise, make a few more arrangements to have the
19692 "current " flags set more consistently.
19694 2014-11-21 15:23:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19696 * gst/vaapi/gstvaapivideomemory.c:
19697 * gst/vaapi/gstvaapivideomemory.h:
19698 * gst/vaapi/gstvaapivideometa.c:
19699 plugins: ensure VA surface is current prior to using it.
19700 When interacting with SW elements, the buffers and underlying video
19701 memory could be mapped as read/write. However, we need to use those
19702 buffers again as plain VA surfaces, we have to make sure the VA image
19703 is thus committed back to VA surface memory.
19704 This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
19706 2013-07-12 06:34:15 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19708 * gst/vaapi/gstvaapivideomemory.c:
19709 plugins: enable memory maps for read & write.
19710 Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
19711 buffers can be further processed in-place, e.g. with a textoverlay.
19712 https://bugzilla.gnome.org/show_bug.cgi?id=704078
19713 [ported to current git master branch, amended commit message]
19714 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19716 2014-11-18 14:57:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19718 * gst/vaapi/gstvaapidecode.c:
19719 * gst/vaapi/gstvaapipluginutil.c:
19720 * gst/vaapi/gstvaapipluginutil.h:
19721 * gst/vaapi/gstvaapipostproc.c:
19722 plugins: preserve framerate when updating src caps video format.
19723 In the current implementation, gst_video_info_set_format() would reset
19724 the whole GstVideoInfo structure first, prior to setting video format
19725 and size. So, coleteral information like framerate or pixel-aspect-
19727 Provide and use a unique gst_video_info_change_format() for overcome
19728 this issue, i.e. only have it change the format and video size, and
19729 copy over the rest of the fields.
19730 https://bugzilla.gnome.org/show_bug.cgi?id=734665
19732 2014-11-18 14:07:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19734 * gst/vaapi/gstvaapi.c:
19735 vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
19736 This is for helping decodebin to autoplug the vaapidecode element.
19737 Decodebin is selecting decoder elements only based on rank and caps.
19738 Without overriding the autoplug-* signals there is no way to autoplug
19739 HW decoders inside decodebin. An easier soulution is to raise the
19740 rank of vaapidecode, so that it gets selected first.
19741 https://bugzilla.gnome.org/show_bug.cgi?id=739332
19743 2014-11-12 07:46:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19745 * gst-libs/gst/vaapi/gstvaapiprofile.c:
19746 * gst/vaapi/gstvaapidecode.c:
19747 vaapidecode: only expose supported profiles when needed.
19748 JPEG and VP8 codecs do not really support the concept of "profile". So,
19749 don't try to expose any set that wouldn't be supported by jpegparse, or
19750 ivfparse for instance.
19751 https://bugzilla.gnome.org/show_bug.cgi?id=739713
19752 https://bugzilla.gnome.org/show_bug.cgi?id=739714
19754 2014-11-13 15:13:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19756 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19757 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19758 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
19759 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19760 decoder: h264: add initial support for repeat-first-field (RFF) flag.
19761 Use the SEI pic_timing() message to track and propagate down the repeat
19762 first field (RFF) flag. This is only initial support as there is one
19763 other condition that could induce the RFF flag, which is not handled
19766 2014-11-13 15:05:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19768 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19769 decoder: h264: fix picture ordering count type 0 with previous MMCO5.
19770 Fix the decoding process for picture order count type 0 when the previous
19771 picture had a memory_management_control_operation = 5. In particular, fix
19772 the actual variable type for prev_pic_structure to hold the full bits of
19773 the picture structure.
19774 In practice, this used to work though, due to the underlying type used to
19775 express a gboolean.
19777 2014-11-13 15:00:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19779 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19780 decoder: h264: fix detection of top-field-first (TFF) flag.
19781 Use the SEI pic_timing() message to track the pic_struct variable when
19782 present, or infer it from the regular slice header flags field_pic_flag
19783 and bottom_field_flag. This fixes temporal sequence ordering when the
19784 output pictures are to be displayed.
19785 https://bugzilla.gnome.org/show_bug.cgi?id=739291
19787 2014-11-14 09:54:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19789 * ext/codecparsers:
19790 codecparsers: update to gst-vaapi-branch commit 3d05d9f.
19791 1241840 h264: fix derivation of MaxPicNum variable
19792 3bd718e h264: fix GstH264ParserResult documentation typo
19793 b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
19794 b08e4be h264parse: don't unnecesarily set src_caps
19796 2014-11-03 19:20:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19798 * gst/vaapi/gstvaapipostproc.c:
19799 vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
19800 Added the same Klass specifications used in other upstream
19801 video postprocessing elements like videoconvert, videoscale,
19802 videobalance and deinterlace.
19803 An example use case is for this is to help the playsink
19804 to autoplug the hardware accelerated deinterlacer.
19806 2014-11-03 19:19:20 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19808 * gst/vaapi/gstvaapipostproc.c:
19809 vaapipostproc: Tweak the output video format setting to enable the autoplugging
19810 This is a workaround until auto-plugging is fixed when
19811 format=ENCODED + memory:VASurface caps feature are provided.
19812 Use the downstream negotiated video format as the output video format
19813 if the user didn't ask for the colorspace conversion explicitly.
19814 Usecase: This will help to connect elements like videoscale, videorate etc
19816 https://bugzilla.gnome.org/show_bug.cgi?id=739443
19818 2014-10-29 17:30:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19820 * gst/vaapi/gstvaapipostproc.c:
19821 * gst/vaapi/gstvaapipostproc.h:
19822 vaapipostproc: allow user defined scaling mode.
19823 Add new "scale-method" property to expose the scaling mode to use during
19824 video processing. Note that this is only a hint, and the actual behaviour
19825 may differ from implementation (VA driver) to implementation.
19827 2014-10-29 16:57:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19829 * gst-libs/gst/vaapi/gstvaapifilter.c:
19830 * gst-libs/gst/vaapi/gstvaapifilter.h:
19831 * gst-libs/gst/vaapi/gstvaapiutils.c:
19832 * gst-libs/gst/vaapi/gstvaapiutils.h:
19833 filter: add initial support for high quality scaling.
19834 Add support for video scaling options in VPP pipelines. Only the
19835 DEFAULT mode is bound to exist. Others might be folded into that
19838 2014-10-29 16:35:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19840 * gst-libs/gst/vaapi/gstvaapifilter.c:
19841 * gst-libs/gst/vaapi/gstvaapifilter.h:
19842 filter: re-indent all GstVaapiFilter related source code.
19844 2014-10-29 15:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19846 * ext/codecparsers:
19847 codecparsers: update to gst-vaapi-branch commit f9d3bde.
19848 2218b02 h264parse: expose parsed profile and level to downstream
19849 3dbfab4 h264parse: return flushing if we get chained while being set to READY
19850 d40fa8b h264: fix frame packing SEI parsing
19851 32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
19852 b3e022e h264: initialize some fields of pic_timing structure
19853 a70661d vc1: fix expected level in sequence-layer parsing unit test
19854 6cee88d vc1: fix level values for simple/main profile
19855 356c189 vc1: add unit test for sequence-layer parsing
19856 ab9f641 vc1: take care of endianness when parsing sequence-layer
19857 8dc8e35 mpeg4: fix vlc table used for sprite trajectory
19859 2014-10-29 15:46:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19861 * gst/vaapi/gstvaapidecode.c:
19862 vaapidecode: Expose the supported profiles as caps to upstream
19863 This will allows the playbin to fallback to Software Decoder
19864 if the Hardware Decoder does not support a particular profile.
19865 https://bugzilla.gnome.org/show_bug.cgi?id=730997
19867 2014-10-29 15:46:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19869 * gst/vaapi/gstvaapiencode.c:
19870 * gst/vaapi/gstvaapiencode.h:
19871 * gst/vaapi/gstvaapiencode_h264.c:
19872 encode: Attach the codec-data to out caps only based on negotiated caps
19873 Attach the codec_data to out_caps only if downstream needed.
19874 For eg: h264 encoder doesn't need to stuff codec_data to the
19875 src caps if the negotiated caps has a stream format of byte-stream.
19876 https://bugzilla.gnome.org/show_bug.cgi?id=734902
19878 2014-10-29 15:45:44 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19881 configure: echoing installation prefix path
19883 2014-09-24 10:14:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19885 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19886 display: add support for DRM Render-Nodes.
19887 Add support for DRM Render-Nodes. This is a new feature that appeared
19888 in kernel 3.12 for experimentation purposes, but was later declared
19889 stable enough in kernel 3.15 for getting enabled by default.
19890 This allows headless usages without authentication at all, i.e. usages
19891 through plain ssh connections is possible.
19893 2014-09-24 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19895 * gst/vaapi/gstvaapisink.c:
19896 vaapisink: clean-ups (indentation, drop unused variables).
19898 2014-09-24 13:39:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19901 * gst/vaapi/gstvaapisink.c:
19902 vaapisink: fix GstNavigation "key-press" / "key-release" events.
19903 Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
19904 to a KeySym. In particular, there is no such Window argument. Also
19905 make sure to check for, and use, the correct <X11/XKBlib.h> header
19906 where that new function is defined. Otherwise, default to the older
19907 XKeycodeToKeysym() function.
19909 2014-09-24 13:23:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19911 * gst/vaapi/gstvaapisink.c:
19912 vaapisink: fix GstNavigation "mouse-move" event.
19913 Really use the motion event coordinates to propagate the "mouse-move"
19914 event to upper layer, instead of those from a button event. Those are
19915 technically the same though.
19917 2014-09-16 14:25:40 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19919 * gst/vaapi/gstvaapisink.c:
19920 vaapisink: implement the GstNavigation interface
19921 This is useful for things like DVD menus, where key/mouse events
19922 would need to be forwarded from the upstream sink element.
19923 https://bugzilla.gnome.org/show_bug.cgi?id=711479
19925 2014-03-13 18:38:33 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19927 * gst/vaapi/gstvaapipluginbase.c:
19928 vaapipostproc: fix deinterlacing from non VA memory buffers.
19929 When we copy a buffer because we're moving it into VA-API memory, we
19930 need to copy flags. Otherwise, interlaced YUV buffers from a capture
19931 source (e.g. V4L2) don't get flagged as interlaced.
19932 https://bugzilla.gnome.org/show_bug.cgi?id=726270
19933 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19934 [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
19935 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19937 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19939 * gst/vaapi/gstvaapipostproc.c:
19940 vaapipostproc: add support for GLTextureUploadMeta output.
19941 This allows for vaapipostproc to be chained to the glimagesink element
19943 https://bugzilla.gnome.org/show_bug.cgi?id=735231
19945 2014-08-22 15:22:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19947 * gst/vaapi/gstvaapipluginutil.c:
19948 * gst/vaapi/gstvaapipluginutil.h:
19949 * gst/vaapi/gstvaapipostproc.c:
19950 vaapipostproc: add support for "download" capability.
19951 Allow implicit conversions to raw video formats, while still keeping
19952 VA surfaces underneath. This allows for chaining the vaapipostproc
19953 element to a software-only element that takes care of maps/unmaps.
19955 https://bugzilla.gnome.org/show_bug.cgi?id=720174
19957 2014-08-22 18:10:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19959 * gst/vaapi/gstvaapipostproc.c:
19960 * gst/vaapi/gstvaapipostproc.h:
19961 vaapipostproc: use pooled vaapi video meta.
19962 Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
19963 video buffer allocation. Also optimize copy of additional metadata info
19964 into the resulting video buffer: only copy the video cropping info and
19965 the source surface proxy.
19966 https://bugzilla.gnome.org/show_bug.cgi?id=720311
19967 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19968 [fixed proxy leak, fixed double free on error, optimized meta copy]
19969 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19971 2014-08-22 15:17:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19973 * gst/vaapi/gstvaapipostproc.c:
19974 vaapipostproc: fix passthrough mode.
19975 If no explicit output surface format is supplied try to keep the one
19976 supplied through the sink pad caps. This avoids a useless copy, even
19977 if things are kept in GPU memory.
19978 This is a performance regression from git commit dfa70b9.
19980 2014-07-05 21:00:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19982 * gst/vaapi/gstvaapipostproc.c:
19983 * gst/vaapi/gstvaapipostproc.h:
19984 vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
19985 https://bugzilla.gnome.org/show_bug.cgi?id=720311
19986 [used new infrastructure through base decide_allocation() impl]
19987 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19989 2014-08-22 11:13:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19991 * gst/vaapi/gstvaapipostproc.c:
19992 vaapipostproc: enable advanced deinterlacing with same format.
19993 If only advanced deinterlacing is requested, i.e. deinterlacing is
19994 the only active algorithm to apply with source and output surface
19995 formats being the same, then make sure to enable VPP processing.
19996 Otherwise, allow fallback to bob-deinterlacing with simple rendering
19999 2014-08-21 15:04:20 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20001 * gst/vaapi/gstvaapivideomemory.c:
20002 vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
20003 https://bugzilla.gnome.org/show_bug.cgi?id=735156
20005 2014-08-22 13:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20007 * gst/vaapi/gstvaapipluginbase.c:
20008 * gst/vaapi/gstvaapipluginutil.c:
20009 plugins: fix memory leaks.
20011 2014-08-21 14:10:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20013 * gst/vaapi/gstvaapidecode.c:
20014 * gst/vaapi/gstvaapipluginbase.c:
20015 * gst/vaapi/gstvaapipluginbase.h:
20016 plugins: factor out decide_allocation() hook.
20017 Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
20018 feature argument can be used to force a bufferpool with a specific kind
20021 2014-08-21 11:12:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20023 * gst/vaapi/gstvaapivideobufferpool.c:
20024 * gst/vaapi/gstvaapivideobufferpool.h:
20025 * gst/vaapi/gstvaapivideomemory.c:
20026 plugins: allow bufferpool to not allocate vaapi video meta.
20027 Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
20028 can be used to disable early allocations of vaapi video metas on buffers,
20029 thus delagating that to the bufferpool user.
20031 2014-08-21 10:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20033 * gst/vaapi/gstvaapivideobuffer.c:
20034 * gst/vaapi/gstvaapivideobuffer.h:
20035 * gst/vaapi/gstvaapivideobufferpool.c:
20036 * gst/vaapi/gstvaapivideobufferpool.h:
20037 * gst/vaapi/gstvaapivideocontext.c:
20038 * gst/vaapi/gstvaapivideocontext.h:
20039 * gst/vaapi/gstvaapivideoconverter_glx.c:
20040 * gst/vaapi/gstvaapivideoconverter_glx.h:
20041 * gst/vaapi/gstvaapivideoconverter_x11.c:
20042 * gst/vaapi/gstvaapivideoconverter_x11.h:
20043 * gst/vaapi/gstvaapivideomemory.c:
20044 * gst/vaapi/gstvaapivideomemory.h:
20045 * gst/vaapi/gstvaapivideometa.c:
20046 * gst/vaapi/gstvaapivideometa.h:
20047 * gst/vaapi/gstvaapivideometa_texture.c:
20048 * gst/vaapi/gstvaapivideometa_texture.h:
20049 plugins: re-indent all GstVaapiVideo* related source code.
20051 2014-08-22 15:12:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20053 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20054 surfaceproxy: fix copy to propagate view_id.
20055 Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
20056 fixing random frames skipped when vaapipostproc element is used in
20057 passthrough mode. In that mode, GstMemory is copied, thus including
20058 the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
20060 2014-08-20 16:38:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20062 * gst/vaapi/gstvaapipostproc.c:
20063 vaapipostproc: fix detection of output surface format changes.
20064 Default to I420 format for output surfaces so that to match the usual
20065 GStreamer pipelines. Though, internally, we could still opt for NV12
20066 surface formats, i.e. default format=ENCODED is a hint for that, thus
20067 delegating the decision to the VA driver.
20069 2014-08-20 10:59:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20071 * gst/vaapi/gstvaapipostproc.c:
20072 vaapipostproc: fix construction of allowed sink pad caps.
20073 Fix construction of the set of caps allowed on the sink pad to filter
20074 out unsupported raw video caps with GStreamer >= 1.2.
20076 2014-08-20 10:37:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20078 * gst/vaapi/gstvaapipostproc.c:
20079 * gst/vaapi/gstvaapipostproc.h:
20080 vaapipostproc: improve heuristics for detecting native VA surfaces.
20081 Use the new gst_caps_has_vaapi_surface() helper function to detect
20082 whether the sink pad caps contain native VA surfaces, or not, i.e.
20084 Also rename is_raw_yuv to get_va_surfaces to make the variable more
20085 explicit as we just want a way to differentiate raw video caps from
20086 VA surfaces actually.
20088 2014-08-12 18:33:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20090 * gst/vaapi/gstvaapipostproc.c:
20091 vaapipostproc: disable discontinuity detection code.
20092 The "discontinuity" tracking code, whereby lost frames are tentatively
20093 detected, is inoperant if the sink pad buffer timestamps are not right
20095 This is a temporary workaround until the following bug is fixed:
20096 https://bugzilla.gnome.org/show_bug.cgi?id=734386
20098 2014-08-07 14:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20100 * gst/vaapi/gstvaapipostproc.c:
20101 vaapipostproc: fix heuristic for detecting discontinuity.
20102 In order to make the discontinuity detection code useful, we need to
20103 detect the lost frames in the history as early as the previous frame.
20104 This is because some VA implementations only support one reference
20105 frame for advanced deinterlacing.
20106 In practice, turn the condition for detecting new frame that is beyond
20107 the previous frame from field_duration*2 to field_duration*3, i.e.
20108 nothing received for the past frame and a half because of possible
20109 rounding errors when calculating the field-duration either in this
20110 element (vaapipostproc), or from the upstream element (parser element).
20111 This is a regression introduced with commit faefd62.
20112 https://bugzilla.gnome.org/show_bug.cgi?id=734135
20114 2014-08-20 11:43:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20116 * gst/vaapi/gstvaapipluginbase.c:
20117 * gst/vaapi/gstvaapipluginbase.h:
20118 plugins: fix detection of raw video caps.
20119 Use the new gst_caps_has_vaapi_surface() helper function to better
20120 detect raw video caps, and in particular those from RGB colorspace.
20121 https://bugzilla.gnome.org/show_bug.cgi?id=734665
20123 2014-08-20 11:30:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20125 * gst/vaapi/gstvaapipluginutil.c:
20126 * gst/vaapi/gstvaapipluginutil.h:
20127 plugins: add helper for detecting VA surfaces in caps.
20128 Introduce new gst_caps_has_vaapi_surface() helper function to detect
20129 whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
20130 implies a check for memory:VASurface caps features, and format=ENCODED
20131 for earlier versions of GStreamer.
20133 2014-08-12 13:01:57 +0300 Sebastian Dröge <sebastian@centricular.com>
20135 * gst/vaapi/gstvaapidecode.c:
20136 vaapidecode: start the decoder task again after finishing
20137 This allows the element to accept data again after draining without
20138 a hard reset or caps change happening in between.
20139 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20141 2014-08-12 13:00:03 +0300 Sebastian Dröge <sebastian@centricular.com>
20143 * gst/vaapi/gstvaapidecode.c:
20144 vaapidecode: unlock condition variables before shutting down the element
20145 Otherwise threads might wait for them, causing the shutdown of the element
20146 to deadlock on the streaming thread.
20147 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20149 2014-08-11 17:15:24 +0300 Sebastian Dröge <sebastian@centricular.com>
20151 * gst/vaapi/gstvaapidecode.c:
20152 vaapidecode: reset decoder_finish variable after stopping the decoder thread
20153 Otherwise the element is not usable again after draining/EOS.
20154 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20156 2014-08-11 17:14:53 +0300 Sebastian Dröge <sebastian@centricular.com>
20158 * gst/vaapi/gstvaapidecode.c:
20159 vaapidecode: don't try flushing the decoder instance if we didn't create one yet
20160 This otherwise results in unnecessary error messages.
20161 https://bugzilla.gnome.org/show_bug.cgi?id=734616
20163 2014-08-01 06:32:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20165 * gst-libs/gst/vaapi/Makefile.am:
20166 * gst/vaapi/Makefile.am:
20167 build: fix with --no-undefined linker flags.
20168 https://bugzilla.gnome.org/show_bug.cgi?id=729352
20170 2014-01-23 15:44:09 +0000 Changzhi Wei <changzhix.wei@intel.com>
20172 * gst/vaapi/gstvaapisink.c:
20173 * gst/vaapi/gstvaapisink.h:
20174 vaapisink: add support for GstColorBalance interface.
20175 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20176 [fixed channel names, simplified range factor, fixed memory leak]
20177 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20179 2014-01-23 15:23:00 +0000 Changzhi Wei <changzhix.wei@intel.com>
20181 * gst/vaapi/gstvaapisink.c:
20182 * gst/vaapi/gstvaapisink.h:
20183 vaapisink: add support for colorbalance adjustment.
20184 https://bugzilla.gnome.org/show_bug.cgi?id=722390
20185 [fixed and simplified tracking of colorbalance value changes]
20186 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20188 2014-07-31 13:18:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20190 * gst/vaapi/gstvaapisink.c:
20191 vaapisink: improve installation of properties.
20192 Simplify the creation and installation process of properties, by first
20193 accumulating them into a g_properties[] array, and next calling into
20194 g_object_class_install_properties().
20195 Also add missing docs and flags to some properties.
20197 2014-07-31 10:48:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20199 * gst/vaapi/gstvaapisink.c:
20200 * gst/vaapi/gstvaapisink.h:
20201 vaapisink: code clean-ups.
20202 Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
20203 helper macro and use it wherever we know the object is a GstBaseSink or
20204 any base class. Drop explicit initializers for values that have defaults
20207 2014-07-31 10:37:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20209 * gst/vaapi/gstvaapisink.c:
20210 * gst/vaapi/gstvaapisink.h:
20211 vaapisink: re-indent all GstVaapiSink related source code.
20213 2014-07-30 17:27:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20215 * gst/vaapi/gstvaapisink.c:
20216 * gst/vaapi/gstvaapisink.h:
20217 vaapisink: introduce separate backends.
20218 Introduce new backends vtable so that to have clean separation between
20219 display dependent code and common base code. That's a "soft" separation,
20220 we don't really need dedicated objects.
20221 https://bugzilla.gnome.org/show_bug.cgi?id=722248
20223 2014-07-30 16:47:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20225 * gst/vaapi/gstvaapisink.c:
20226 * gst/vaapi/gstvaapisink.h:
20227 vaapisink: drop unused "synchronous" mode.
20228 Support for X11 "synchronous" mode was never implemented, and was only
20229 to be useful for debugging. Drop that altogether, that's not going to
20230 be useful in practice.
20231 https://bugzilla.gnome.org/show_bug.cgi?id=733985
20233 2014-07-30 17:32:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20235 * gst/vaapi/gstvaapisink.c:
20236 * gst/vaapi/gstvaapisink.h:
20237 vaapisink: drop unused variables.
20238 Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
20239 variables. They got merged into the GstVaapiPluginBase object.
20241 2014-07-30 16:35:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20243 * gst/vaapi/gstvaapisink.c:
20244 * gst/vaapi/gstvaapisink.h:
20245 vaapisink: drop GLX rendering and fancy effects.
20246 Rendering with GLX in vaapisink is kind of useless nowadays, including
20247 OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
20248 deprecated in favor of EGL, or more direct buffer sharing with actual
20250 Should testing of interop with GLX be needed, one could still be using
20251 the modern cluttersink or glimagesink elements.
20252 https://bugzilla.gnome.org/show_bug.cgi?id=733984
20254 2013-11-05 14:01:11 +0100 Holger Kaelberer <hk@getslash.de>
20256 * gst/vaapi/gstvaapisink.c:
20257 * gst/vaapi/gstvaapisink.h:
20258 vaapisink: listen to window size changes on X11.
20259 Allow dynamic changes to the window, e.g. performed by the user, and
20260 make sure to refresh its contents, while preserving aspect ratio.
20261 In practice, Expose and ConfigureNotify events are tracked in X11
20262 display mode by default. This occurs in a separte event thread, and
20263 this is similar to what xvimagesink does. Any of those events will
20264 trigger a reconfiguration of the window "soft" size, subsequently
20265 the render-rect when necessary, and finally _expose() the result.
20266 The default of handle_events=true can be changed programatically via
20267 gst_x_overlay_handle_events().
20268 Thanks to Fabrice Bellet for rebasing the patch.
20269 https://bugzilla.gnome.org/show_bug.cgi?id=711478
20270 [dropped XInitThreads(), cleaned up the code a little]
20271 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20273 2014-07-29 15:47:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20275 * gst/vaapi/gstvaapidecode.c:
20276 vaapidecode: decode and output all pending frames on normal EOS.
20277 The gst_vaapidecode_decode_loop() function is called within a separate
20278 task to fetch and output all frames that were decoded so far. So, if
20279 the decoder_loop_status is forcibly set to EOS when _finish() is called,
20280 then we are bound to exist the task without submitting the pending
20282 If the downstream element error'ed out, then the gst_pad_push() would
20283 propagate up an error and so we will get it right for cutting off
20284 _finish() early in that case.
20285 This is a regression from 6003596.
20286 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20288 2014-07-29 13:24:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20291 Bump version for development.
20293 2014-07-29 10:31:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20298 2014-07-29 10:31:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20303 2014-07-29 16:22:01 +1000 Matthew Waters <ystreet00@gmail.com>
20305 * gst/vaapi/gstvaapidecode.c:
20306 vaapidecode: properly return from decode loop on downstream errors.
20307 Fixes a hang/race on shutdown where _decode_loop() had already completed
20308 its execution and _finish() was waiting on a GCond for decode_loop()
20309 to complete. Also fixes the possible race where _finish() is called
20310 but _decode_loop() endlessly returns before signalling completion
20311 iff the decoder instance returns GST_FLOW_OK.
20312 Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
20313 https://bugzilla.gnome.org/show_bug.cgi?id=733897
20314 [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
20315 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20317 2014-07-28 18:45:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20323 2014-07-28 18:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20325 * gst/vaapi/gstvaapisink.c:
20326 vaapisink: fix GstVideoOverlay::expose() implementation.
20327 Now that we always track the currently active video buffer, it is
20328 not necessary to automatically increase its reference since this is
20329 implicitly performed in ::show_frame() through the get_input_buffer()
20330 helper from GstVaapiPluginBase class.
20331 This is a regression from a26df80.
20333 2014-07-28 18:00:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20335 * gst/vaapi/gstvaapidecode.c:
20336 * gst/vaapi/gstvaapipluginutil.c:
20337 vaapidecode: simplify bufferpool configuration.
20338 Rework the logics behind the configuration of an adequate bufferpool,
20339 especially when OpenGL meta or additional capsfeatures are needed.
20340 Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
20341 and that is not system memory, is now selected by default.
20343 2014-07-28 16:43:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20345 * gst/vaapi/gstvaapidecode.c:
20346 vaapidecode: fix auto-plugging of vaapisink element.
20347 Make sure to propagate memory:VASurface capsfeature to srcpad caps
20348 only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
20349 core currently miss additional patches available in 1.5-git (1.6).
20350 This is a temporary workaround.
20352 2014-07-28 15:54:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20355 configure: allow builds against GStreamer git (1.5.x).
20356 https://bugzilla.gnome.org/show_bug.cgi?id=733688
20358 2014-07-28 14:20:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20361 configure: fix build with GStreamer 1.4.0 release.
20363 2014-03-04 19:40:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20366 * debian.upstream/Makefile.am:
20367 * debian.upstream/control.in:
20368 debian: fix packaging for new naming scheme.
20370 2014-07-28 11:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20375 2014-07-28 11:39:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20378 configure: mark support for GStreamer < 1.2 as deprecated.
20379 Supporting anything thing below GStreamer 1.2 is asking for trouble
20380 for keeping up with the required facilities to make efficient pipelines.
20381 Users are invited to upgrade to the very latest GStreamer 1.2.x release,
20384 2014-07-28 11:35:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20387 configure: mark support for GStreamer 0.10 as obsolete.
20388 Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
20389 and may actually be removed altogether for a future release. There is
20390 no real point to maintain a build for such an ancient GStreamer version
20391 that is not even supported upstream.
20393 2014-07-28 10:25:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20395 * gst/vaapi/gstvaapisink.c:
20396 * gst/vaapi/gstvaapisink.h:
20397 vaapisink: allow a specific view component to be displayed.
20398 If a multiview stream is decoded, multiple view components are submitted
20399 as is downstream. It is the responsibility of the sink element to display
20400 the required view components. By default, always select the frame buffer
20401 that matches the view-id of the very first frame to be displayed.
20402 However, introduce a "view-id" property to allow the selection of a
20403 specific view component of interest to display.
20405 2014-07-28 10:09:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20407 * gst/vaapi/gstvaapisink.c:
20408 vaapisink: always keep the last displayed buffer around.
20409 Always record the VA surface that is currently being rendered, no matter
20410 the fact we are using texturedblit or overlay. That's because in some
20411 occasions, we need to refresh or resize the displayed contents based on
20412 new events. e.g. user-resized window.
20413 Besides, it's simpler to track the last video buffer in GstVaapiSink than
20414 through the base sink "last-sample".
20416 2014-07-25 11:13:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20418 * gst/vaapi/gstvaapipluginbase.c:
20419 * gst/vaapi/gstvaapipluginbase.h:
20420 * gst/vaapi/gstvaapipluginutil.c:
20421 * gst/vaapi/gstvaapisink.c:
20422 vaapisink: add support for "display-name" property.
20423 Add a "display-name" property to vaapisink so that the end user could
20424 select the desired output. Keep "display-name" in-line with the existing
20425 "display" (GstVaapiDisplayXXX type).
20426 So, for X11 or GLX, the "display-name" is the usual display name as we
20427 know for XOpenDisplay(); for Wayland, the "display-name" is the name used
20428 for wl_display_connect(); and for DRM, the "display-name" is actually the
20430 https://bugzilla.gnome.org/show_bug.cgi?id=722247
20432 2014-07-25 17:29:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20434 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20435 window: make gst_vaapi_window_reconfigure() thread-safe.
20436 Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
20437 thread-safe by default, so that upper layer users don't need to handle
20440 2013-07-29 09:28:28 +0200 Holger Kaelberer <hk@getslash.de>
20442 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20443 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20444 window: allow for updating size from current geometry.
20445 Add gst_vaapi_window_reconfigure() interface to force an update of
20446 the GstVaapiWindow "soft" size, based on the current geometry of the
20447 underlying native window.
20448 This can be useful for instance to synchronize the window size when
20449 the user changed it.
20450 Thanks to Fabrice Bellet for rebasing the patch.
20451 [changed interface to gst_vaapi_window_reconfigure()]
20452 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20454 2014-07-25 16:53:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20456 * gst-libs/gst/vaapi/gstvaapiwindow.c:
20457 * gst-libs/gst/vaapi/gstvaapiwindow.h:
20458 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
20459 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
20460 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20461 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
20462 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
20463 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20464 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
20465 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20466 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
20467 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
20468 window: re-indent all GstVaapiWindow related source code.
20470 2014-07-25 11:24:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20472 * gst-libs/gst/vaapi/gstvaapidisplay.c:
20473 * gst-libs/gst/vaapi/gstvaapidisplay.h:
20474 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20475 display: add interface to retrieve the display name.
20476 Add gst_vaapi_display_get_display_name() helper function to determine
20477 the name associated with the underlying native display. Note that for
20478 raw DRM backends, the display name is actually the device path.
20480 2014-07-25 10:55:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20482 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20483 display: fix comparison of X11 display names.
20484 Make sure to not only compare display host names, but also the actual
20485 display number. The screen number does not need to be checked at this
20488 2014-07-25 15:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20490 * gst/vaapi/gstvaapidecode.c:
20491 * gst/vaapi/gstvaapivideobufferpool.c:
20492 vaapidecode: add support for VideoAlignment bufferpool option.
20493 Always add VideoAlignment bufferpool option if the downstream element
20494 expects its own pool to be used but does not offer it through a proper
20495 propose_allocation() implementation for instance, and that the ALLOCATION
20496 query does not expose the availability of the Video Meta API.
20497 This fixes propagation of video buffer stride information to Firefox.
20499 2014-07-25 15:44:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20501 * gst/vaapi/gstvaapivideomemory.c:
20502 vaapivideomemory: always prefer native VA surface formats.
20503 Make sure to always prefer native internal formats for the VA surfaces
20504 that get allocated. Also disable "direct-rendering" mode in this case.
20505 This is needed so that to make sure that anything that gets out of the
20506 decoder, or anything that gets into the encoder, is in native format
20507 for the hardware, and thus the driver doesn't need to perform implicit
20508 conversions in there. Interop with SW elements is still available with
20509 fast implementations of VA imaging APIs.
20511 2014-07-24 11:58:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20513 * gst/vaapi/gstvaapivideomemory.c:
20514 vaapivideomemory: disallow memory shares across buffers, use a copy.
20515 Forbid shares of GstMemory instances, and rather make copy of it. This
20516 effectively copies the GstMemory structure and enclosed metadata, but
20517 this does not copy the VA surface contents itself. It should though.
20518 This fixes preroll and makes sure to not download garbage for the first
20519 frame when a SW rendering sink is used.
20521 2014-07-24 06:46:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20523 * gst/vaapi/gstvaapivideomemory.c:
20524 * gst/vaapi/gstvaapivideomemory.h:
20525 vaapivideomemory: use an image pool to cache objects.
20526 Use an image pool to hold VA images to be used for downloads/uploads
20527 of contents for the associated surface.
20528 This is an optmization for size. So, instead of creating as many VA
20529 images as there are buffers (then VA surfaces) allocated, we only
20530 maintain a minimal set of live VA images, thus preserving memory
20533 2014-07-24 00:14:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20535 * gst/vaapi/gstvaapivideomemory.c:
20536 vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
20537 Disable read-write mappings if "direct-rendering" is not supported.
20538 Since the ordering of read and write operations is not specified,
20539 this would require to always download the VA surface on _map(), then
20540 commit the temporary VA image back to the VA surface on _unmap().
20541 Some SW decoding plug-in elements still use R/W mappings though.
20542 https://bugzilla.gnome.org/show_bug.cgi?id=733242
20544 2014-07-23 23:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20546 * gst/vaapi/gstvaapivideomemory.c:
20547 vaapivideomemory: minor code clean-ups.
20548 Fix error messages introduced in the previous commit for the _map()
20549 imaplementation. Also use the new get_image_data() helper function
20550 to determine the base pixels data buffer from a GstVaapiImage when
20551 updating the video info structure from it.
20553 2014-07-23 18:54:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20555 * gst/vaapi/gstvaapivideomemory.c:
20556 * gst/vaapi/gstvaapivideomemory.h:
20557 vaapivideomemory: add support for raw pixels mappings.
20558 Allow raw pixels of the whole frame to be mapped read-only. i.e. in
20559 cases where the buffer pool is allocated without VideoMeta API, thus
20560 individual planes cannot be mapped.
20561 This is initial support for Firefox >= 30.
20562 https://bugzilla.gnome.org/show_bug.cgi?id=731886
20564 2014-07-03 18:41:11 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20566 * gst/vaapi/gstvaapivideomemory.c:
20567 vaapivideomemory: fix determination of the surface pool format.
20568 While creating the vaapi video allocator, make sure the associated
20569 surface pool has correct format instead of defaulting to NV12 video
20570 format even though there is no direct rendering support.
20571 https://bugzilla.gnome.org/show_bug.cgi?id=732691
20573 2014-07-23 18:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20575 * gst/vaapi/gstvaapivideomemory.c:
20576 vaapivideomemory: fix association of surface to proxy.
20577 Make sure to always update the VA surface pointer whenever the proxy
20578 changes. This used to only work when the VA surface is written to, in
20579 interop with SW element ("upload" feature), and this now fixes cases
20580 when the VA surface is needed for reading, in interop with SW element
20581 ("download" feature).
20583 2014-07-23 10:23:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20585 * gst/vaapi/gstvaapidecode.c:
20586 * gst/vaapi/gstvaapipluginutil.c:
20587 * gst/vaapi/gstvaapivideomemory.c:
20588 plugins: expose I420 format for interop with SW elements.
20589 Always expose I420 format by default when the VA surface could be
20590 mapped for interoperability with non harware accelerated elements.
20591 However, the default behaviour remains the auto-plugging of vaapi
20592 elements, down to the sink.
20593 Side effect: "direct-rendering" mode is also disabled most of the
20594 times as plain memcpy() from uncached speculative write combining
20595 memory is not going to be efficient enough.
20597 2014-07-22 18:54:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20599 * gst/vaapi/gstvaapidecode.c:
20600 * gst/vaapi/gstvaapivideomemory.c:
20601 plugins: allow download capability to vaapidecode element.
20602 Fix support for VA surface download capability in vaapidecode element
20603 for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
20604 but also the libva-intel-driver while performing hardware accelerated
20605 conversions from the native VA surface format (NV12) to the desired
20606 output VA image format.
20607 For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
20608 https://bugzilla.gnome.org/show_bug.cgi?id=733243
20610 2014-07-17 01:51:36 +0200 Fabrice Bellet <fabrice@bellet.info>
20612 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20613 decoder: mpeg4: fix picture decoder return value for skipped frames.
20614 The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
20615 when a frame should be skipped, so the stream processing is not stalled.
20616 https://bugzilla.gnome.org/show_bug.cgi?id=733324
20618 2014-07-04 15:13:32 +1000 Jan Schmidt <jan@centricular.com>
20620 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20621 decoder: mpeg2: respect any input PTS provided for a frame.
20622 The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
20623 frame timestamps within a GOP, even when it's been fed input PTS for
20625 That leads to incorrect output timestamps in some situations - for example
20626 live playback where input timestamps have been scaled based on arrival time
20627 from the network and don't exactly match the framerate.
20628 https://bugzilla.gnome.org/show_bug.cgi?id=732719
20630 2014-01-22 08:20:59 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20632 * gst-libs/gst/vaapi/gstvaapiobject.c:
20633 GstVaapiObject: make gst_vaapi_object_new() more robust.
20634 Forbid GstVaapiObject to be created without an associated klass spec.
20635 It is mandatory that the subclass implements an adequate .finalize()
20636 hook, so it shall provide a valid GstVaapiObjectClass.
20637 https://bugzilla.gnome.org/show_bug.cgi?id=722757
20638 [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
20639 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20641 2014-01-21 15:43:57 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20643 * gst-libs/gst/vaapi/gstvaapiobject.c:
20644 GstVaapiObject: initialize the derived object data with init() hook.
20645 Call the subclass .init() function in gst_vaapi_object_new(), if
20646 needed. The default behaviour is to zero initialize the subclass
20647 object data, then the .init() function can be used to initialize
20648 fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
20649 Also fix the gst_vaapi_object_new() description, which was merely
20650 copied from GstVaapiMiniObject.
20651 https://bugzilla.gnome.org/show_bug.cgi?id=722757
20652 [changed to always zero initialize the subclass]
20653 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20655 2014-06-13 21:45:04 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
20657 * gst/vaapi/gstvaapidecode.c:
20658 vaapidecode: make decoder work with playbin
20659 When playbin/decodebin builds the pipeline, it puts decoders and sinks
20660 into different bins and forwards the queries from bins to bins. So in
20661 the initials steps the pipeline is built iteratively by playbin and
20664 [filesrc] -> [typefind]
20665 [filesrc] -> [typefind] -> [demuxer]
20666 [filesrc] -> [typefind] -> [demuxer] -> [decoder]
20667 At this point the decoder is asked for its SRC caps and it will make a
20668 choice based on what gst_pad_peer_query_caps() returns. The problem is
20669 that the caps returns at that point includes caps features like ANY,
20670 essentially because playbin can plug in additional elements like
20671 videoscale, videoconv or deinterlace.
20672 This patch adds a another call to
20673 gst_vaapi_find_preferred_caps_feature() when the decoder decides its
20674 allocation, to make sure we asks the downstream elements when the
20675 entire pipeline has been built.
20676 https://bugzilla.gnome.org/show_bug.cgi?id=731645
20678 2014-06-27 11:57:11 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20680 * gst/vaapi/gstvaapipostproc.c:
20681 vaapipostproc: don't let tmp_rect go out of scope.
20682 A compiler change showed me that tmp_rect went out of scope before
20683 it was used. Move it to the beginning of the function instead.
20684 https://bugzilla.gnome.org/show_bug.cgi?id=726363
20685 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20686 [added guards for GStreamer 0.10 builds]
20687 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20689 2014-07-03 22:44:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20694 2014-07-03 22:34:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20698 Drop references to deprecated plugins (vaapiupload, vaapidownload),
20699 mention that support for GStreamer 0.10 is deprecated, make overview
20700 more descriptive in certain aspects.
20702 2014-07-03 22:21:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20707 2014-07-03 19:42:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20711 build: mention that support for GStreamer 0.10 is deprecated.
20713 2014-07-03 17:17:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20716 * gst/vaapi/gstvaapidecode.c:
20717 build: fix for GStreamer 0.10.
20719 2014-07-03 18:01:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20721 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
20722 * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
20723 * patches/videoparsers/series.frag:
20724 build: fix for GStreamer 1.0.x.
20726 2014-07-03 13:48:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20728 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20729 decoder: h264: detect incorrectly paired fields in frames.
20730 When a DPB flush is required, e.g. at a natural and of stream or issued
20731 explicitly through an IDR, try to detect any frame left in the DPB that
20732 is interlaced but does not contain two decoded fields. In that case, mark
20733 the picture as having a single field only.
20734 This avoids a hang while decoding tv_cut.mkv.
20736 2014-07-03 11:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20738 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20739 decoder: h264: simplify the DPB output process.
20740 Simplify the dpb_output() function to exclusively rely on the frame store
20741 buffer to output, since this is now always provided. Besides, also fix
20742 cases where split fields would not be displayed.
20743 This is a regression from f48b1e0.
20745 2014-07-01 17:20:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20747 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
20748 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
20749 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
20750 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
20751 * patches/videoparsers/series.frag:
20752 h264parse: drop patches merged upstream.
20753 0003-h264parse-fix-and-optimize-NAL-collection-function.patch
20754 0005-h264parse-introduce-new-state-tracking-variables.patch
20755 0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
20756 0007-h264parse-fix-collection-of-access-units-to-preserve.patch
20758 2014-07-01 17:18:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20760 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20761 decoder: h264: fix memory leak in PPS.
20762 Cope with latest changes from codecparsers/h264. It is now required
20763 to explicitly clear the GstH264PPS structure as it could contain
20764 additional allocations (slice_group_ids).
20766 2014-07-01 17:13:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20768 * ext/codecparsers:
20769 codecparsers: update to gst-vaapi-branch commit 2d53b69.
20770 c4ace00 h264parse: fix collection of access units to preserve config headers
20771 0f9f7c9 h264parse: improve conditions for skipping NAL units
20772 9ffb25c h264parse: introduce new state tracking variables
20773 64955d3 h264parse: fix and optimize NAL collection function
20774 13cd2a3 h264: clarifications and documentation fixes
20775 53e7dd1 h264: fix identification of EOSEQ and EOS NALs
20776 18f0de0 h264: fix memory leak in GstH264PPS
20777 fdcb54c h264: fix typo in GstH264VUIParams description
20778 fd4dae9 vp8: move up built-in range decoder private data
20780 2014-06-30 19:01:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20782 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20783 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20784 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
20785 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
20786 decoder: propagate MVC metadata ("view-id", head of multiview set).
20787 Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
20788 bundle", and really expresses the first view component of a multi
20789 view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
20791 Likewise, new API is exposed to retrieve the associated "view-id".
20793 2014-06-30 18:46:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20795 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20796 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20797 decoder: propagate "one-field" flags.
20798 Allow decoders to set the "one-field" attribute when the decoded frame
20799 genuinely has a single field, or if the second field was mis-decoded but
20800 we still want to display the first field.
20802 2014-06-30 18:34:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20804 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20805 decoder: output decoded frames only once.
20806 Make sure to output the decoded picture, and push the associated
20807 GstVideoCodecFrame, only once. The frame fully represents what needs
20808 to be output, included for interlaced streams. Otherwise, the base
20809 GstVideoDecoder class would release the frame twice.
20810 Anyway, the general process is to output decoded frames only when
20811 they are complete. By complete, we mean a full frame was decoded or
20812 both fields of a frame were decoded.
20814 2014-06-30 16:12:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20816 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20817 decoder: h264: decode current picture earlier.
20818 Slightly optimize decoding process by submitting the current VA surface
20819 for decoding earlier to the hardware, and perform the reference picture
20820 marking process and DPB update process afterwards.
20821 This is a minor optimization to let the video decode engine kick in work
20822 earlier, thus improving parallel resources utilization.
20824 2014-06-30 16:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20826 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20827 decoder: h264: fix output of second field when first field is not in DPB.
20828 Fix decoding of interlaced streams where a first field (e.g. B-slice)
20829 was immediately output and the current decoded field is to be paired
20830 with that former frame, which is no longer in DPB.
20831 https://bugzilla.gnome.org/show_bug.cgi?id=701340
20833 2014-06-30 11:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20835 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20836 decoder: h264: slightly optimize the process to detect new pictures.
20837 Optimize the process to detect new pictures or start of new access
20838 units by checking if the previous NAL unit was the end of a picture,
20839 or the end of the previous access unit.
20841 2014-06-13 15:42:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20843 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20844 decoder: h264: handle access unit ("au") optimization.
20845 Optimize parsing when buffers are supplied with access unit alignment.
20846 This helps determining faster when the end of an access unit is reached.
20848 2014-06-28 07:25:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20850 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20851 decoder: h264: fix tracking of DPB size changes.
20852 Add support for MVC streams with multiple SPS and subset SPS headers
20853 emitted regularly, e.g. at around every I-frame. Track the maximum
20854 number of views in ensure_context() and really reset the DPB size to
20855 the expected value, always. i.e. even if it decreased. dpb_reset()
20856 only cares of ensuring the DPB allocation.
20858 2014-06-27 20:44:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20860 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20861 decoder: h264: fix the DPB compaction process.
20862 Fix the compaction process when the DPB is cleared for a specific
20863 view, i.e. fix the process of filling in the holes resulting from
20864 removing frame buffers matching the current picture.
20866 2014-06-27 16:38:03 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20868 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20869 encoder: h264: generate new SPS only when codec config changed.
20870 It is not necessary to periodically send SPS or subset SPS headers.
20871 This is up to the upper layer (e.g. transport layer) to decide on
20872 if/how to periodically submit those. For now, only generate new SPS
20873 or subset SPS headers when the codec config changed.
20874 Note: the upper layer could readily determine the config headers
20875 (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
20876 https://bugzilla.gnome.org/show_bug.cgi?id=732083
20877 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20879 2014-06-27 18:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20881 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20882 encoder: h264: track encoder config changes.
20883 Track and report when encoder configuration changed. For now, this covers
20884 resolution, profile/level and bitrate changes.
20886 2014-06-27 13:15:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20888 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20889 encoder: h264: add pixel-aspect-ratio to VUI parameters.
20890 Report sample aspect ratio (SAR) as present, and make it match what
20891 we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
20892 VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
20894 2014-06-27 00:49:34 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20896 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20897 encoder: h264: fix number of anchor and non-anchor reference pictures.
20898 Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
20899 and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
20902 2014-06-27 10:37:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20904 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20905 encoder: h264: fix timing_info_present_flag value in subset SPS.
20906 When the seq_parameter_set_data() syntax structure is present in a subset
20907 sequence parameter set and vui_parameters_present_flag is equal to 1, then
20908 timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
20910 2014-06-26 14:39:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20912 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20913 encoder: h264: add cpbBrNalFactor values for MVC profiles.
20915 2014-06-26 14:51:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20917 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
20918 h264parse: fix detection of access unit boundaries for MVC.
20919 The gst_h264_parse_collect_nal() function is a misnomer. In reality,
20920 this function is used to determine access unit boundaries, i.e. that
20921 is the key function for alignment=au output format generation.
20923 2014-06-26 14:49:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20925 * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
20926 * patches/videoparsers/series.frag:
20927 h264parse: fix collection of access units to preserve config headers.
20928 Always use a GstAdapter when collecting access units (alignment="au")
20929 in either byte-stream or avcC format. This is required to properly
20930 preserve config headers like SPS and PPS when invalid or broken NAL
20931 units are subsequently parsed.
20932 More precisely, this fixes scenario like:
20933 <SPS> <PPS> <invalid-NAL> <slice>
20934 where we used to reset the output frame buffer when an invalid or
20935 broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
20936 preventing the next slice unit to be decoded, should this also
20937 represent any valid data.
20938 https://bugzilla.gnome.org/show_bug.cgi?id=732203
20940 2014-06-26 14:48:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20942 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
20943 * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
20944 * patches/videoparsers/series.frag:
20945 h264parse: improve conditions for skipping NAL units.
20946 Carefully track cases when skipping broken or invalid NAL units is
20947 necessary. In particular, always allow NAL units to be processed
20948 and let that gst_h264_parse_process_nal() function decide on whether
20949 the current NAL needs to be dropped or not.
20950 This fixes parsing of streams with SEI NAL buffering_period() message
20951 inserted between SPS and PPS, or SPS-Ext NAL following a traditional
20952 SPS NAL unit, among other cases too.
20953 Practical examples from the H.264 AVC conformance suite include
20954 alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
20955 when parsing in stream-format=byte-stream,alignment=au mode.
20956 https://bugzilla.gnome.org/show_bug.cgi?id=732203
20958 2014-06-26 14:45:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20960 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
20961 * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
20962 * patches/videoparsers/series.frag:
20963 h264parse: introduce new state tracking variables.
20964 Improve parser state tracking by introducing new flags reflecting
20965 it: "got-sps", "got-pps" and "got-slice". This is an addition for
20966 robustness purposes.
20967 Older have_sps and have_pps variables are kept because they have
20968 a different meaning. i.e. they are used for deciding on when to
20969 submit updated caps or not, and rather mean "have new SPS/PPS to
20972 2014-06-26 14:39:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20974 * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
20975 * patches/videoparsers/series.frag:
20976 h264parse: default to byte-stream/nalu format (Annex B).
20977 Always default to stream-format=byte-stream,alignment=nalu if avcC
20978 format was not detected. This is the natural stream format specified
20979 in the standard (Annex.B): a series of NAL units prefixed with the
20981 https://bugzilla.gnome.org/show_bug.cgi?id=732167
20983 2014-06-26 14:37:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20985 * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
20986 * patches/videoparsers/series.frag:
20987 h264parse: fix and optimize NAL collection function.
20988 Use gst_h264_parser_identify_nalu_unchecked() to identify the next
20989 NAL unit. We don't want to parse the full NAL unit, but only the
20990 header bytes and possibly the first RBSP byte for identifying the
20991 first_mb_in_slice syntax element.
20992 Also fix check for failure when returning from that function. The
20993 only success condition for that is GST_H264_PARSER_OK, so use it.
20994 https://bugzilla.gnome.org/show_bug.cgi?id=732154
20996 2014-06-26 11:39:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20998 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20999 encoder: h264: fix NAL unit types in packed headers.
21000 Submit Prefix NAL headers (nal_unit_type = 14) before every packed
21001 slice header (nal_unit_type = 1 or 5) only for the base view. In non
21002 base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
21003 is required, with an appropriate nal_unit_header_mvc_extension() in
21004 the NAL header bytes.
21005 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21007 2014-06-25 22:05:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21009 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21010 encoder: h264: add missing field in packed Subset SPS header.
21011 Write the missing num_level_values_signalled_minus1 syntax element
21012 into the packed header for subset sequence parameter set.
21013 https://bugzilla.gnome.org/show_bug.cgi?id=732083
21015 2014-06-25 22:26:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21017 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21018 decoder: h264: fix marking of non-reference picture into DPB.
21019 Fix search for a picture in the DPB that has a lower POC value than
21020 the current picture. The dpb_find_lowest_poc() function will return
21021 a picture with the lowest POC in DPB and that is marked as "needed
21022 for output", but an additional check against the actual POC value
21023 of the current picture is needed.
21024 This is a regression from 1c46990.
21025 https://bugzilla.gnome.org/show_bug.cgi?id=732130
21027 2014-06-19 17:08:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21029 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21030 decoder: h264: fix DPB clear when no decoding actually started.
21031 Fix dpb_clear() to clear previous frame buffers only if they actually
21032 exist to begin with. If the decoder bailed out early, e.g. when it
21033 does not support a specific profile, that array of previous frames
21034 might not be allocated beforehand.
21036 2014-02-06 08:30:10 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21038 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21039 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
21040 * gst/vaapi/gstvaapidecode.c:
21041 decoder: h264: add support for NALU "alignment" optimization.
21042 We can avoid scanning for start codes again if the bitstream is fed
21043 in NALU chunks. Currently, we always scan for start codes, and keep
21044 track of remaining bits in a GstAdapter, even if, in practice, we
21045 are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
21047 https://bugzilla.gnome.org/show_bug.cgi?id=723284
21048 [use gst_adapter_available_fast() to determine the top buffer size]
21049 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21051 2014-06-18 18:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21053 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21054 decoder: h264: fix caps to report interlace-mode accordingly.
21055 The `vaapipostproc' element could never determine if the H.264 stream
21056 was interlaced, and thus always assumed it to be progressive. Fix the
21057 H.264 decoder to report interlace-mode accordingly, thus allowing the
21058 vaapipostproc element to automatically enable deinterlacing.
21060 2014-06-19 13:35:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21062 * gst/vaapi/gstvaapipostproc.c:
21063 vaapipostproc: don't crash with dynamic framerate (0/1).
21064 Avoid reaching an assert if dynamic framerates (0/1) are used. One
21065 way to solve this problem is to just stick field_duration to zero.
21066 However, this means that, in presence of interlaced streams, the
21067 very first field will never be displayed if precise presentation
21068 timestamps are honoured.
21069 https://bugzilla.gnome.org/show_bug.cgi?id=729604
21071 2014-02-07 12:27:50 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21073 * gst/vaapi/gstvaapipostproc.c:
21074 vaapipostproc: create filter surface pool if it does not exist yet.
21075 ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
21076 recreating filter_pool. Unfortunately, this also meant it didn't create
21077 it if it did not exist.
21078 Fix it to always create the buffer pool if it does not exist.
21079 https://bugzilla.gnome.org/show_bug.cgi?id=723834
21080 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21082 2013-12-12 10:01:13 +0800 Zhao, Halley <halley.zhao@intel.com>
21084 * gst/vaapi/gstvaapipostproc.c:
21085 vaapipostproc: reset deinterlacer state when there is a discontinuity.
21086 Reset deinterlacer state, i.e. past reference frames used for advanced
21087 deinterlacing, when there is some discontinuity detected in the course
21088 of processing source buffers.
21089 This fixes support for advanced deinterlacing when a seek occurred.
21090 https://bugzilla.gnome.org/show_bug.cgi?id=720375
21091 [fixed type of pts_diff variable, fetch previous buffer PTS from the
21092 history buffer, reduce heuristic for detecting discontinuity]
21093 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21095 2014-06-18 16:16:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21097 * gst/vaapi/gstvaapipostproc.c:
21098 vaapipostproc: add support for crop regions in VPP mode.
21099 Apply video cropping regions stored in GstVideoCropMeta, or in older
21100 GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
21101 the crop meta are already propagated to the output buffers.
21102 https://bugzilla.gnome.org/show_bug.cgi?id=720730
21104 2014-03-14 17:49:40 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21106 * gst/vaapi/gstvaapipostproc.c:
21107 vaapipostproc: make deinterlace-mode behave as expected.
21108 deinterlace-mode didn't behave in the way you'd expect if you have
21109 past experience of the deinterlace element. There were two bugs:
21110 1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
21111 2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
21112 Fix these up, and add assertions and error messages to detect cases that
21114 https://bugzilla.gnome.org/show_bug.cgi?id=726361
21115 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21116 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21118 2014-01-15 16:36:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
21120 * gst/vaapi/gstvaapidecode.c:
21121 vaapidecode: do not discard video info props when the format changed.
21122 gst_video_info_set_format() does not preserve video info properties. In
21123 order to keep important information in the caps such as interlace mode,
21124 framerate, pixel aspect ratio, ... we need to manually copy back those
21125 properties after setting the new video format.
21126 https://bugzilla.gnome.org/show_bug.cgi?id=722276
21128 2014-02-23 01:43:39 +1100 Matthew Waters <ystreet00@gmail.com>
21130 * gst/vaapi/gstvaapidecode.c:
21131 vaapidecode: plug a memory leak.
21132 It can happen that there is a pool provided that does not advertise
21133 the vappivideometa. We should unref that pool before using our own.
21134 Discovered with vaapidecode ! {glimagesink,cluttersink}
21135 https://bugzilla.gnome.org/show_bug.cgi?id=724957
21136 [fixed compilation by adding the missing semi-colon]
21137 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21139 2014-06-18 13:47:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21141 * gst/vaapi/gstvaapidecode.c:
21142 vaapidecode: parse source data until a frame is obtained.
21143 Parse any pending data until a complete frame is obtained. This is a
21144 memory optimization to avoid expansion of video packets stuffed into
21145 the GstAdapter, and a fix to EOS condition to detect there is actually
21146 pending data that needs to be decoded, and subsequently output.
21147 https://bugzilla.gnome.org/show_bug.cgi?id=731831
21149 2014-06-05 15:32:29 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21151 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21152 encoder: h264: fix multiple slices support in packed headers mode.
21153 Handle packedi slice headers and packed raw data on a per-slice basis,
21154 which is necessary for multi slice encoding.
21156 2014-06-05 15:30:38 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21158 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21159 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
21160 encoder: add infrastructure for per-slice handling of packed headers.
21161 The packed slice header and packed raw data need to be paired with
21162 the submission of VAEncSliceHeaderParameterBuffer. So handle them
21163 on a per-slice basis insted of a per-picture basis.
21164 [removed useless initializer]
21165 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21167 2014-03-07 17:40:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21169 * gst/vaapi/gstvaapisink.c:
21170 vaapisink: fix initialization with "drm" display type.
21171 Force early initializatin of the GstVaapiDisplay so that to make sure
21172 that the sink element display object is presented first to upstream
21173 elements, as it will be correctly featuring the requested display type
21175 Otherwise, we might end up in situations where a VA/X11 display is
21176 initialized in vaapidecode, then we try VA/DRM display in vaapisink
21177 (as requested by the "display" property), but this would cause a failure
21178 because we cannot acquire a DRM display that was previously acquired
21179 through another backend (e.g. VA/X11).
21181 2014-03-07 17:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21183 * gst/vaapi/gstvaapipluginbase.c:
21184 plugins: fix initialization with foreign context.
21185 When a new display is settled through GstElement::set_context() (>= 1.2),
21186 or GstVideoContext::set_context() (<= 1.0), then we shall also update the
21187 associated display type.
21189 2014-04-28 17:44:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21194 * gst/vaapi/Makefile.am:
21195 * gst/vaapi/gstvaapiparse.c:
21196 * gst/vaapi/gstvaapiparse.h:
21197 * patches/Makefile.am:
21198 * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
21199 * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
21200 * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21201 * patches/videoparsers/Makefile.am:
21202 * patches/videoparsers/series.frag:
21203 plugins: add built-in video parsers as "vaapiparse" element.
21204 The built-in video parsers elements are built into a single DSO named
21205 libgstvaapi_parse.so. The various video parsers could be accessed as
21207 For now, this only includes a modified version of h264parse so that to
21208 support H.264 MVC encoded streams.
21210 2014-06-13 11:36:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21212 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21213 decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
21214 New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
21215 from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
21217 2014-06-13 11:34:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21219 * ext/codecparsers:
21220 codecparsers: update to gst-vaapi-branch commit d6325ac.
21221 7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
21222 d2f965a h264parse: set field_pic_flag when parsing a slice header
21223 24c15b8 Import h264parse
21224 a9283e5 bytereader: Use concistant derefence method
21225 a8252c6 bytereader: Use pointer instead of index access
21226 b1bebfc Import GstBitReader and GstByteReader
21227 2f58788 h264: recognize SVC NAL units
21228 4335da5 h264: fix SPS copy code for MVC
21229 cf9b6dc h264: fix quantization matrix conversion routine names
21230 b11ce2a h264: add gst_h264_video_calculate_framerate()
21231 126dc6f add C++ guards for MPEG-4 and VP8 parsers
21233 2014-06-10 18:30:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21235 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21236 decoder: h264: factor out DPB pruning for MVC.
21237 Factor out the removal process of unused inter-view only reference
21238 pictures from the DPB, prior to the possible insertion of the current
21240 Ideally, the compiler could still opt for generating two loops. But
21241 at least, the code is now clearer for maintenance.
21243 2014-06-10 17:42:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21245 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21246 decoder: h264: clean-ups.
21247 Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
21248 the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
21250 2014-06-10 16:07:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21252 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21253 decoder: h264: improve pruning of unused MVC inter-view frames.
21254 Improve process for the removal of pictures from DPB before possible
21255 insertion of the current picture (C.4.4) for H.264 MVC inter-view only
21256 reference components. In particular, handle cases where picture to be
21257 inserted is not the last one of the access unit and if it was already
21258 output and is no longer marked as used for reference, including for
21259 decoding next view components within the same access unit.
21261 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21263 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21264 decoder: h264: improve DPB bumping process for MVC.
21265 While invoking the DPB bumping process in presence of many views,
21266 it could be necessary to output previous pictures that are ready,
21267 in a whole. i.e. emitting all view components from the very first
21268 view order index zero to the very last one in its original access
21269 unit; and not starting from the view order index of the picture
21270 that caused the DPB bumping process to be invoked.
21271 As a reminder, the maximum number of frames in DPB for MultiView
21272 High profile with more than 2 views is not necessarily a multiple
21273 of the number of views.
21274 This fixes decoding of MVCNV-4.264.
21276 2014-06-06 17:56:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21278 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21279 decoder: h264: fix inter-view references array growth.
21280 Let the utility layer handle dynamic growth of the inter-view pictures
21281 array. By definition, setting a new size to the array will effectively
21282 grow the array, but would also fill in the newly created elements with
21283 empty entries (NULL), thus also increasing the reported length, which
21286 2014-06-03 17:36:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21288 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21289 decoder: h264: reduce ReferenceFrames entries to the essential set.
21290 When decoding Multiview High profile streams with a large number of
21291 views, it is not possible to make the VAPictureParameterBufferH264.
21292 ReferenceFrames[] array hold the complete DPB, with all possibly
21293 active pictures to be used for inter-view prediction in the current
21295 So reduce the scope of the ReferenceFrames[] array to only include
21296 the set of reference pictures that are going to be used for decoding
21297 the current picture. Basically, this is a union of all RefPicListX[]
21298 array, for all slices constituting the decoded picture.
21300 2014-06-04 19:10:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21302 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21303 decoder: h264: fix MVC inter-view prediction process.
21304 The inter-view reference components and inter-view only reference
21305 components that are included in the reference picture lists shall
21306 be considered as not being marked as "used for short-term reference"
21307 or "used for long-term reference". This means that reference flags
21308 should all be removed from VAPictureH264.flags.
21309 This fixes decoding of MVCNV-2.264.
21311 2014-06-04 19:03:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21313 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21314 decoder: h264: fix detection of profile changes for MVC.
21315 If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
21316 be careful to detect profiles changes and not reset the underlying
21317 VA context erroneously. In MVC situations, we could indeed get a
21318 profile_idc change for every SPS that gets activated, alternatively
21319 (base-view -> non-base view -> base-view, etc.).
21320 An improved fix would be to characterize the exact profile to use
21321 once and for all when SPS NAL units are parsed. This would also
21322 allow for fallbacks to a base-view decoding only mode.
21324 2014-06-03 14:30:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21326 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21327 encoder: h264: drop extraneous definitions.
21328 Re-use definitions from the codecparser headers instead of duplicating
21329 them here again. That covers NALU definitions and slice types.
21331 2014-04-01 11:26:04 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21333 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21334 encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
21335 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21337 2014-04-01 14:23:56 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21339 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21340 encoder: h264: don't allow CABAC with Extended profile.
21341 The H.264 specification does not support CABAC entropy coding for the
21343 https://bugzilla.gnome.org/show_bug.cgi?id=727418
21345 2014-05-07 00:12:39 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21347 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21348 encoder: h264: use packed headers mode for MVC encoding.
21349 Exclusively use VA drivers that support raw packed headers for encoding.
21350 i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
21351 provides for better compatibility accross the various VA drivers and HW
21352 generations since no particular API is needed beyond what readily exists.
21354 2014-05-07 00:09:45 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21356 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21357 encoder: h264: add support for packed slice headers.
21358 https://bugzilla.gnome.org/show_bug.cgi?id=722905
21360 2014-05-07 00:09:19 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21362 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21363 encoder: h264: store subset sps to generate the codec-data
21364 Store the SubsetSPS nal unit which we need for MVC specific
21365 codec_data generation.
21367 2014-05-07 00:08:33 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21369 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21370 encoder: h264: fix MVC pipeline hang while encoding with B-frames.
21371 Since we are encoding each view independently from each other, we
21372 need a higher number of pre-allocated surfaces to be used as the
21373 reconstructed frames. For Stereo High profile encoding, this means
21374 to effectively double the number of frames to be stored in the DPB.
21376 2014-02-17 15:51:43 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21378 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21379 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21380 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21381 * gst/vaapi/gstvaapiencode_h264.c:
21382 encoder: h264: add initial support for H.264 Stereo High profile.
21383 Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
21384 for non-base-view streams encoding, and the usual SPS, PPS and Slice
21385 NALs for base-view encoding.
21386 The H.264 Stereo High profile encoding mode will be turned on when the
21387 "num-views" parameter is set to 2. The source (raw) YUV frames will be
21388 considered as Left/Right view, alternatively.
21389 Each of the two views has its own frames reordering pool and reference
21390 frames list management system. Inter-view references are not supported
21391 yet, so the views are encoded independently from each other.
21392 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21393 [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
21394 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21396 2014-02-17 11:10:26 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21398 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21399 encoder: h264: wrap pools for refs and frames reordering.
21400 Create structures to maintain the reference frames list (RefPool) and
21401 frames reordering (ReorderPool) logic.
21402 This is a prerequisite for H.264 MVC support.
21403 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21405 2014-02-14 15:33:15 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21407 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21408 encoder: h264: add provisional support for subset SPS headers.
21409 Add provisions to write subset SPS headers to the bitstream in view
21410 to supporting the H.264 MVC specification.
21411 This assumes the libva "staging" branch is in use.
21412 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21414 2013-12-18 13:47:32 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21416 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21417 * gst-libs/gst/vaapi/gstvaapiutils.c:
21418 utils: add H.264 MVC profiles.
21419 Add "MultiView High" and "Stereo High" definitions.
21420 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21421 [require VA-API >= 0.35.2 for MVC profiles]
21422 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21424 2014-06-02 16:25:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21426 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21427 * gst-libs/gst/vaapi/gstvaapiutils.c:
21428 utils: only enable VP8 profiles for newer VA-API versions.
21429 VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
21430 involving VP8 codec on earlier versions of the API.
21432 2014-05-22 10:04:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21434 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21435 decoder: h264: compute view ids only once per slice.
21436 Optimize lookups of view ids / view order indices by caching the result
21437 of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
21438 terribly simplifies is_new_access_unit() and find_first_field() functions.
21440 2014-05-21 17:57:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21442 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21443 decoder: h264: add support for MVC interlaced streams.
21444 Fix support for MVC Stereo High profile streams with interlaced frames.
21445 Also improve the detection logic of the first field.
21447 2014-05-20 18:08:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21449 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21450 decoder: h264: add MVC profiles compatibility logic.
21451 Add safe fallbacks for MVC profiles:
21452 - all MultiView High profile streams with 2 views at most can be decoded
21453 with a Stereo High profile compliant decoder ;
21454 - all Stereo High profile streams with only progressive views can be
21455 decoded with a MultiView High profile compliant decoder ;
21456 - all drivers that support slice-level decoding could normally support
21457 MVC profiles when the DPB holds at most 16 frames.
21459 2014-05-02 14:58:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21461 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21462 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21463 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21464 decoder: h264: add initial support for MVC.
21465 https://bugzilla.gnome.org/show_bug.cgi?id=721772
21467 2014-05-01 19:16:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21469 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21470 decoder: h264: dynamically allocate the DPB.
21471 Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
21472 for supporting the MVC allocation requirements.
21474 2014-05-01 19:33:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21476 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21477 decoder: h264: fix detection of access unit boundaries.
21478 In order to have a stricter conforming implementation, we need to carefully
21479 detect access unit boundaries. Additional operations could be necessary to
21480 perform at those boundaries.
21482 2013-03-13 11:44:38 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21484 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21485 decoder: h264: detect the first VCL NAL unit of a picture for MVC.
21486 Detect the first VCL NAL unit of a picture for MVC, based on the
21487 view_id as per H.7.4.1.2.4. Note that we only need to detect new
21489 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21491 2013-10-31 19:32:55 +0800 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21493 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21494 decoder: h264: properly handle Prefix NAL units.
21495 Always cache the previous NAL unit so that we could check whether
21496 there is a Prefix NAL unit immediately preceding the current slice
21497 or IDR NAL unit. In that case, the NAL unit metadata is copied into
21498 the current NAL unit. Otherwise, some default values are inferred,
21499 tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
21500 [infer default values for slice if previous NAL was not a Prefix]
21501 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21503 2013-02-28 15:59:55 +0800 Xiaowei Li <xiaowei.a.li@intel.com>
21505 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21506 decoder: h264: add support for MVC base views.
21507 Allow decoding for base views of MVC encoded streams. For now, just skip
21508 the slice extension and prefix NAL units, and skip non-base view frames.
21509 Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
21510 [fixed memory leak, improved check for MVC NAL units]
21511 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21513 2014-05-04 14:49:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21515 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21516 decoder: h264: simplify storage of decoded picture into DPB.
21517 Factor out process by which the decoded picture with the lowest POC
21518 is found, and possibly output. Likewise, the storage and marking of
21519 a reference decoded, or non-reference decoded picture, into the DPB
21520 could also be simplified as they mostly share the same operations.
21522 2014-05-02 22:40:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21524 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21525 decoder: h264: minor clean-ups.
21526 Make init_picture_ref_lists() more consistent with other functions
21527 related to the reference marking process by supplying the current
21528 picture as argument.
21530 2014-05-20 11:36:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21532 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21533 * gst-libs/gst/vaapi/gstvaapidisplay.h:
21534 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21535 display: add utility function to query VA driver name.
21536 Add gst_vaapi_display_get_vendor_string() helper function to query
21537 the underlying VA driver name. The display object owns the resulting
21538 string, so it shall not be deallocated.
21539 That function is thread-safe. It could be used for debugging purposes,
21542 2014-03-07 14:50:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21544 * gst-libs/gst/vaapi/gstvaapidisplay.c:
21545 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
21546 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21547 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
21548 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
21549 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
21550 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
21551 display: make cache maintenance really MT-safe.
21552 Make sure to initialize one GstVaapiDisplay at a time, even in threaded
21553 environments. This makes sure the display cache is also consistent
21554 during the whole display creation process. In the former implementation,
21555 there were risks that display cache got updated in another thread.
21557 2014-05-03 15:56:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21559 * gst-libs/gst/vaapi/gstvaapicontext.c:
21560 context: allow dynamic growth of VA surfaces pool.
21561 Add support for dynamic growth of the VA surfaces pool. For decoding,
21562 this implies the recreation of the underlying VA context, as per the
21563 requirement from VA-API. Besides, only increases are supported, not
21566 2014-05-03 15:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21568 * gst-libs/gst/vaapi/gstvaapicontext.c:
21569 context: reset VA context if VA surfaces set changed.
21570 It is a requirement from VA-API specification that the VA context got
21571 from vaCreateContext(), for decoding purposes, binds the supplied set
21572 of VA surfaces. This means that if the set of VA surfaces is to be
21573 changed for the current decode session, then the VA context needs to
21574 be recreated with the new set of VA surfaces.
21576 2014-05-12 19:23:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21578 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21579 decoder: h264: fix assignment of LongTermFrameIdx.
21580 Complement fix committed as e95a42e.
21581 The H.264 AVC standard has to say: if the field is part of a reference
21582 frame or a complementary reference field pair, and the other field of
21583 the same reference frame or complementary reference field pair is also
21584 marked as "used for long-term reference", the reference frame or
21585 complementary reference field pair is also marked as "used for long-term
21586 reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
21587 This fixes decoding of MR9_BT_B in strict mode.
21588 https://bugs.freedesktop.org/show_bug.cgi?id=64624
21589 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21591 2014-05-10 06:23:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21593 * gst-libs/gst/vaapi/gstvaapicontext.c:
21594 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21595 * gst-libs/gst/vaapi/gstvaapiutils.c:
21596 * gst-libs/gst/vaapi/gstvaapiutils.h:
21597 decoder: h264: properly support grayscale formats.
21598 Request the correct chroma format for decoding grayscale streams.
21599 i.e. make lookups of the VA chroma format more generic, thus possibly
21600 supporting more formats in the future.
21601 This means that, if a VA driver doesn't support grayscale formats,
21602 it is now going to fail. We cannot safely assume that maybe grayscale
21603 was implemented on top of some YUV 4:2:0 with the chroma components
21606 2014-02-06 11:14:09 +0000 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21608 * gst-libs/gst/vaapi/gstvaapifilter.c:
21609 * gst-libs/gst/vaapi/gstvaapifilter.h:
21610 * tests/test-filter.c:
21611 build: fix source file modes.
21612 A few source files are marked executable in error - fix them
21613 https://bugzilla.gnome.org/show_bug.cgi?id=723748
21614 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21616 2014-04-29 13:22:47 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21619 * gst-libs/gst/vaapi/Makefile.am:
21620 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21621 * gst/vaapi/gstvaapidecode.c:
21622 build: fix conditional compilation of VP8 decoder.
21623 https://bugzilla.gnome.org/show_bug.cgi?id=729170
21624 [added check for VASliceParameterBufferBase fields]
21625 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21627 2014-04-27 08:55:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21629 * gst-libs/gst/codecparsers/Makefile.am:
21630 build: fix make dist for codecparsers.
21632 2014-04-28 09:42:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21634 * ext/codecparsers:
21635 codecparsers: update to gst-vaapi-branch commit eaa3f7e.
21636 h264: fix parsing of slice groups for map type = 2
21638 2014-04-26 22:35:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21640 * ext/codecparsers:
21641 codecparsers: update to gst-vaapi branch commit f44edfc.
21642 h264: fix derivation of default scaling lists
21644 2013-05-24 19:00:54 +0800 Cong Zhong <congx.zhong@intel.com>
21646 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21647 decoder: h264: fix long-term reference picture marking process.
21648 Fix reference picture marking process with memory_management_control_op
21649 set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
21650 picture, or the current picture.
21651 This fixes decoding of FRExt_MMCO4_Sony_B.
21652 https://bugs.freedesktop.org/show_bug.cgi?id=64624
21653 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21654 [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
21655 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21657 2014-04-26 20:21:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21659 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21660 decoder: h264: fix initialization of RefPicLists for multiple slices.
21661 The initialization of reference picture lists (8.2.4.2) applies to all
21662 slices. So, the RefPicList0/1 lists need to be constructed prior to
21663 each slice submission to the HW decoder.
21664 This fixes decoding of video sequences where frames are encoded with
21665 multiple slices of different types, e.g. 4 slices in this order I, P,
21666 I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
21667 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21669 2013-06-04 15:01:46 +0800 Zhong Cong <congx.zhong@intel.com>
21671 * ext/codecparsers:
21672 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21673 decoder: h264: skip SPS extension and auxiliary slice NALs.
21674 When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
21675 are present in a video, decoders shall perform the (optional) decoding
21676 process specified for these NAL units or shall ignore them (7.4.1).
21677 Implement option 2 (skip) for now, as alpha composition is not
21678 supported yet during the decoding process.
21679 This fixes decoding of the primary coded video in alphaconformanceG.
21680 https://bugzilla.gnome.org/show_bug.cgi?id=703928
21681 https://bugzilla.gnome.org/show_bug.cgi?id=728869
21682 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21683 [skip NAL units earlier, i.e. at parsing time]
21684 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21686 2013-03-07 11:32:20 +0800 Li Xiaowei <xiaowei.a.li@intel.com>
21688 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21689 decoder: h264: fix slice data bit offset with MVC NAL units.
21690 When MVC slice NAL units (coded slice extension and prefix NAL) are
21691 present, the number of NAL header bytes is 3, not 1 as usual.
21692 Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21693 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21695 2014-04-25 19:11:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21697 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21698 decoder: h264: fix activation of picture and sequence parameters.
21699 At the time the first VCL NAL unit of a primary coded picture is found,
21700 and if that NAL unit was parsed to be an SPS or PPS, then the entries
21701 in the parser may have been overriden. This means that, when the picture
21702 is to be decoded, slice_hdr->pps could point to an invalid (the next)
21704 So, one way to solve this problem is to not use the parser PPS and
21705 SPS info but rather maintain our own activation chain in the decoder.
21706 https://bugzilla.gnome.org/show_bug.cgi?id=724519
21707 https://bugzilla.gnome.org/show_bug.cgi?id=724518
21709 2014-04-25 16:24:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21711 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21712 decoder: h264: retain SEI messages until the end of frame.
21713 Retain the SEI messages that were parsed from the access unit until we
21714 have completely decoded the current frame. This is done so that we can
21715 peek at that data whenever necessary during decoding. e.g. for exposing
21716 3D stereoscopic information at a later stage.
21718 2014-04-25 14:23:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21720 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21721 decoder: h264: add support for grayscale encoded clips.
21722 Fix support for grayscale encoded video clips, and possibly others if
21723 the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
21724 the decision that a surface with the desired chroma format is not
21725 supported to the actual VA driver implementation.
21726 https://bugzilla.gnome.org/show_bug.cgi?id=728144
21728 2014-04-25 14:16:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21730 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21731 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21732 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21733 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21734 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21735 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21736 decoder: default to YUV 4:2:0 VA surfaces.
21737 Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
21738 make sure all codecs use YUV 4:2:0 output format for now, by default.
21740 2014-04-25 13:57:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21742 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21743 * gst-libs/gst/vaapi/gstvaapidecoder.h:
21744 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21745 decoder: re-indent GstVaapiDecoder base object.
21747 2014-04-25 13:47:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21749 * gst-libs/gst/vaapi/gstvaapiencoder.c:
21750 encoder: derive chroma type from video format.
21751 Cope with previous VA context change to derive the correct surface chroma
21752 type from the input video format.
21754 2014-04-25 13:45:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21756 * gst-libs/gst/vaapi/gstvaapicontext.c:
21757 * gst-libs/gst/vaapi/gstvaapicontext.h:
21758 context: add support for non-YUV 4:2:0 formats.
21759 Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
21760 for the upper layer to specify the desired chroma type. If the chroma
21761 type field is not set (or yields zero), then YUV 4:2:0 format is used
21764 2014-04-22 19:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21766 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21767 vp8: fix per-segment deblocking filter level in relative mode.
21768 Fix possible bug when a per-segment deblocking filter level value
21769 needs to be set in non-absolute mode, i.e. when the loop filter update
21770 value is negative in delta mode.
21771 Also clamp the resulting filter level value to 0..63 range.
21773 2014-04-22 17:25:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21775 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21776 vp8: fix check for disabling the loop filter (again).
21777 Improve condition to disable the loop filter. The previous heuristic
21778 used to check all filter levels, for all segments. It turns out that
21779 only the base filter_level value defined in the frame header needs
21781 This fixes 00-comprehensive-013.
21783 2014-04-21 18:02:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21785 * gst-libs/gst/codecparsers/Makefile.am:
21786 * gst/vaapi/Makefile.am:
21787 build: fix make dist with certain conditionals not met.
21788 Fix generation of source tarballs when certain conditionals are not
21789 met. e.g. always include all buildable codecparsers sources in the
21790 distribution tarball, fix plug-in element sources set to include X11
21793 2014-04-21 17:34:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21796 build: add missing files for GStreamer 0.10.
21797 Add missing GstVideoEncoder implementation files to fix build with ancient
21798 GStreamer 0.10 stack.
21799 https://bugzilla.gnome.org/show_bug.cgi?id=723964
21801 2014-04-19 10:17:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21804 build: add missing files for VP8 bitstream parser.
21805 Fix make dist for building the VP8 bitstream parser.
21807 2014-04-21 17:49:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21810 * ext/libvpx/Makefile.am:
21811 * gst-libs/gst/codecparsers/Makefile.am:
21812 vp8: allow compilation without the built-in libvpx.
21813 The built-in libvpx serves multiple purposes, among which the most
21814 important ones could be: track the most up-to-date, and optimized,
21815 range decoder; allow for future hybrid implementations (non-VLD);
21816 and have a completely independent range decoder implementation.
21818 2014-04-21 17:28:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21820 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21821 vp8: propagate PTS from demux frame.
21822 gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
21823 or parser would already have determined the PTS from a previous stage.
21825 2014-04-19 07:49:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21828 * debian.upstream/libgstvaapi.install.in:
21829 * ext/libvpx/Makefile.am:
21830 * ext/libvpx/sources.frag:
21831 * gst-libs/gst/codecparsers/Makefile.am:
21832 vp8: fix compilation with built-in libvpx.
21833 Apply correct patch from fd.o #722760 to fix several issues: update the
21834 license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
21837 2014-02-13 21:17:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21843 * ext/libvpx/Makefile.am:
21844 * ext/libvpx/gstlibvpx.c:
21845 * ext/libvpx/gstlibvpx.h:
21846 * ext/libvpx/libgstcodecparsers_vpx.vers:
21847 * ext/libvpx/sources.frag:
21848 * ext/libvpx/upstream:
21849 * gst-libs/gst/codecparsers/Makefile.am:
21850 * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
21851 vp8: use range decoder from libvpx.
21852 Add libvpx submodule that tracks the upstream version 1.3.0. This is
21853 needed to build a libgstcodecparsers_vpx.so library with all symbols
21854 placed into the GSTREAMER namespace.
21856 2014-04-04 19:17:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21858 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21859 vp8: fix check for disabling the loop filter.
21861 2013-12-27 07:18:24 +0800 Zhao, Halley <halley.zhao@intel.com>
21865 * gst-libs/gst/codecparsers/Makefile.am:
21866 * gst-libs/gst/vaapi/Makefile.am:
21867 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
21868 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
21869 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21870 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21871 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21872 * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
21873 * gst-libs/gst/vaapi/gstvaapiprofile.c:
21874 * gst-libs/gst/vaapi/gstvaapiprofile.h:
21875 * gst/vaapi/gstvaapidecode.c:
21876 Add initial VP8 decoder.
21877 https://bugzilla.gnome.org/show_bug.cgi?id=722761
21878 [complete overhaul, fixed support for resolution changes]
21879 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21881 2014-03-21 15:15:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21883 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21884 decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
21885 The gst_h264_parse_parse_sei() function now returns an array of SEI
21886 messages, instead of a single SEI message. Reason: it is allowed to
21887 have several SEI messages packed into a single SEI NAL unit, instead
21888 of multiple NAL units.
21890 2014-04-18 19:36:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21892 * ext/codecparsers:
21893 codecparsers: update to gst-vaapi-branch commit a454f86.
21894 b2eb5f6 vp8: rename dboolhuff symbols
21895 b74a881 vp8: add GStreamer native utilities
21896 2940ac6 add VP8 bitstream parser
21898 2014-04-18 19:16:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21900 * ext/codecparsers:
21901 codecparsers: update to gst-vaapi-branch commit d459bc5.
21902 d459bc5 h264: set framerate even for interlaced videos
21903 c78b82c h264: add support for Recovery Point SEI message
21904 7693bac h264: add support for Frame Packing Arrangement SEI message
21905 31fafa7 h264: add support for Stereo Video Information SEI message
21906 8b113a6 h264: parse seq_parameter_set_mvc_extension()
21907 040f9b8 h264: parse MVC syntax elements
21908 cc18ef3 h264: add nal_reader_skip_long() helper
21909 7e76a48 h264: fix slice_header() parsing for MVC
21910 caf46d8 h264: add gst_h264_parse_nalu_header() helper
21911 f75074e h264: add gst_h264_parse_sps_data() helper
21912 798c397 h264: clean-up gst_h264_parser_parse_sei_message()
21913 4e36737 h264: fix skipping of unsupported SEI messages
21914 5300766 h264: fix SEI buffering_period() parsing
21916 2014-03-21 15:09:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21918 * ext/codecparsers:
21919 * gst-libs/gst/codecparsers/Makefile.am:
21920 codecparsers: update to gst-vaapi-branch commit 8fadf40.
21921 8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
21922 644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
21923 95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
21924 766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
21925 8ec5816 h265: Fix segfault when parsing HRD parameter
21926 5b1730f h265: Fix segfault when parsing VPS
21927 983b7f7 h265: prevent to overrun chroma_weight_l0_flag
21928 7ba641d h265: Fix debug output
21929 d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
21931 2014-02-04 18:35:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21933 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21934 decoder: h264: fix robustness patch for bytestream format.
21935 Fix parser and decoder state to sync at the right locations. This is
21936 because we could reset the parser state, while the decoder state was
21937 not copied yet, e.g. when parsing several NAL units from multiple frames
21938 whereas the current frame was not decoded yet.
21939 This is a regression brought in by commit 6fe5496.
21941 2014-02-18 06:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21944 * pkgconfig/Makefile.am:
21945 * pkgconfig/gstreamer-vaapi-drm.pc.in:
21946 * pkgconfig/gstreamer-vaapi-glx.pc.in:
21947 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
21948 * pkgconfig/gstreamer-vaapi-x11.pc.in:
21949 build: fix pkgconfig file names (again).
21950 It turns out it is more convenient to have only pkgconfig files named
21951 after the installed GStreamer API version (1.0) instead of using all
21952 possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
21953 altogether anyway, so align pkgconfig file names to that.
21955 2014-02-07 09:43:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21957 * debian.upstream/libgstvaapi-dev.install.in:
21958 * gst-libs/gst/vaapi/Makefile.am:
21959 * pkgconfig/gstreamer-vaapi.pc.in:
21960 build: fix packaging for GStreamer 1.2.
21961 Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
21962 the pkgconfig version (1.0) instead of the intended API version (1.2).
21963 libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
21964 as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
21966 2014-01-24 11:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21969 Bump version for development.
21971 2014-01-24 10:55:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21973 * debian.upstream/control.in:
21974 debian: fix trailing whitespace in description.
21976 2014-01-23 23:24:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21978 * debian.upstream/control.in:
21979 * debian.upstream/copyright:
21980 debian: fix package description.
21981 Try to improve package description for the compiled plug-in elements
21982 available in there. e.g. only display vaapidownload and vaapiupload
21983 for GStreamer 0.10 builds, display vaapiencode_* elements when VA
21984 encoding is enabled, etc.
21985 Also increase the copyright notice date.
21987 2014-01-23 22:47:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21989 * gst-libs/gst/vaapi/gstvaapidecoder.c:
21990 build: fix warnings on 64-bit platforms.
21992 2014-01-23 22:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21994 * gst-libs/gst/vaapi/gstvaapicontext.c:
21995 * gst-libs/gst/vaapi/gstvaapiutils.c:
21996 build: fix for older versions of VA-API (< 0.34.0).
21997 Fix build with older versions of VA-API (< 0.34.0), or versions without
21998 good enough headers for encoding support for instance.
22000 2014-01-23 19:36:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22006 2014-01-23 19:32:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22010 VA-API up to 0.34.0 is actually supported. Mention new video encoding
22011 support. Update copyright years, list of supported Intel HD Graphics
22014 2014-01-23 19:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22019 2014-01-20 14:16:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22021 * tests/test-filter.c:
22022 tests: test-filter: fix "deinterlace" option parse.
22023 Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
22024 string was provided, i.e. if it remained set to NULL.
22026 2014-01-23 18:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22028 * gst-libs/gst/vaapi/Makefile.am:
22029 * gst-libs/gst/vaapi/gstvaapicontext.c:
22030 * gst-libs/gst/vaapi/gstvaapicontext.h:
22031 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22032 * gst-libs/gst/vaapi/gstvaapiutils_core.c:
22033 * gst-libs/gst/vaapi/gstvaapiutils_core.h:
22034 libs: factor out usages of vaGetConfigAttributes().
22035 Add gst_vaapi_get_config_attribute() helper function that takes a
22036 GstVaapiDisplay and the rest of the arguments with VA types. The aim
22037 is to have thread-safe VA helpers by default.
22039 2014-01-23 17:41:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22041 * gst-libs/gst/vaapi/gstvaapiutils.c:
22042 * gst-libs/gst/vaapi/gstvaapiutils.h:
22043 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22044 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22045 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22046 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22047 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22048 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22049 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22050 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
22051 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22052 libs: re-indent all source code related to VA utilities.
22054 2014-01-23 17:06:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22056 * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
22057 libs: add missing file (libgstvaapi_priv_check.h).
22059 2014-01-23 15:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22061 * gst-libs/gst/vaapi/gstvaapicontext.c:
22062 * gst-libs/gst/vaapi/gstvaapicontext.h:
22063 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22064 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22065 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22066 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22067 encoder: notify the encoder of the submitted packed headers.
22068 Make sure to configure the encoder with the set of packed headers we
22069 intend to generate and submit. i.e. make selection of packed headers
22070 to submit more robust.
22072 2014-01-23 15:10:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22074 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22075 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22076 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22077 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22078 encoder: fix and factor out check for supported rate-control modes.
22079 Cache the first compatible GstVaapiProfile found if the encoder is not
22080 configured yet. Next, factor out the code to check for the supported
22081 rate-control modes by moving out vaGetConfigAttributes() to a separate
22082 function, while also making sure that the attribute type is actually
22083 supported by the encoder.
22084 Also fix the default set of supported rate control modes to not the
22085 "none" variant. It's totally useless to expose it at this point.
22087 2014-01-23 14:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22089 * gst-libs/gst/vaapi/gstvaapicontext.c:
22090 * gst-libs/gst/vaapi/gstvaapicontext.h:
22091 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22092 context: move rate-control mode to encoder specific config.
22093 Move usage-specific config out of the common GstVaapiContextInfo.
22094 Create a specialized config for encoding and move rate-control mode
22097 2014-01-23 13:30:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22099 * gst-libs/gst/vaapi/gstvaapicontext.c:
22100 * gst-libs/gst/vaapi/gstvaapicontext.h:
22101 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22102 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22103 context: introduce concept of usage.
22104 Introduce GstVaapiContextUsage so that to explicitly determine the
22105 usage of a VA context. This is useful in view to simplifying the
22106 creation of VA context for VPP too.
22108 2014-01-23 11:44:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22110 * gst-libs/gst/vaapi/gstvaapicontext.c:
22111 context: fix get_attribute() value result.
22112 Unknown attributes, or attributes that are not supported for the given
22113 profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
22114 So, return failure in this case.
22116 2014-01-23 10:59:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22118 * gst-libs/gst/vaapi/Makefile.am:
22119 * gst-libs/gst/vaapi/gstvaapicontext.c:
22120 * gst-libs/gst/vaapi/gstvaapicontext.h:
22121 * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
22122 * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
22123 * gst-libs/gst/vaapi/gstvaapisurface.c:
22124 context: move overlay composition to separate files.
22125 Move GstVideoOverlayComposition handling to separate source files.
22126 This helps keeing GstVaapiContext core implementation to the bare
22127 minimal, i.e. simpy helpers to create a VA context and handle pool
22128 of associated VA surfaces.
22130 2014-01-23 09:41:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22132 * gst-libs/gst/vaapi/gstvaapicontext.c:
22133 * gst-libs/gst/vaapi/gstvaapicontext.h:
22134 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22135 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22136 context: clean-ups. Strip down APIs.
22137 Improve documentation and debug messages. Clean-up APIs, i.e. strip
22138 them down to the minimal set of interfaces. They are private, so no
22139 need expose getters for instance.
22141 2014-01-23 09:27:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22143 * gst-libs/gst/vaapi/gstvaapicontext.c:
22144 * gst-libs/gst/vaapi/gstvaapicontext.h:
22145 context: re-indent all GstVaapiContext related source code.
22147 2014-01-23 10:20:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22149 * gst-libs/gst/vaapi/Makefile.am:
22150 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
22151 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22152 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22153 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
22154 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
22155 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
22156 * gst-libs/gst/vaapi/gstvaapiutils.h:
22157 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22158 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22159 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22160 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22161 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
22162 libs: check that private headers remain private.
22163 Make sure that libgstvaapi private headers remain internally used to
22164 build libgstvaapi libraries only. All header dependencies were reviewed
22165 and checks for IN_LIBGSTVAAPI definition were added accordingly.
22166 Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
22169 2014-01-22 19:04:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22172 Bump library major version.
22173 Bump the library major version due to API/ABI changes that occurred in
22174 the imaging API. In particular, GstVaapiDisplay interfaces no longer
22175 expose any GstCaps but provide GArray based ones e.g. to determine the
22176 set of supported decode/encode profiles.
22178 2014-01-22 18:54:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22180 * gst-libs/gst/vaapi/glibcompat.h:
22181 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22182 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22183 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22184 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22185 * gst-libs/gst/vaapi/gstvaapicontext.c:
22186 * gst-libs/gst/vaapi/gstvaapicontext.h:
22187 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22188 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22189 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22190 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22191 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22192 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22193 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22194 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22195 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22196 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22197 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22198 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22199 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22200 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22201 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22202 * gst-libs/gst/vaapi/gstvaapifilter.c:
22203 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
22204 * gst-libs/gst/vaapi/gstvaapisurface.c:
22205 * gst-libs/gst/vaapi/gstvaapisurface.h:
22206 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22207 * gst-libs/gst/vaapi/gstvaapitypes.h:
22208 * gst-libs/gst/vaapi/gstvaapiutils.c:
22209 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22210 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22211 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22212 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
22213 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22214 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22215 * gst-libs/gst/vaapi/gstvaapivalue.c:
22216 * gst-libs/gst/vaapi/gstvaapivalue.h:
22217 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22218 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22219 * gst/vaapi/gstvaapidecode.c:
22220 * gst/vaapi/gstvaapiencode.c:
22221 * gst/vaapi/gstvaapiencode.h:
22222 * gst/vaapi/gstvaapiencode_h264.c:
22223 * gst/vaapi/gstvaapiencode_h264.h:
22224 * gst/vaapi/gstvaapiencode_mpeg2.c:
22225 * gst/vaapi/gstvaapiencode_mpeg2.h:
22226 * gst/vaapi/gstvaapipluginbase.c:
22227 * gst/vaapi/gstvaapipluginutil.c:
22228 * gst/vaapi/gstvaapipluginutil.h:
22229 * gst/vaapi/gstvaapipostproc.c:
22230 * gst/vaapi/gstvaapipostproc.h:
22231 * gst/vaapi/gstvaapisink.c:
22232 * gst/vaapi/gstvaapisink.h:
22233 * gst/vaapi/gstvaapivideometa_texture.c:
22234 * tests/simple-decoder.c:
22235 legal: update copyright notice dates.
22237 2014-01-22 18:49:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22239 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22240 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22241 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22242 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22243 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22244 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22245 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22246 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22247 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22248 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22249 * gst/vaapi/gstvaapiencode.c:
22250 * gst/vaapi/gstvaapiencode.h:
22251 * gst/vaapi/gstvaapiencode_h264.c:
22252 * gst/vaapi/gstvaapiencode_h264.h:
22253 * gst/vaapi/gstvaapiencode_mpeg2.c:
22254 * gst/vaapi/gstvaapiencode_mpeg2.h:
22255 legal: add per-file authorship information.
22257 2014-01-22 18:11:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22259 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22260 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22261 decoder: fix video codec frame number in standalone mode.
22262 Set a valid GstVideoCodecFrame.system_frame_number when decoding a
22263 stream in standalone mode. While we are at it, improve the debugging
22264 messages to also include that frame number.
22266 2014-01-17 16:56:53 +0800 Wind Yuan <feng.yuan@intel.com>
22268 * gst-libs/gst/vaapi/gstvaapidecoder.c:
22269 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22270 decoder: fix crash on invalid pointer for GST_DEBUG().
22271 When decoding failed, or that the frame was dropped, the associated
22272 surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
22273 message needs to check whether the proxy is actually present or not.
22274 https://bugzilla.gnome.org/show_bug.cgi?id=722403
22275 [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
22276 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22278 2014-01-22 17:07:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22280 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22281 encoder: h264: disable NAL HRD parameters for now.
22282 Don't emit NAL HRD parameters for now in the SPS headers because the
22283 SEI buffering_period() and picture_timing() messages are not handled
22284 yet. Some additional changes are necessary to get it right.
22285 https://bugzilla.gnome.org/show_bug.cgi?id=722734
22287 2014-01-21 19:04:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22289 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22290 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22291 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22292 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22293 encoder: h264: fix default CPB buffer size.
22294 Fix default CPB buffer size to something more reasonable (1500 ms)
22295 and that still fits the level limits. This is a non configurable
22296 property for now. The initial CPB removal delay is also fixed to
22298 https://bugzilla.gnome.org/show_bug.cgi?id=722087
22300 2014-01-22 14:43:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22302 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22303 encoder: h264: fix bitrate encoding for HRD conformance.
22304 Round down the calculated, or supplied, bitrate (kbps) into a multiple
22305 of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
22306 that to have less losses in precision. Likewise, don't round up because
22307 that could be a strict constraint imposed by the user.
22309 2014-01-22 11:25:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22311 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22312 encoder: h264: fix level lookup constraints wrt. bitrate.
22313 Fix the level calculation involving bitrate limits. Since we are
22314 targetting NAL HRD conformance, the check against MaxBR from the
22315 Table A-1 limits shall involve cpbBrNalFactor depending on the
22318 2014-01-21 18:01:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22320 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22321 encoder: h264: submit sequence parameter only once.
22322 Submit sequence parameter buffers only once, or when the bitstream
22323 was reconfigured in a way that requires such. Always submit packed
22324 sequence parameter buffers at I-frame period, if the VA driver needs
22326 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22328 2014-01-21 18:35:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22330 * gst-libs/gst/vaapi/gstvaapicontext.c:
22331 * gst-libs/gst/vaapi/gstvaapicontext.h:
22332 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22333 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22334 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22335 encoder: h264: only submit packed headers when required.
22336 Make sure to submit the packed headers only if the underlying VA driver
22337 requires those. Currently, only handle packed sequence and picture
22339 https://bugzilla.gnome.org/show_bug.cgi?id=722737
22341 2014-01-21 17:35:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22343 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22344 encoder: h264: fix ip_period value in sequence parameter.
22345 The VAEncSequenceParameterBuffer.ip_period value reprents the distance
22346 between the I-frame and the next P-frame. So, this also accounts for
22347 any additional B-frame in the middle of it.
22348 This fixes rate control heuristics for certain VA drivers.
22349 https://bugzilla.gnome.org/show_bug.cgi?id=722735
22351 2014-01-21 17:04:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22353 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22354 encoder: h264: fix level when bitrate is automatically computed.
22355 Fix level characterisation when the bitrate is automatically computed
22356 from the active coding tools. i.e. ensure the bitrate once the profile
22357 is completely characterized but before the level calculation process.
22359 2014-01-21 16:05:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22361 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22362 encoder: h264: clean-ups.
22363 Document and rename a few functions here and there. Drop code that
22364 caps num_bframes variable in reset_properties() since they shall
22365 have been checked beforehand, during properties initialization.
22367 2014-01-21 15:28:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22369 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22370 encoder: h264: clean-up bitwriter related utilities.
22371 Clean-up GstBitWriter related utility functions and simplify notations.
22372 While we are at it, also make bitstream writing more robust should an
22373 overflow occur. We could later optimize for writing headers capped to
22374 their maximum possible size by using the _unchecked() helper variants.
22376 2014-01-21 15:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22378 * gst-libs/gst/vaapi/Makefile.am:
22379 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22380 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22381 encoder: h264: completely remove private headers.
22382 Drop private header since it was originally used to expose internals
22383 to the plugin element. The proper interface is now the properties API,
22384 thus rendering private headers totally obsolete.
22386 2014-01-15 15:54:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22388 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22389 encoder: h264: fix PPS header packing with profile < high.
22390 Fix PPS header packing when profile is below High since 8x8 transform
22391 mode and scaling lists are High Profile features.
22393 2014-01-15 15:46:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22395 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22396 encoder: h264: always emit VUI parameters for framerate.
22397 Always emit VUI parameters for timing_info, which includes framerate
22400 2014-01-15 15:10:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22402 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22403 encoder: h264: really fix frame cropping rectangle calculation.
22404 Make frame cropping rectangle calculation future proof, i.e. exactly
22405 follow the specification (7-18) to (7-21), and subsampling definitions
22407 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22408 https://bugzilla.gnome.org/show_bug.cgi?id=722238
22410 2014-01-15 12:09:14 +0100 Holger Kaelberer <hk@getslash.de>
22412 * gst/vaapi/gstvaapisink.c:
22413 * gst/vaapi/gstvaapisink.h:
22414 vaapisink: set csc render flags from sinkpad caps.
22415 This maps GstVideoColorimetry information in vaapisink's sinkpad caps
22416 to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
22418 https://bugzilla.gnome.org/show_bug.cgi?id=722255
22419 [factored out code, added SMPTE240M, handle per-buffer flags]
22420 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22422 2012-03-28 15:05:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22424 * gst-libs/gst/vaapi/gstvaapisurface.h:
22425 * gst-libs/gst/vaapi/gstvaapiutils.c:
22426 * gst/vaapi/gstvaapipostproc.c:
22427 surface: rework render flags.
22428 Pack render flags per category and provide more flags into the color
22429 standard category. In particular, cover for SMPTE-240M.
22431 2013-12-13 04:14:41 +0800 Zhao, Halley <halley.zhao@intel.com>
22433 * gst-libs/gst/vaapi/gstvaapifilter.c:
22434 * gst/vaapi/gstvaapipostproc.c:
22435 * gst/vaapi/gstvaapipostproc.h:
22436 vaapipostproc: add support for colorbalance filters.
22437 Add support for hue, saturation, brightness and constrat adjustments.
22438 Also fix cap info local copy to match the really expected cap subtype
22440 https://bugzilla.gnome.org/show_bug.cgi?id=720376
22441 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22443 2013-12-12 08:38:12 +0800 Zhao, Halley <halley.zhao@intel.com>
22445 * gst/vaapi/gstvaapipostproc.c:
22446 vaapipostproc: fix support for "sharpen" filter.
22447 Fix copy/paste error when submitting the "sharpen" value to the
22448 GstVaapiFilter instance.
22449 https://bugzilla.gnome.org/show_bug.cgi?id=720375
22450 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22452 2013-12-20 12:05:42 +0000 Lionel Landwerlin <llandwerlin@gmail.com>
22455 * pkgconfig/gstreamer-vaapi-drm.pc.in:
22456 * pkgconfig/gstreamer-vaapi-glx.pc.in:
22457 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22458 * pkgconfig/gstreamer-vaapi-x11.pc.in:
22459 * pkgconfig/gstreamer-vaapi.pc.in:
22460 pkgconfig: plugin dir should use PKG version not API version.
22461 Fix the pluginsdir and includedir variables in the generated pkgconfig
22462 (.pc) files. The location needs to be built with the PKG version in
22463 mind instead of the API version.
22464 While we are at it, also fix the PKG version for GStreamer >= 1.3.
22465 https://bugzilla.gnome.org/show_bug.cgi?id=720820
22466 [additional fixes for includedir and pkg requirements]
22467 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22469 2014-01-15 10:05:45 +0100 Holger Kaelberer <hk@getslash.de>
22471 * gst/vaapi/gstvaapisink.c:
22472 vaapisink: fix display initialization in GstVideoOverlay implementation.
22473 When gst_vaapisink_video_overlay_set_window_handle() is called early,
22474 before the pipeline has been set to PLAYING, the display has not yet
22475 been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
22476 up-to-date. For this reason the foreign XID is not attached.
22477 Now _ensure_display() is called earlier.
22478 https://bugzilla.gnome.org/show_bug.cgi?id=722244
22479 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22481 2013-10-09 13:47:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22483 * gst/vaapi/gstvaapisink.c:
22484 vaapisink: expose the raw video formats in static caps template.
22485 Expose all raw video formats in the static caps template since the
22486 vaapisink is supporting raw data. We will get the exact set of formats
22487 supported by the driver dynamically through the _get_caps() routine.
22488 https://bugzilla.gnome.org/show_bug.cgi?id=703271
22489 https://bugzilla.gnome.org/show_bug.cgi?id=720737
22490 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22492 2013-12-11 18:08:26 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22494 * gst/vaapi/gstvaapidecode.c:
22495 vaapidecode: query downstream caps features like GLTextureUploadMeta.
22496 Fix vaapidecode to correctly report caps features downstream, when
22497 a custom pipeline is built manually.
22498 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22499 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22501 2013-12-17 15:27:10 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22503 * gst/vaapi/gstvaapidecode.c:
22504 vaapidecode: add system memory caps to template caps.
22505 Since vaapidecode provides buffer that can be mapped as regular memory,
22506 those caps should be added to the template caps. That only applies to
22508 https://bugzilla.gnome.org/show_bug.cgi?id=720608
22509 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22511 2013-12-17 10:26:03 +0800 Wind Yuan <feng.yuan@intel.com>
22513 * gst/vaapi/gstvaapidecode.c:
22514 vaapidecode: fix hang on SIGINT.
22515 vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
22516 <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
22517 locked. This fixes a deadlock on state change from PAUSED to READY.
22518 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22519 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22521 2013-12-17 04:23:42 -0500 Wind Yuan <feng.yuan@intel.com>
22523 * gst/vaapi/gstvaapiencode.c:
22524 vaapiencode: fix possible hang on SIGINT.
22525 vaapiencode might hang when the pipeline is stopped without any EOS,
22526 e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
22527 running and locked. This fixes a possible deadlock on state change
22528 from PAUSED to READY.
22529 https://bugzilla.gnome.org/show_bug.cgi?id=720584
22530 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22532 2014-01-14 16:33:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22534 * gst/vaapi/gstvaapiencode.c:
22535 vaapiencode: fix typo in error message.
22536 Fix incomplete error message in gst_vaapiencode_push_frame().
22538 2014-01-14 19:08:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22540 * gst/vaapi/gstvaapipluginutil.c:
22541 * gst/vaapi/gstvaapipluginutil.h:
22542 plugins: add helpers to create video caps with features.
22543 Add gst_vaapi_video_format_new_template_caps_with_features() helper
22544 function to add the supplied caps feature string on GStreamer >= 1.2.
22545 Add gst_vaapi_find_preferred_caps_feature() helper function to discover
22546 the "best" caps feature to use for the supplied pad. In practice, we
22547 will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
22548 and finally the system memory caps.
22549 https://bugzilla.gnome.org/show_bug.cgi?id=719372
22551 2014-01-09 11:54:11 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
22553 * gst/vaapi/gstvaapivideometa_texture.c:
22554 plugins: don't apply overlay composition in GLTextureUpload function.
22555 The GLTextureUpload function is not in charge of doing the overlay
22556 composition if any.
22557 https://bugzilla.gnome.org/show_bug.cgi?id=721859
22558 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22560 2014-01-14 13:47:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22562 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22563 encoder: re-order submission of VA objects.
22564 Change the submission order of VA objects so that to make that process
22565 more logical. i.e. submit sequence parameter first, if any; next the
22566 packed headers associated to sequece, picture or slices; and finally
22567 the actual picture and associated slices.
22569 2014-01-14 12:01:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22571 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22572 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22573 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22574 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22575 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22576 encoder: clean-up objects.
22577 Various clean-ups to improve consistency and readability: rename some
22578 variables, drop unused macro definitions, drop initialization of vars
22579 that are zero-initialized from the base class, drop un-necessary casts,
22580 allocate GPtrArrays with a destroy function.
22582 2014-01-13 13:41:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22584 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22585 encoder: h264: fix frame cropping rectangle calculation.
22586 Fix frame cropping rectangle calculation to handle horizontal resolutions
22587 that don't match a multiple of 16 pixels, but also the vertical resolution
22588 that was incorrectly computed for progressive sequences too.
22589 https://bugzilla.gnome.org/show_bug.cgi?id=722089
22591 2014-01-13 11:49:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22593 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22594 encoder: h264: improve automatic bitrate calculation.
22595 For non "Constant-QP" modes, we could provide more reasonable heuristics
22596 for the target bitrate. In general, 48 bits per macroblock with all the
22597 useful coding tools enable looks safe enough. Then, this rate is raised
22598 by +10% to +15% for each coding tool that is disabled.
22599 https://bugzilla.gnome.org/show_bug.cgi?id=719699
22601 2014-01-13 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22603 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22604 encoder: h264: support "high-compression" tuning option.
22605 Add support for "high-compression" tuning option. First, determine the
22606 largest supported profile by the hardware. Next, check any target limit
22607 set by the user. Then, enable each individual coding tool based on the
22608 resulting profile_idc value to use.
22609 https://bugzilla.gnome.org/show_bug.cgi?id=719696
22611 2014-01-12 22:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22613 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22614 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22615 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22616 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22617 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22618 * gst/vaapi/gstvaapiencode_h264.c:
22619 encoder: h264: allow target decoder constraints.
22620 Allow user to precise the largest profile to use for encoding due
22621 to target decoder constraints. For instance, if CABAC entropy coding
22622 mode is requested by "constrained-baseline" profile only is desired,
22623 then an error is returned during codec configuration.
22624 Also make sure that the suitable profile we derived actually matches
22625 what the HW can cope with.
22626 https://bugzilla.gnome.org/show_bug.cgi?id=719694
22628 2014-01-12 22:14:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22630 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22631 encoder: h264: refine size of coded buffer.
22632 Refine the heuristic to determine the maximum size of a coded buffer
22633 to account for the exact number of slices. set_context_info() is the
22634 last step during codec reconfiguration, no additional change is done
22635 afterwards, so re-using the num_slices field here is fine.
22636 https://bugzilla.gnome.org/show_bug.cgi?id=719953
22638 2013-12-13 17:36:08 +0800 Wind Yuan <feng.yuan@intel.com>
22640 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22641 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22642 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22643 encoder: h264: expose more coding tools.
22644 Add new H.264 coding tools to improve compression:
22645 - "cabac": enable CABAC entropy coding (default: FALSE);
22646 - "dct8x8": enable spatial transform 8x8 (default: FALSE).
22647 https://bugzilla.gnome.org/show_bug.cgi?id=719693
22648 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22650 2014-01-10 18:18:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22652 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22653 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22654 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22655 encoder: h264: derive profile and level from active coding tools.
22656 Automatically derive the minimum profile and level to be used for
22657 encoding, based on the activated coding tools. The encoder will
22658 be trying to generate a bitstream that has the best chances to be
22659 decoded on most platforms by default.
22660 Also change the default profile to "constrained-baseline" so that
22661 to ensure maximum compatibility when the stream is decoded.
22662 https://bugzilla.gnome.org/show_bug.cgi?id=719691
22664 2014-01-10 17:02:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22666 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22667 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22668 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22669 encoder: h264: fix hardware profile lookup.
22670 Fix lookup for a suitable HW profile, as to be used by the underlying
22671 hardware, based on heuristics that lead to characterize the SW profile,
22672 i.e. the one used by the SW level encoding logic.
22673 Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
22674 as they should respectively match the baseline and main profile.
22675 https://bugzilla.gnome.org/show_bug.cgi?id=719827
22677 2014-01-10 14:46:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22679 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22680 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22681 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22682 encoder: h264: support only the byte-stream format.
22683 The libgstvaapi core encoders are meant to support raw bitstreams only.
22684 Henceforth, we are always producing a stream in "byte-stream" format.
22685 However, the "codec-data" buffer which holds SPS and PPS headers is
22686 always available. The "lengthSizeMinusOne" field is always set to 3
22687 so that in-place "byte-stream" format to "avc" format conversion could
22690 2014-01-10 14:05:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22692 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22693 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22694 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22695 * gst/vaapi/gstvaapiencode_h264.c:
22696 encoder: h264: clean-ups.
22697 Various clean-ups to improve consistency and readability: rename some
22698 variables, drop unused macro definitions, drop initialization of vars
22699 that are zero-initialized from the base class, drop un-necessary casts.
22701 2014-01-13 17:11:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22703 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22704 encoder: mpeg2: fix hardware profile lookup.
22705 Fix lookup for a suitable HW profile, as to be used by the underlying
22706 hardware, based on heuristics that lead to characterize the SW profile,
22707 i.e. the one used by the SW level encoding logic.
22709 2014-01-13 16:56:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22711 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22712 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22713 encoder: mpeg2: derive profile and level from active coding tools.
22714 Automatically derive the minimum profile and level to be used for
22715 encoding, based on the activated coding tools. Improve lookup for
22716 the best suitable level with the new MPEG-2 helper functions.
22717 Also change the default profile to "simple" so that to ensure maximum
22718 compatibility when the stream is decoded.
22719 https://bugzilla.gnome.org/show_bug.cgi?id=719703
22721 2014-01-13 14:41:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22723 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22724 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22725 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22726 encoder: mpeg2: clean-ups.
22727 Various clean-ups to improve consistency and readability: drop unused
22728 macro definitions, drop initialization of vars that are zero-initialized
22729 from the base class, drop un-necessary casts.
22731 2014-01-13 10:48:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22733 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22734 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22735 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22736 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22737 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22738 encoder: add tuning options API.
22739 Add encoder "tune" option to override the default behaviour that is to
22740 favor maximum decoder compatibility at the expense of lower compression
22742 Expected tuning options to be developed are:
22743 - "high-compression": improve compression, target best-in-class decoders;
22744 - "low-latency": tune for low-latency decoding;
22745 - "low-power": tune for encoding in low power / resources conditions.
22747 2014-01-12 23:17:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22749 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22750 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22751 encoder: fix bitrate units to match kbps.
22752 Bitrate is expressed in kilobits per second (kbps). So, this exactly
22753 means in multiple of 1000 bits, not 1024 bits.
22754 https://bugzilla.gnome.org/show_bug.cgi?id=722086
22756 2014-01-12 21:57:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22758 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22759 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22760 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22761 encoder: clean-ups.
22762 Drop obsolete and unused macros. Add a few doc comments. Slightly
22763 improve indentation of a few leftovers.
22765 2014-01-12 18:52:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22767 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22768 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22769 * gst-libs/gst/vaapi/gstvaapivalue.c:
22770 * gst-libs/gst/vaapi/gstvaapivalue.h:
22771 encoder: filter out the supported set of rate-control properties.
22772 Only expose the exact static set of supported rate-control properties
22773 to the upper layer. For instance, if the GstVaapiEncoderXXX class does
22774 only support CQP rate control, then only add it the the exposed enum
22776 Add helper macros and functions to build a GType for an enum subset.
22778 2014-01-10 13:23:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22780 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22781 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22782 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22783 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22784 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22785 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22786 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22787 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22788 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22789 encoder: add keyframe period API.
22790 Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
22791 user control the maximum distance between two keyframes. This new
22792 property can only be set prior to gst_vaapi_encoder_set_codec_state().
22793 A value of zero for "keyframe-period" gets it re-evaluated to the
22794 actual framerate during encoder reconfiguration.
22796 2014-01-10 12:01:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22798 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22799 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22800 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22801 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22802 encoder: improve codec reconfiguration.
22803 Improve codec reconfiguration to be performed only through a single
22804 function. That is, remove the _set_context_info() hook as subclass
22805 should not alter the parent GstVaapiContextInfo itself. Besides, the
22806 VA context is constructed only at the final stages of reconfigure().
22808 2014-01-10 11:30:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22810 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22811 * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22812 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22813 encoder: fix possible memory leak of coded buffer pools.
22814 Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
22815 buffer pool only if the coded buffer size actually changed.
22817 2014-01-10 10:54:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22819 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22820 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22821 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22822 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22823 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22824 * gst/vaapi/gstvaapiencode.c:
22825 * gst/vaapi/gstvaapiencode.h:
22826 encoder: add video codec-state API.
22827 Add interface to communicate the encoder resolution and related info
22828 like framerate, interlaced vs. progressive, etc. This new interface
22829 supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
22830 but rather use GstVideoCodecState.
22831 Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
22832 point for codec config. This means that the encoder is reconfigured
22833 there to match the latest properties.
22835 2014-01-13 17:18:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22837 * gst/vaapi/gstvaapiencode.c:
22838 vaapiencode: don't crash on NULL encoder on _finish().
22839 Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
22840 if it was not created in the first place. Return "not-negotiated" error
22841 since this means we did not even reach GstVideoEncoder::set_format(),
22842 where the encoder could have been created.
22843 This fixes a crash when the vaapiencode_* plug-in elements get deallocated
22844 and that we failed to negotiate either pad.
22845 https://bugzilla.gnome.org/show_bug.cgi?id=719704
22847 2014-01-09 18:20:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22849 * gst/vaapi/gstvaapiencode.c:
22850 * gst/vaapi/gstvaapiencode.h:
22851 * gst/vaapi/gstvaapiencode_h264.c:
22852 vaapiencode: use more GstVaapiPluginBase facilities.
22853 Avoid duplication of pad references or query functions since they are
22854 provided through the GstVaapiPluginBase object.
22856 2014-01-09 18:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22858 * gst/vaapi/gstvaapiencode.c:
22859 * gst/vaapi/gstvaapiencode.h:
22860 * gst/vaapi/gstvaapiencode_h264.c:
22861 * gst/vaapi/gstvaapiencode_h264.h:
22862 * gst/vaapi/gstvaapiencode_mpeg2.c:
22863 vaapiencode: fix negotiation process of output caps.
22864 The specified caps in gst_video_encoder_set_output_state() function
22865 arguments should not contain any resolution, pixel-aspect-ratio,
22866 framerate, codec-data et al. Those rather should be set through the
22867 returned GstVideoCodecState. This means that output caps creation
22868 could be delayed until before gst_video_encoder_finish_frame() is
22870 This greatly simplifies the GstVideoEncoder::set_format() callback
22873 2014-01-08 18:56:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22875 * gst/vaapi/gstvaapiencode.c:
22876 vaapiencode: make GstVaapiEncode an abstract type.
22877 Make base GstVaapiEncode class an abstract type so that we cannot
22878 create an instance from it without going through any of the codec
22879 specific derived class.
22881 2014-01-09 10:09:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22883 * gst/vaapi/gstvaapiencode.c:
22884 * gst/vaapi/gstvaapiencode.h:
22885 * gst/vaapi/gstvaapiencode_h264.c:
22886 * gst/vaapi/gstvaapiencode_mpeg2.c:
22887 vaapiencode: rename a few member functions.
22888 Rename a few member functions to make them more consistent:
22889 - alloc_encoder(): now reduced to allocate the encoder object only;
22890 - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
22892 2014-01-08 18:36:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22894 * gst/vaapi/gstvaapiencode.c:
22895 * gst/vaapi/gstvaapiencode.h:
22896 * gst/vaapi/gstvaapiencode_h264.c:
22897 * gst/vaapi/gstvaapiencode_h264.h:
22898 * gst/vaapi/gstvaapiencode_mpeg2.c:
22899 vaapiencode: update for new properties API.
22900 Update MPEG-2 and H.264 encode elements to cope with the new core
22901 libgstvaapi properties API. i.e. all configurable properties are now
22902 directly handled at the GstVaapiEncoder level.
22903 Besides, this also makes sure to not use or modify the GstVaapiEncoder
22904 private definitions directly. Private data need to remain private.
22905 https://bugzilla.gnome.org/show_bug.cgi?id=719529
22907 2014-01-06 17:46:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22909 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22910 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22911 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22912 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22913 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22914 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22915 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22916 encoder: add properties API.
22917 Add interface to communicate configurable properties to the encoder.
22918 This covers both the common ones (rate-control, bitrate), and the
22919 codec specific properties.
22920 https://bugzilla.gnome.org/show_bug.cgi?id=719529
22922 2014-01-06 18:01:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22924 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22925 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22926 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22927 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22928 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22929 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22930 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22931 * gst/vaapi/gstvaapiencode.c:
22932 * gst/vaapi/gstvaapiencode_h264.c:
22933 * gst/vaapi/gstvaapiencode_mpeg2.c:
22934 encoder: add bitrate API.
22935 Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
22936 the bitrate for encoding. Currently, changing this parameter is only
22937 valid before the first frame is encoded. Should the value be modified
22938 afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
22940 https://bugzilla.gnome.org/show_bug.cgi?id=719529
22942 2014-01-06 15:10:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22944 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22945 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22946 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22947 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22948 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22949 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22950 * gst-libs/gst/vaapi/gstvaapitypes.h:
22951 * gst/vaapi/gstvaapiencode.c:
22952 * gst/vaapi/gstvaapiencode.h:
22953 * gst/vaapi/gstvaapiencode_h264.c:
22954 * gst/vaapi/gstvaapiencode_mpeg2.c:
22955 encoder: add rate control API.
22956 Add gst_vaapi_encoder_set_rate_control() interface to request a new
22957 rate control mode for encoding. Changing the rate control mode is
22958 only valid prior to encoding the very first frame. Afterwards, an
22959 error ("operation-failed") is issued.
22960 https://bugzilla.gnome.org/show_bug.cgi?id=719529
22962 2014-01-03 16:57:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22964 * gst/vaapi/gstvaapiencode.c:
22965 * gst/vaapi/gstvaapiencode_h264.c:
22966 * gst/vaapi/gstvaapiencode_mpeg2.c:
22967 vaapiencode: fix indentation.
22969 2014-01-03 16:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22971 * gst-libs/gst/vaapi/gstvaapiencoder.c:
22972 * gst-libs/gst/vaapi/gstvaapiencoder.h:
22973 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22974 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22975 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22976 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22977 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22978 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22979 * gst/vaapi/gstvaapiencode.h:
22980 encoder: fix indentation.
22982 2014-01-13 16:20:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22984 * gst-libs/gst/vaapi/Makefile.am:
22985 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
22986 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22987 * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22988 utils: add new MPEG-2 helper functions.
22989 Add various helper functions to convert profile, level, chroma formats
22990 from gstreamer-vaapi world and the MPEG-2 specification world.
22992 2014-01-10 19:49:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22994 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22995 utils: h264: don't use fatal asserts.
22996 Replace g_assert() with a g_debug() so that to not make the program
22997 abort when an unsupported value is supplied.
22999 2014-01-10 19:37:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23001 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23002 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23003 utils: h264: add helpers for profile and level string mappings.
23004 Add profile and level helper functions to convert to/from strings.
23006 2014-01-10 18:27:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23008 * gst-libs/gst/vaapi/Makefile.am:
23009 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23010 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23011 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23012 * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
23013 utils: h264: expose levels in public header.
23014 Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
23015 H.264 levels in there. The additional helper functions are meant
23016 to be private for now.
23018 2014-01-09 09:27:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23020 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23021 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23022 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23023 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23024 codec: add helper macros to maintain object refcount.
23025 Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
23026 to avoid explicit casts to GstVaapiMiniObject in all caller sites.
23028 2014-01-09 09:30:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23030 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23031 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23032 codec: re-indent decoder objects.
23034 2014-01-09 09:10:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23036 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23037 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23038 codec: re-indent base codec objects.
23040 2014-01-03 12:49:05 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23042 * gst/vaapi/gstvaapipluginbase.c:
23043 plugins: do not free debug category in finalize method.
23044 Fixes a crash when multiple vaapidecode elements are finalized since
23045 the debug category is created once in the class init method.
23046 This is a regression from git commit 7e58d60.
23047 https://bugzilla.gnome.org/show_bug.cgi?id=721390
23048 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23050 2014-01-02 11:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23052 * gst-libs/gst/vaapi/glibcompat.h:
23053 * tests/simple-decoder.c:
23054 tests: simple-decoder: don't use deprecated g_thread_create().
23055 Use g_thread_try_new() instead of the deprecated g_thread_create()
23056 function. Provide compatibility glue for any GLib version < 2.31.2.
23058 2014-01-02 11:17:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23060 * gst-libs/gst/vaapi/gstvaapidecoder.c:
23061 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
23062 * gst-libs/gst/vaapi/gstvaapisurface.c:
23063 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
23064 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
23065 * gst/vaapi/gstvaapiencode.c:
23066 Fix printf()-like formats.
23067 Fix formts for various GST_DEBUG et al. invocations. More precisely,
23068 make size_t arguments use the %zu format specifier accordingly; force
23069 XID formats to be a 32-bit unsigned integer; and fix the format used
23070 for gst_vaapi_create_surface_with_format() error cases since we have
23071 been using strings nowadays.
23073 2013-12-21 07:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23075 * gst-libs/gst/vaapi/video-format.c:
23076 * gst-libs/gst/vaapi/video-format.h:
23077 utils: format: drop unused helper functions.
23078 The following helper functions are no longer used, thus are removed:
23079 - gst_vaapi_video_format_from_structure()
23080 - gst_vaapi_video_format_from_caps()
23081 - gst_vaapi_video_format_to_caps()
23083 2013-12-21 07:29:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23085 * gst-libs/gst/vaapi/video-format.c:
23086 * gst-libs/gst/vaapi/video-format.h:
23087 utils: re-indent GstVideoFormat related helpers.
23089 2013-12-21 08:27:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23091 * gst/vaapi/gstvaapidownload.c:
23092 download: use GstVideoInfo facilities to build output caps.
23093 Use standard GstVideoInfo related functions to build the output caps,
23094 thus directly preserving additional fields as needed, instead of
23095 manually copying them over through gst_vaapi_append_surface_caps().
23096 Also ensure that the input caps are fixated first.
23098 2013-12-21 10:41:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23100 * gst/vaapi/gstvaapidownload.c:
23101 * gst/vaapi/gstvaapipluginutil.c:
23102 * gst/vaapi/gstvaapipluginutil.h:
23103 * gst/vaapi/gstvaapiuploader.c:
23104 plugins: factor out construction of template caps.
23105 Add new helper functions to build video template caps.
23106 - gst_vaapi_video_format_new_template_caps():
23107 create GstCaps with size, frame rate and PAR to full range
23108 - gst_vaapi_video_format_new_template_caps_from_list():
23109 try to create a "simplified" list from the supplied formats
23111 2013-12-21 06:41:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23113 * gst/vaapi/gstvaapipluginutil.c:
23114 * gst/vaapi/gstvaapipluginutil.h:
23115 * gst/vaapi/gstvaapipostproc.c:
23116 plugins: factor out construction of GValue from GstVideoFormat.
23117 Add new helper functions to build GValues from GstVideoFormat:
23118 - gst_vaapi_value_set_format():
23119 build a GValue from the supplied video format
23120 - gst_vaapi_value_set_format_list():
23121 build a GValue list from the supplied array of video formats
23123 2013-12-21 06:22:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23125 * gst/vaapi/gstvaapipluginutil.c:
23126 * gst/vaapi/gstvaapipluginutil.h:
23127 * gst/vaapi/gstvaapivideocontext.c:
23128 * gst/vaapi/gstvaapivideocontext.h:
23129 plugins: re-indent common and video context creation utils.
23131 2013-12-20 15:31:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23133 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23134 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23135 * gst/vaapi/gstvaapidecode.c:
23136 * tests/test-display.c:
23137 display: don't use GstCaps for decode or encode profiles list.
23138 Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
23139 more convenient APIs that return an array of GstVaapiProfile instead
23140 of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
23142 2013-12-20 15:15:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23144 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23145 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23146 * gst/vaapi/gstvaapidownload.c:
23147 * gst/vaapi/gstvaapiuploader.c:
23148 * tests/test-display.c:
23149 display: don't use GstCaps for image or subpicture formats list.
23150 Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
23151 returned GstCaps, with more convenient APIs that return an array of
23152 GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
23154 2013-12-20 14:01:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23156 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23157 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23158 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23159 display: allocate queried resources on-demand.
23160 Allocate the set of decoders or encoders on-demand, when they are
23161 queried. Likewise for VA display attributes, image and subpicture
23164 2013-12-20 13:27:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23166 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23167 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23168 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
23169 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
23170 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
23171 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
23172 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
23173 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
23174 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23175 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23176 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
23177 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23178 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23179 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23180 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
23181 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
23182 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
23183 display: re-indent all GstVaapiDisplay related source code.
23185 2013-12-20 16:04:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23187 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23188 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23189 utils: add helper functions to get codec or profile name.
23191 2013-12-20 17:08:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23193 * gst/vaapi/gstvaapipostproc.c:
23194 * gst/vaapi/gstvaapipostproc.h:
23195 * gst/vaapi/gstvaapiuploader.c:
23196 plugins: fix permissions for certain files.
23197 Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
23200 2013-12-12 17:01:29 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23202 * gst/vaapi/gstvaapivideometa_texture.c:
23203 plugins: implement GLTextureUploadMeta user data copy.
23204 Makes the copies of a buffer reference their own GLTextureUploadMeta
23205 user data and prevent the original buffer accessing already freed
23206 memory if its copies has been released and freed.
23207 https://bugzilla.gnome.org/show_bug.cgi?id=720336
23208 [Propagate the original meta texture to the copy too]
23209 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23211 2013-12-17 18:52:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23213 * gst/vaapi/gstvaapiencode.c:
23214 * gst/vaapi/gstvaapiencode.h:
23215 * gst/vaapi/gstvaapipluginbase.c:
23216 * gst/vaapi/gstvaapipluginbase.h:
23217 * gst/vaapi/gstvaapipostproc.c:
23218 * gst/vaapi/gstvaapipostproc.h:
23219 * gst/vaapi/gstvaapisink.c:
23220 * gst/vaapi/gstvaapisink.h:
23221 plugins: factor out support for raw YUV buffers on sink pads.
23222 Factor out propose_allocation() hooks, creation of video buffer pool
23223 for the sink pad, conversion from raw YUV buffers to VA surface backed
23224 buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
23225 with the new GstVaapiPluginBase abilities.
23227 2013-12-17 18:46:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23229 * gst-libs/gst/vaapi/gstcompat.h:
23230 * gst/vaapi/gstvaapidecode.c:
23231 * gst/vaapi/gstvaapidecode.h:
23232 * gst/vaapi/gstvaapidownload.c:
23233 * gst/vaapi/gstvaapipluginbase.c:
23234 * gst/vaapi/gstvaapipluginbase.h:
23235 * gst/vaapi/gstvaapipostproc.c:
23236 * gst/vaapi/gstvaapipostproc.h:
23237 * gst/vaapi/gstvaapisink.c:
23238 * gst/vaapi/gstvaapiupload.c:
23239 plugins: factor out pad caps.
23241 2013-12-13 16:03:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23243 * gst/vaapi/gstvaapidecode.c:
23244 * gst/vaapi/gstvaapidownload.c:
23245 * gst/vaapi/gstvaapiencode.c:
23246 * gst/vaapi/gstvaapipluginbase.c:
23247 * gst/vaapi/gstvaapipostproc.c:
23248 * gst/vaapi/gstvaapisink.c:
23249 * gst/vaapi/gstvaapiupload.c:
23250 plugins: factor out video context sharing code.
23252 2013-12-13 13:24:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23254 * gst/vaapi/gstvaapidecode.c:
23255 * gst/vaapi/gstvaapidownload.c:
23256 * gst/vaapi/gstvaapiencode.c:
23257 * gst/vaapi/gstvaapipluginbase.c:
23258 * gst/vaapi/gstvaapipluginbase.h:
23259 * gst/vaapi/gstvaapipostproc.c:
23260 * gst/vaapi/gstvaapisink.c:
23261 * gst/vaapi/gstvaapiupload.c:
23262 plugins: factor out GstImplementsInterface.
23264 2013-12-13 12:00:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23266 * gst-libs/gst/vaapi/gstvaapidisplay.c:
23267 * gst-libs/gst/vaapi/gstvaapidisplay.h:
23268 * gst/vaapi/gstvaapipluginbase.c:
23269 * gst/vaapi/gstvaapipluginutil.c:
23270 plugins: check type of display obtained from neighbours.
23271 Fix display creation code to check that any display obtained from a
23272 neighbour actually has the type we expect. Note: if display type is
23273 set to "any", we can then accept any VA display type.
23275 2013-12-13 11:52:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23277 * gst/vaapi/gstvaapidecode.c:
23278 * gst/vaapi/gstvaapidownload.c:
23279 * gst/vaapi/gstvaapiencode.c:
23280 * gst/vaapi/gstvaapipluginbase.c:
23281 * gst/vaapi/gstvaapipluginbase.h:
23282 * gst/vaapi/gstvaapipluginutil.c:
23283 * gst/vaapi/gstvaapipluginutil.h:
23284 * gst/vaapi/gstvaapipostproc.c:
23285 * gst/vaapi/gstvaapisink.c:
23286 * gst/vaapi/gstvaapisink.h:
23287 * gst/vaapi/gstvaapiupload.c:
23288 plugins: factor out display creation process.
23289 Move common VA display creation code to GstVaapiPluginBase, with the
23290 default display type remaining "any". Also add a "display-changed"
23291 hook so that subclasses could perform additional tasks when/if the
23292 VA display changed, due to a new display type request for instance.
23293 All plug-ins are updated to cope with the new internal APIs.
23295 2013-12-13 10:24:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23297 * gst/vaapi/Makefile.am:
23298 * gst/vaapi/gstvaapidecode.c:
23299 * gst/vaapi/gstvaapidecode.h:
23300 * gst/vaapi/gstvaapidownload.c:
23301 * gst/vaapi/gstvaapidownload.h:
23302 * gst/vaapi/gstvaapiencode.c:
23303 * gst/vaapi/gstvaapiencode.h:
23304 * gst/vaapi/gstvaapipluginbase.c:
23305 * gst/vaapi/gstvaapipluginbase.h:
23306 * gst/vaapi/gstvaapipostproc.c:
23307 * gst/vaapi/gstvaapipostproc.h:
23308 * gst/vaapi/gstvaapisink.c:
23309 * gst/vaapi/gstvaapisink.h:
23310 * gst/vaapi/gstvaapiupload.c:
23311 * gst/vaapi/gstvaapiupload.h:
23312 plugins: add new base object, store display in there.
23313 Introduce a new GstVaapiPluginBase object that will contain all common
23314 data structures and perform all common tasks. First step is to have a
23315 single place to hold VA displays.
23316 While we are at it, also make sure to store and subsequently release
23317 the appropriate debug category for the subclasses.
23319 2013-12-11 14:04:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23321 * gst-libs/gst/vaapi/gstvaapiobject.h:
23322 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
23323 * gst/vaapi/gstvaapivideometa_texture.c:
23324 * gst/vaapi/gstvaapivideometa_texture.h:
23325 plugins: fix GLTextureUploadMeta to work with different texture ids.
23326 The GLTextureUploadMeta implementation assumed that for each upload()
23327 sequence, the supplied texture id is always the same as the one that
23328 was previously cached into the underlying GstVaapiTexture. Cope with
23329 any texture id change the expense to recreate the underlying VA/GLX
23331 https://bugzilla.gnome.org/show_bug.cgi?id=719643
23333 2013-12-11 13:25:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23335 * gst/vaapi/gstvaapidecode.c:
23336 * gst/vaapi/gstvaapivideobufferpool.c:
23337 * gst/vaapi/gstvaapivideometa_texture.c:
23338 plugins: allow builds without GLX enabled for GStreamer 1.2.
23339 Don't try to build GLTextureUploadMeta related code if GLX is not
23340 enabled during GStreamer >= 1.2 builds.
23342 2013-11-20 17:20:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23344 * gst/vaapi/gstvaapidecode.c:
23345 * gst/vaapi/gstvaapivideobufferpool.c:
23346 * gst/vaapi/gstvaapivideobufferpool.h:
23347 * gst/vaapi/gstvaapivideometa_texture.c:
23348 * gst/vaapi/gstvaapivideometa_texture.h:
23349 plugins: request GLTextureUpload meta on buffers in the buffer pool.
23350 Requesting the GLTextureUpload meta on buffers in the bufferpool
23351 prevents such metas from being de-allocated when buffers are released
23353 This is particulary useful in terms of performance when using the
23354 GLTextureUploadMeta API since the GstVaapiTexture associated with
23355 the target texture is stored in the meta.
23356 https://bugzilla.gnome.org/show_bug.cgi?id=712558
23357 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23359 2013-12-11 10:51:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23361 * gst/vaapi/gstvaapivideometa_texture.c:
23362 plugins: robustify GstVideoGLTextureUploadMeta implementation.
23363 Make GstVideoGLTextureUploadMeta::upload() implementation more robust
23364 when the GstVaapiTexture associated with the supplied texture id could
23367 2013-12-10 16:14:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23369 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23370 h264: improve robustness when packets are missing.
23371 Improve robustness when some expected packets where not received yet
23372 or that were not correctly decoded. For example, don't try to decode
23373 a picture if there was no valid frame headers parsed so far.
23374 https://bugs.freedesktop.org/show_bug.cgi?id=57902
23376 2013-12-10 14:20:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23378 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23379 decoder: h264: fix decoding of BA3_SVA_C.264.
23380 Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
23381 extended profile specifications. However, the SPS header has the
23382 constraint_set1_flag syntax element set to 1. This means that, if
23383 a Main profile compliant decoder is available, then it should be
23384 able to decode this stream.
23385 This changes makes it possible to fall-back from Extended profile
23386 to Main profile if constraint_set1_flag is set to 1.
23387 https://bugzilla.gnome.org/show_bug.cgi?id=720190
23389 2013-12-10 11:13:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23391 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23392 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23393 utils: h264: add more profiles.
23394 Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
23395 profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
23396 multiview profiles (H.10.1.1, H.10.1.2).
23397 Document "Constrained Baseline" and "High 10" profiles.
23399 2013-12-10 15:21:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23401 * ext/codecparsers:
23402 codecparsers: update to gst-vaapi-branch commit e7d0e18.
23403 e7d0e18 h264: complete set of NAL unit types
23405 2013-12-06 15:08:26 +0800 Wind Yuan <feng.yuan@intel.com>
23407 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23408 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23409 decoder: h264: add support for constrained baseline profile.
23410 Recognize streams marked as conforming to the "Constrained Baseline
23411 Profile". If VA driver supports that as is, fine. Otherwise, fallback
23412 to baseline, main or high profile.
23413 Constrained Baseline Profile conveys coding tools that are common
23414 to baseline profile and main profile.
23415 https://bugzilla.gnome.org/show_bug.cgi?id=719947
23416 [Added fallbacks to main and high profiles]
23417 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23419 2013-12-09 12:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23421 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23422 decoder: h264: fix decoding of scaling lists.
23423 The GStreamer codecparser layer now parses the scaling lists in zigzag
23424 scan order, as expected, so that to match the original bitstream layout
23425 and specification. However, further convert the scaling lists into
23426 raster scan order to fit the existing practice in most VA drivers.
23427 https://bugzilla.gnome.org/show_bug.cgi?id=706406
23429 2013-12-09 12:07:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23431 * ext/codecparsers:
23432 codecparsers: update to gst-vaapi-branch commit 177c73b.
23433 a7e3255 add H.265 (HEVC) bitstream parser
23434 177c73b h264: fix picture level scaling lists derivation (rule B)
23435 14733f1 h264: fix parsing of VCL HRD parameters
23436 59a0b47 h264: store quantization matrices in zig-zag order
23437 ffb6e26 h264: add helpers to convert quantization matrices
23438 c78a504 mpeg2: also initialize debug category in parse_sequence_header()
23439 719d1b0 mpeg2: turn internal consistency check into a g_assert()
23440 5241d8e all: remove some unused functions
23441 18eb312 all: fix for GST_DISABLE_GST_DEBUG
23442 963c04a all: make warnings more meaningful
23444 2013-12-06 19:05:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23446 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23447 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23448 * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23449 utils: add helpers for H.264 levels.
23450 - gst_vaapi_utils_h264_get_level():
23451 Returns GstVaapiLevelH264 from H.264 level_idc value
23452 - gst_vaapi_utils_h264_get_level_idc():
23453 Returns H.264 level_idc value from GstVaapiLevelH264
23454 - gst_vaapi_utils_h264_get_level_limits():
23455 Returns level limits as specified in Table A-1 of the H.264 standard
23456 - gst_vaapi_utils_h264_get_level_limits_table():
23457 Returns the Table A-1 specification
23459 2013-12-06 17:34:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23461 * gst-libs/gst/vaapi/gstvaapiprofile.c:
23462 * gst-libs/gst/vaapi/gstvaapiprofile.h:
23463 * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23464 utils: add new H.264 profiles.
23465 Add "Constrained Baseline Profile" and "High 10 Profile" definitions
23466 and helper functiions.
23468 2013-12-06 17:21:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23470 utils: add new H.264 helper functions.
23472 - gst_vaapi_utils_h264_get_profile():
23473 Returns GstVaapiProfile from H.264 profile_idc value
23474 - gst_vaapi_utils_h264_get_profile_idc():
23475 Returns H.264 profile_idc value from GstVaapiProfile
23477 - gst_vaapi_utils_h264_get_chroma_type():
23478 Returns GstVaapiChromaType from H.264 chroma_format_idc value
23479 - gst_vaapi_utils_h264_get_chroma_format_idc():
23480 Returns H.264 chroma_format_idc value from GstVaapiChromaType
23482 2013-12-03 11:05:17 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23484 * gst-libs/gst/base/Makefile.am:
23485 * gst-libs/gst/vaapi/Makefile.am:
23486 Fix missing files in distribution tarball.
23487 https://bugzilla.gnome.org/show_bug.cgi?id=719776
23488 [Additional fixes and clean-ups]
23489 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23491 2013-12-05 18:13:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23493 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23494 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23495 encoder: fix computation of max coded buffer size (again).
23496 The previous fix was only valid to express the maximum size of the
23497 macroblock layer, i.e. without any headers. Now, also account for
23498 the slice headers and top picture header, but also any other header
23499 we might stuff into the VA coded buffer, e.g. sequence headers.
23501 2013-12-04 19:10:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23503 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23504 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23505 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23506 encoder: fix computation of max coded buffer size.
23507 Fix coded buffer size for each codec. A generic issue was that the
23508 number of macroblocks was incorrectly computed. The second issue was
23509 specific to MPEG-2 were the max number of bits per macroblock, and
23510 as defined by the standard, was incorrectly mapped to the (lower)
23511 H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
23513 2013-12-04 18:48:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23515 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23516 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23517 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23518 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23519 encoder: simplify VA context initialization process.
23520 Change get_context_info() into a set_context_info() function that
23521 initializes common defaults into the base class, thus allowing the
23522 subclasses to specialize the context info further on.
23523 The set_context_info() hook is also the location where additional
23524 context specific data could be initialized. At this point, we are
23525 guaranteed to have valid video resolution size and framerate. i.e.
23526 gst_vaapi_encoder_set_format() was called beforehand.
23528 2013-11-26 14:38:23 +0800 Wind Yuan <feng.yuan@intel.com>
23530 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23531 encoder: fix mpeg2 compilation error.
23532 https://bugzilla.gnome.org/show_bug.cgi?id=719746
23533 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23535 2013-12-04 17:55:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23537 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23538 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23539 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23540 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23541 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23542 * gst/vaapi/gstvaapiencode.c:
23543 encoder: clean-ups and document public APIs.
23544 Clean public APIs up so that to better align with the decoder APIs.
23545 Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
23546 return the VA coded buffer proxy. Also provide useful documentation
23547 for the public APIs.
23549 2013-12-04 17:05:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23551 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23552 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23553 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23554 encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
23555 Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
23556 allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
23557 through GstVaapiCodedBufferProxy user-data facility.
23558 Besides, use a GAsyncQueue to maintain a thread-safe queue object of
23560 Partial fix for the following report:
23561 https://bugzilla.gnome.org/show_bug.cgi?id=719530
23563 2013-12-03 17:04:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23565 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23566 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23567 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23568 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23569 * gst/vaapi/gstvaapiencode.c:
23570 encoder: refactor status codes.
23571 Drop obsolete or unused status codes. Align some status codes with the
23572 decoder counterparts.
23574 2013-12-04 11:54:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23576 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23577 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23578 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23579 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23580 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23581 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23582 encoder: fix subclassing process.
23583 Fix the GstVaapiEncoderClass parent class type. Make sure to validate
23584 subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
23585 thus avoiding useless run-time checks. Also simplify the subclass
23586 initialization process to be less error prone.
23588 2013-12-03 16:11:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23590 encoder: rework GstVaapiCodedBuffer and related proxy.
23591 Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
23592 public and private interfaces. Besides, the map/unmap APIs should not
23593 be exposed as is but appropriate accessors should be provided instead.
23594 * GstVaapiCodedBuffer: VA coded buffer abstraction
23595 - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
23596 - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
23597 * GstVaapiCodedBufferPool: pool of VA coded buffer objects
23598 - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
23599 the specified max size, and bound to the supplied encoder
23600 * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
23601 - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
23602 - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
23603 - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
23604 Rationale: more optimized transfer functions might be provided in the
23605 future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
23606 https://bugzilla.gnome.org/show_bug.cgi?id=719775
23608 2013-11-29 14:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23610 * gst/vaapi/gstvaapidecode.c:
23611 * gst/vaapi/gstvaapiencode.c:
23612 * gst/vaapi/gstvaapipostproc.c:
23613 * gst/vaapi/gstvaapisink.c:
23614 plugins: fix reference leaks of VA display objects.
23615 Fix GstElement::set_context() implementation for all plug-in elements
23616 to avoid leaking an extra reference to the VA display, thus preventing
23617 correct cleanup of VA resources in GStreamer 1.2 builds.
23619 2013-11-29 13:56:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23621 * gst/vaapi/gstvaapipluginutil.c:
23622 * gst/vaapi/gstvaapivideocontext.c:
23623 plugins: simplify gst_vaapi_ensure_display().
23624 Return earlier if the creation of a VA display failed. Likewise, simplify
23625 gst_vaapi_video_context_propagate() now that we are guaranteed to have a
23628 2013-11-28 19:08:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23630 * gst/vaapi/gstvaapivideomemory.c:
23631 plugins: fix memory leaks through GstVideoMeta maps.
23632 When GstVideoMeta maps were used, the supporting functions incorrectly
23633 used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
23634 always increasing the associated GstMemory reference count and giving
23635 zero chance to actually release that, and subsequently the VA display.
23637 2013-11-28 14:15:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23639 * gst-libs/gst/vaapi/gstvaapifilter.c:
23640 * gst/vaapi/gstvaapiencode_h264.c:
23641 * gst/vaapi/gstvaapiencode_mpeg2.c:
23642 * gst/vaapi/gstvaapipostproc.c:
23643 * gst/vaapi/gstvaapisink.c:
23644 * gst/vaapi/gstvaapiuploader.c:
23645 plugins: use G_PARAM_STATIC_STRINGS.
23646 This avoids a few string copies during initialization.
23648 2013-11-28 17:28:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23650 * gst/vaapi/gstvaapivideometa.c:
23651 plugins: simplify VA video meta to only reference surface proxies.
23652 Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
23653 now allocated from a surface pool. This also means that the local
23654 reference to the VA surface is also gone, as it could be extracted
23655 from the associated surface proxy.
23657 2013-11-28 16:51:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23659 * gst/vaapi/gstvaapivideobuffer.c:
23660 * gst/vaapi/gstvaapivideobuffer.h:
23661 * gst/vaapi/gstvaapivideometa.c:
23662 * gst/vaapi/gstvaapivideometa.h:
23663 plugins: drop obsolete functions.
23664 Drop the following functions that are not longer used:
23665 - gst_vaapi_video_buffer_new_with_surface()
23666 - gst_vaapi_video_meta_new_with_surface()
23667 - gst_vaapi_video_meta_set_surface()
23668 - gst_vaapi_video_meta_set_surface_from_pool()
23670 2013-11-28 16:37:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23672 * gst/vaapi/gstvaapivideometa.c:
23673 plugins: allow VA video meta to be allocated from surface proxy pools.
23674 Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
23675 from surface pools instead of plain VA surfaces. This is to simplify
23676 allocations now that surface proxies are created from a surface pool.
23678 2013-11-28 17:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23680 * docs/reference/libs/libs-sections.txt:
23681 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
23682 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
23683 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
23684 surfaceproxy: add copy function.
23685 Add gst_vaapi_surface_proxy_copy() function that creates a new surface
23686 proxy with the same information from the parent proxy, except that the
23687 user-defined destroy notify function is not copied over.
23688 The underlying VA surface is pushed back to the video pool only when
23689 the last reference to the parent surface proxy is released.
23691 2013-11-28 15:56:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23693 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23694 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23695 * gst/vaapi/gstvaapiencode.c:
23696 vaapiencode: optimize _handle_frame() to avoid extra allocation.
23697 Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
23698 and in particular the GstVaapiEncObjUserData object. i.e. directly use
23699 the VA surface proxy from the source buffer. This also makes the user
23700 data attached to the GstVideoCodecFrame more consistent between both
23701 the decoder and encoder plug-in elements.
23703 2013-11-28 15:14:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23705 * gst/vaapi/gstvaapiencode.c:
23706 vaapiencode: fix memory leaks in _push_frame() on error.
23707 Simplify gst_vaapiencode_push_frame(), while also removing the call
23708 to gst_video_encoder_negotiate() since this is implicit in _finish()
23709 if caps changed. Also fixed memory leaks that occured on error.
23711 2013-11-28 13:57:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23713 * gst/vaapi/gstvaapiencode.c:
23714 * gst/vaapi/gstvaapiencode.h:
23715 * gst/vaapi/gstvaapiencode_h264.c:
23716 * gst/vaapi/gstvaapiencode_h264.h:
23717 * gst/vaapi/gstvaapiencode_mpeg2.c:
23718 vaapiencode: additional clean-ups.
23719 Constify pointers wherever possible. Drop unused variables, and use
23720 consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
23721 to correctly report errors, especially when in-place conversion from
23722 bytestream to avcC format failed.
23724 2013-11-28 13:26:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23726 * gst/vaapi/gstvaapiencode.c:
23727 * gst/vaapi/gstvaapiencode.h:
23728 * gst/vaapi/gstvaapiencode_h264.c:
23729 * gst/vaapi/gstvaapiencode_h264.h:
23730 * gst/vaapi/gstvaapiencode_mpeg2.c:
23731 * gst/vaapi/gstvaapiencode_mpeg2.h:
23732 vaapiencode: move common properties to base class.
23733 Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
23734 base class. The actual range of supported rate control modes is currently
23735 implemented as a plug-in element hook. This ought to be determined from
23736 the GstVaapiEncoder object instead, i.e. from libgstvaapi.
23738 2013-11-28 10:54:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23740 * gst/vaapi/gstvaapiencode_h264.c:
23741 * gst/vaapi/gstvaapiencode_mpeg2.c:
23742 vaapiencode: fix plugin description and debug name.
23743 Align the plug-in debug category to its actual name. i.e. enable debug
23744 logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
23745 the plug-in element description to make it more consistent with other
23748 2013-11-27 16:27:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23751 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23752 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23753 * gst-libs/gst/video/Makefile.am:
23754 * gst/vaapi/gstvaapiencode.c:
23755 * gst/vaapi/gstvaapiencode.h:
23756 * gst/vaapi/gstvaapiencode_h264.c:
23757 * gst/vaapi/gstvaapiencode_mpeg2.c:
23758 vaapiencode: add initial support for GStreamer 0.10.
23760 2013-11-27 16:25:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23762 * gst-libs/gst/vaapi/gstcompat.h:
23763 libs: add more GstBuffer compat glue for GStreamer 0.10.
23764 Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
23765 Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
23768 2013-11-27 15:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23771 * gst-libs/gst/video/Makefile.am:
23772 libs: always use built-in videoutils for GStreamer 0.10.
23773 GStreamer 0.10.36 is the latest and ultimate version to be released
23774 from the GStreamer 0.10 branch. i.e. no further releases are to be
23775 made. So, we can safely enable the built-in videoutils replacement
23776 now that they are in sync with the 0.10 branch.
23778 2013-11-27 15:47:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23781 videoutils: update to master commit d4a15a5.
23782 d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
23783 86096cc videodecoder: minor cosmetic changes to align a bit more with master
23784 b4b8b52 videodecoder: allow parse function to not use all data on adapter
23785 2145495 videodecoder: warn if frame list gets long
23786 36c3753 videodecoder: Also use the object lock to protect the output_state
23787 518c93d videodecoder: fix seeking again
23788 185fb63 video: Correct usage of the base class stream lock
23789 170e944 videodecoder: Expose _negotiate function
23791 2013-11-26 12:06:07 +0000 Matthieu Bouron <matthieu.bouron@collabora.com>
23794 * gst-libs/gst/vaapi/Makefile.am:
23795 * tests/Makefile.am:
23796 Fix build with GStreamer >= 1.3.
23797 http://bugzilla.gnome.org/show_bug.cgi?id=715183
23798 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23800 2013-11-26 17:56:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23803 configure: disable encoders with GStreamer 0.10.
23804 Don't try to build video encoders for GStreamer 0.10. Support code is
23805 not there yet, and probably will never for such an ancient version.
23807 2013-11-26 17:26:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23809 * gst/vaapi/gstvaapiencode.c:
23810 vaapiencode: fix error handling while allocating output buffers.
23811 Fix default GstVideoEncoder::allocate_buffer() implementation to properly
23812 unmap the coded buffer prior to returning an error.
23814 2013-11-26 17:11:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23816 * gst/vaapi/gstvaapiencode.c:
23817 vaapiencode: fix error handling in _finish() hook.
23818 Fix GstVideoEncoder::finish() implementation to really return possible
23819 errors instead of GST_FLOW_OK. That is, fix check for timeout status.
23821 2013-11-26 16:34:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23823 * gst/vaapi/gstvaapiencode.c:
23824 * gst/vaapi/gstvaapiencode.h:
23825 * gst/vaapi/gstvaapiencode_h264.c:
23826 * gst/vaapi/gstvaapiencode_h264.h:
23827 * gst/vaapi/gstvaapiencode_mpeg2.c:
23828 * gst/vaapi/gstvaapiencode_mpeg2.h:
23829 vaapiencode: minor clean-ups.
23830 Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
23831 the GObject type system. We are guaranteed to only deal with the same
23832 plug-in element object.
23834 2013-11-26 15:31:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23836 * gst/vaapi/gstvaapiencode.c:
23837 * gst/vaapi/gstvaapiencode_h264.c:
23838 * gst/vaapi/gstvaapiencode_mpeg2.c:
23839 vaapiencode: fix support for raw YUV sink buffers.
23840 Allow vaapiencode plug-in elements to encode from raw YUV buffers.
23841 The most efficient way to do so is to let the vaapiencode elements
23842 allocate a buffer pool, and subsequently buffers from it. This means
23843 that upstream elements are expected to honour downstream pools.
23844 If upstream elements insist on providing their own allocated buffers
23845 to the vaapiencode elements, then it possibly would be more efficient
23846 to insert a vaapipostproc element before the vaapiencode element.
23847 This is because vaapipostproc currently has better support than other
23848 elements for "foreign" raw YUV buffers.
23850 2013-11-26 15:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23852 * gst/vaapi/gstvaapiencode.c:
23853 vaapiencode: fix support for GStreamer 1.2.
23855 2013-11-07 17:42:21 +0800 Wind Yuan <feng.yuan@intel.com>
23857 * gst/vaapi/gstvaapiencode.c:
23858 * gst/vaapi/gstvaapiencode_h264.c:
23859 * gst/vaapi/gstvaapiencode_mpeg2.c:
23860 vaapiencode: initial port to GStreamer 1.2.
23861 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23863 2013-11-20 16:21:32 +0800 XuGuangxin <guangxin.xu@intel.com>
23865 * gst/vaapi/Makefile.am:
23866 * gst/vaapi/gstvaapi.c:
23867 * gst/vaapi/gstvaapiencode_mpeg2.c:
23868 * gst/vaapi/gstvaapiencode_mpeg2.h:
23869 plugins: add mpeg2 encoder element.
23870 Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
23871 is called "vaapiencode_mpeg2".
23873 - rate-control: rate control mode (default: cqp - constant QP)
23874 - bitrate: desired bitrate in kbps (default: auto-calculated)
23875 - key-period: maximal distance between two key frames (default: 30)
23876 - max-bframes: number of B-frames between I and P (default: 2)
23877 - quantizer: constant quantizer (default: 8)
23878 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23880 2013-07-29 16:02:56 +0800 Wind Yuan <feng.yuan@intel.com>
23882 * gst/vaapi/Makefile.am:
23883 * gst/vaapi/gstvaapi.c:
23884 * gst/vaapi/gstvaapiencode_h264.c:
23885 * gst/vaapi/gstvaapiencode_h264.h:
23886 plugins: add h264 encoder element.
23887 Add GstVaapiEncodeH264 element object. The actual plug-in element
23888 is called "vaapiencode_h264".
23890 - rate-control: rate control mode (default: none)
23891 - bitrate: desired bitrate in kbps (default: auto-calculated)
23892 - key-period: maximal distance between two key frames (default: 30)
23893 - num-slices: number of slices per frame (default: 1)
23894 - max-bframes: number of B-frames between I and P (default: 0)
23895 - min-qp: minimal quantizer (default: 1)
23896 - init-qp: initial quantizer (default: 26)
23897 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23899 2013-07-29 13:44:48 +0800 Wind Yuan <feng.yuan@intel.com>
23901 * gst/vaapi/Makefile.am:
23902 * gst/vaapi/gstvaapiencode.c:
23903 * gst/vaapi/gstvaapiencode.h:
23904 plugins: add base encoder element.
23905 vaapiencode element is based on GstVideoEncoder APIs.
23906 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23908 2013-11-20 16:20:15 +0800 XuGuangxin <guangxin.xu@intel.com>
23910 * gst-libs/gst/vaapi/Makefile.am:
23911 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23912 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23913 * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23914 encoder: add mpeg2 encoder.
23915 Add initial support for MPEG-2 encoding. I/P/B frames are supported.
23916 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23918 2013-07-29 15:46:11 +0800 Wind Yuan <feng.yuan@intel.com>
23920 * gst-libs/gst/vaapi/Makefile.am:
23921 * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23922 * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23923 * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23924 encoder: add h264 encoder.
23925 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23927 2013-07-29 13:34:06 +0800 Wind Yuan <feng.yuan@intel.com>
23930 * gst-libs/gst/vaapi/Makefile.am:
23931 * gst-libs/gst/vaapi/gstvaapiencoder.c:
23932 * gst-libs/gst/vaapi/gstvaapiencoder.h:
23933 * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23934 * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23935 * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23936 Add initial infrastructure for video encoding.
23937 Add initial API for video encoding: only basic interfaces and small
23938 encoder objects are implemented so far.
23939 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23941 2013-07-29 15:41:23 +0800 Wind Yuan <feng.yuan@intel.com>
23944 * gst-libs/gst/Makefile.am:
23945 * gst-libs/gst/base/Makefile.am:
23946 * gst-libs/gst/base/gstbitwriter.c:
23947 * gst-libs/gst/base/gstbitwriter.h:
23948 * gst-libs/gst/vaapi/Makefile.am:
23949 libs: add generic bitstream writer.
23950 GstBitWriter provides a bit writer that can write any number of bits
23951 to a pre-allocated memory buffer. Helper functions are also provided
23952 to write any number of bits from 8, 16, 32 and 64 bit variables.
23953 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23955 2013-07-12 22:07:59 +0800 Wind Yuan <feng.yuan@intel.com>
23957 * gst-libs/gst/vaapi/gstvaapicontext.c:
23958 * gst-libs/gst/vaapi/gstvaapicontext.h:
23959 libs: add support for rate-control to GstVaapiContext.
23960 Extend GstVaapiContextInfo structure to hold the desired rate control
23961 mode for encoding purposes. For decoding purposes, this field is not
23962 used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
23963 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23965 2013-07-12 21:33:32 +0800 Wind Yuan <feng.yuan@intel.com>
23967 * gst-libs/gst/vaapi/gstvaapitypes.h:
23968 * gst-libs/gst/vaapi/gstvaapiutils.c:
23969 * gst-libs/gst/vaapi/gstvaapiutils.h:
23970 * gst-libs/gst/vaapi/gstvaapivalue.c:
23971 * gst-libs/gst/vaapi/gstvaapivalue.h:
23972 libs: add rate-control attributes.
23973 Add GstVaapiRateControl types and GType values in view to supporting
23974 rate controls for encoding. This is meant to be used for instance in
23976 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23978 2013-11-22 11:56:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23981 Bump version for development.
23983 2013-11-22 11:28:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23985 * gst/vaapi/Makefile.am:
23986 build: fix for Wayland headers not in standard include dirs.
23987 Fix build when Wayland headers don't live in plain system include dirs
23988 like /usr/include but rather in /usr/include/wayland for instance.
23989 Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
23990 https://bugzilla.gnome.org/show_bug.cgi?id=712282
23992 2013-11-14 10:58:37 +0000 Ross Burton <ross.burton@intel.com>
23994 * gst-libs/gst/vaapi/Makefile.am:
23995 build: link libgstvaapi-wayland against videoutils.
23996 This library is using symbols that don't exist in GStreamer 0.10 so
23997 it needs to link to built-in implementation (libgstvaapi-videoutils).
23998 https://bugzilla.gnome.org/show_bug.cgi?id=712282
23999 Signed-off-by: Ross Burton <ross.burton@intel.com>
24000 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24002 2013-11-22 11:15:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24004 * gst-libs/gst/vaapi/gstvaapifilter.c:
24005 * gst/vaapi/gstvaapipostproc.c:
24006 vaapostproc: fix memory leaks.
24007 Destroy VPP output surface pool on exit. Also avoid a possible crash
24008 in double-free situation caused by insufficiently reference counted
24009 array of formats returned during initialization.
24011 2013-11-22 10:19:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24013 * gst/vaapi/gstvaapipostproc.c:
24014 * gst/vaapi/gstvaapipostproc.h:
24015 vaapipostproc: fix and optimize advanced deinterlacing mode.
24016 Fix advanced deinterlacing modes with VPP to track only up to 2 past
24017 reference buffers. This used to be 3 past reference buffers but this
24018 doesn't fit with the existing decode pipeline that only has 4 extra
24020 Also optimize references tracking to be only enabled when needed, i.e.
24021 when advanced deinterlacing mode is used. This means that we don't
24022 need to track past references for basic bob or weave deinterlacing.
24024 2013-11-22 10:04:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24026 * gst/vaapi/gstvaapipostproc.c:
24027 vaapipostproc: fix "mixed" mode deinterlacing.
24028 In "mixed" interlaced streams, the buffer contains additional flags that
24029 specify whether the frame contained herein is interlaced or not. This means
24030 that we can alternatively get progressive or interlaced frames. Make sure
24031 to disable deinterlacing at the VPP level when the source buffer is no longer
24034 2013-11-22 09:49:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24036 * gst/vaapi/gstvaapipostproc.c:
24037 vaapipostproc: fix memory leaks with advanced deinterlacing.
24038 Fix memory leaks with advanced deinterlacing, i.e. when we keep track
24039 of past buffers. Completely reset the deinterlace state, thus destroying
24040 any buffer currently held, on _start(), _stop() and _destroy().
24042 2013-11-22 06:59:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24046 - GStreamer 1.2 APIs are supported ;
24047 - Video Processing (VA/VPP) features.
24049 2013-11-22 06:45:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24052 README: update for GStreamer >= 1.0.x and VPP features.
24054 2013-11-22 06:37:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24056 * gst-libs/gst/vaapi/glibcompat.h:
24057 * gst-libs/gst/vaapi/gstvaapicontext.h:
24058 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24059 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24060 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24061 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24062 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24063 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24064 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24065 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24066 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24067 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24068 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24069 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24070 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24071 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24072 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24073 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24074 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24075 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24076 * gst-libs/gst/vaapi/gstvaapiimage.c:
24077 * gst-libs/gst/vaapi/gstvaapiimage.h:
24078 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24079 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24080 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24081 * gst-libs/gst/vaapi/gstvaapiobject.c:
24082 * gst-libs/gst/vaapi/gstvaapiobject.h:
24083 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24084 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24085 * gst-libs/gst/vaapi/gstvaapisurface.h:
24086 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24087 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24088 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24089 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24090 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24091 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24092 * gst-libs/gst/vaapi/gstvaapitexture.c:
24093 * gst-libs/gst/vaapi/gstvaapitexture.h:
24094 * gst-libs/gst/vaapi/gstvaapitypes.h:
24095 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24096 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24097 * gst-libs/gst/vaapi/gstvaapivalue.c:
24098 * gst-libs/gst/vaapi/gstvaapivalue.h:
24099 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24100 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24101 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24102 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24103 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24104 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24105 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24106 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24107 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24108 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24109 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24110 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24111 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24112 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24113 * gst/vaapi/gstvaapi.c:
24114 * gst/vaapi/gstvaapidecode.h:
24115 * gst/vaapi/gstvaapidownload.h:
24116 * gst/vaapi/gstvaapipluginutil.c:
24117 * gst/vaapi/gstvaapipluginutil.h:
24118 * gst/vaapi/gstvaapipostproc.h:
24119 * gst/vaapi/gstvaapisink.h:
24120 * gst/vaapi/gstvaapivideoconverter_glx.h:
24124 * tests/test-display.c:
24125 * tests/test-jpeg.c:
24126 * tests/test-jpeg.h:
24127 * tests/test-mpeg4.c:
24128 * tests/test-mpeg4.h:
24129 * tests/test-surfaces.c:
24130 * tests/test-windows.c:
24131 legal: update copyright notice dates.
24133 2013-11-22 05:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24135 * gst-libs/gst/vaapi/glibcompat.h:
24136 * gst-libs/gst/vaapi/gstcompat.h:
24137 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24138 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24139 * gst-libs/gst/vaapi/gstvaapicompat.h:
24140 * gst-libs/gst/vaapi/gstvaapicontext.c:
24141 * gst-libs/gst/vaapi/gstvaapicontext.h:
24142 * gst-libs/gst/vaapi/gstvaapidebug.h:
24143 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24144 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24145 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
24146 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
24147 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24148 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24149 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24150 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24151 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24152 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24153 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24154 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24155 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24156 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24157 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24158 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
24159 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
24160 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24161 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24162 * gst-libs/gst/vaapi/gstvaapidisplay.c:
24163 * gst-libs/gst/vaapi/gstvaapidisplay.h:
24164 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24165 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24166 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24167 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24168 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24169 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24170 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24171 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24172 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24173 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24174 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24175 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24176 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24177 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24178 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24179 * gst-libs/gst/vaapi/gstvaapifilter.c:
24180 * gst-libs/gst/vaapi/gstvaapifilter.h:
24181 * gst-libs/gst/vaapi/gstvaapiimage.c:
24182 * gst-libs/gst/vaapi/gstvaapiimage.h:
24183 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
24184 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24185 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24186 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
24187 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24188 * gst-libs/gst/vaapi/gstvaapiobject.c:
24189 * gst-libs/gst/vaapi/gstvaapiobject.h:
24190 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24191 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
24192 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
24193 * gst-libs/gst/vaapi/gstvaapipixmap.c:
24194 * gst-libs/gst/vaapi/gstvaapipixmap.h:
24195 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
24196 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
24197 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
24198 * gst-libs/gst/vaapi/gstvaapiprofile.c:
24199 * gst-libs/gst/vaapi/gstvaapiprofile.h:
24200 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24201 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24202 * gst-libs/gst/vaapi/gstvaapisurface.c:
24203 * gst-libs/gst/vaapi/gstvaapisurface.h:
24204 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24205 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24206 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24207 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24208 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24209 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24210 * gst-libs/gst/vaapi/gstvaapitexture.c:
24211 * gst-libs/gst/vaapi/gstvaapitexture.h:
24212 * gst-libs/gst/vaapi/gstvaapitypes.h:
24213 * gst-libs/gst/vaapi/gstvaapiutils.c:
24214 * gst-libs/gst/vaapi/gstvaapiutils.h:
24215 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24216 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24217 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24218 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24219 * gst-libs/gst/vaapi/gstvaapivalue.c:
24220 * gst-libs/gst/vaapi/gstvaapivalue.h:
24221 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24222 * gst-libs/gst/vaapi/gstvaapivideopool.h:
24223 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24224 * gst-libs/gst/vaapi/gstvaapiwindow.c:
24225 * gst-libs/gst/vaapi/gstvaapiwindow.h:
24226 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24227 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24228 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24229 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24230 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24231 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24232 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24233 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24234 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24235 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24236 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24237 * gst-libs/gst/vaapi/sysdeps.h:
24238 * gst-libs/gst/vaapi/video-format.c:
24239 * gst-libs/gst/vaapi/video-format.h:
24240 * gst/vaapi/gstvaapi.c:
24241 * gst/vaapi/gstvaapidecode.c:
24242 * gst/vaapi/gstvaapidecode.h:
24243 * gst/vaapi/gstvaapidownload.c:
24244 * gst/vaapi/gstvaapidownload.h:
24245 * gst/vaapi/gstvaapipluginutil.c:
24246 * gst/vaapi/gstvaapipluginutil.h:
24247 * gst/vaapi/gstvaapipostproc.c:
24248 * gst/vaapi/gstvaapipostproc.h:
24249 * gst/vaapi/gstvaapisink.c:
24250 * gst/vaapi/gstvaapisink.h:
24251 * gst/vaapi/gstvaapiupload.c:
24252 * gst/vaapi/gstvaapiupload.h:
24253 * gst/vaapi/gstvaapiuploader.c:
24254 * gst/vaapi/gstvaapiuploader.h:
24255 * gst/vaapi/gstvaapivideobuffer.c:
24256 * gst/vaapi/gstvaapivideobuffer.h:
24257 * gst/vaapi/gstvaapivideobufferpool.c:
24258 * gst/vaapi/gstvaapivideobufferpool.h:
24259 * gst/vaapi/gstvaapivideocontext.c:
24260 * gst/vaapi/gstvaapivideocontext.h:
24261 * gst/vaapi/gstvaapivideoconverter_glx.c:
24262 * gst/vaapi/gstvaapivideoconverter_glx.h:
24263 * gst/vaapi/gstvaapivideoconverter_x11.c:
24264 * gst/vaapi/gstvaapivideoconverter_x11.h:
24265 * gst/vaapi/gstvaapivideomemory.c:
24266 * gst/vaapi/gstvaapivideomemory.h:
24267 * gst/vaapi/gstvaapivideometa.c:
24268 * gst/vaapi/gstvaapivideometa.h:
24269 * gst/vaapi/gstvaapivideometa_texture.c:
24270 * gst/vaapi/gstvaapivideometa_texture.h:
24279 * tests/simple-decoder.c:
24280 * tests/test-decode.c:
24281 * tests/test-decode.h:
24282 * tests/test-display.c:
24283 * tests/test-filter.c:
24284 * tests/test-h264.c:
24285 * tests/test-h264.h:
24286 * tests/test-jpeg.c:
24287 * tests/test-jpeg.h:
24288 * tests/test-mpeg2.c:
24289 * tests/test-mpeg2.h:
24290 * tests/test-mpeg4.c:
24291 * tests/test-mpeg4.h:
24292 * tests/test-surfaces.c:
24293 * tests/test-textures.c:
24294 * tests/test-vc1.c:
24295 * tests/test-vc1.h:
24296 * tests/test-windows.c:
24297 legal: add per-file authorship information.
24298 Credit original authors on a per-file basis as we cannot expect people
24299 to know all country-specific rules, or bother browsing through the git
24302 2013-11-21 23:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24308 2013-11-21 23:51:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24313 2013-11-21 23:17:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24315 * gst-libs/gst/vaapi/gstvaapidecoder.h:
24316 decoder: don't include obsolete headers.
24317 The <gst/vaapi/gstvaapicontext.h> header was removed from the public
24318 set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
24321 2013-11-18 16:20:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24323 * gst/vaapi/Makefile.am:
24324 * gst/vaapi/gstvaapi.c:
24325 * gst/vaapi/gstvaapipostproc.c:
24326 vaapipostproc: add initial support for GStreamer 1.2.
24327 Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
24328 right now so that to cope with auto-plugging issues/regressions. e.g.
24329 this happens when the correct set of expected caps are being exposed.
24330 This means that, currently, the proposed caps are not fully accurate.
24332 2013-11-01 10:22:17 +0800 Halley Zhao <halley.zhao@intel.com>
24334 * gst/vaapi/gstvaapipostproc.c:
24335 * gst/vaapi/gstvaapipostproc.h:
24336 vaapipostproc: add support for denoise and sharpen filters.
24337 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24339 2013-11-21 19:52:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24341 * gst/vaapi/gstvaapipostproc.c:
24342 * gst/vaapi/gstvaapipostproc.h:
24343 vaapipostproc: add support for advanced deinterlacing.
24344 Add initial support for advanced deinterlacing. The history buffer
24345 size is arbitrarily set to 3 references for now.
24347 2013-11-21 22:32:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24349 * gst/vaapi/gstvaapipostproc.c:
24350 vaapipostproc: fix deinterlacing with VPP.
24351 Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
24352 for the first field. Render flags were supplied instead of the actual
24353 deinterlacing flags (deint_flags).
24355 2013-11-21 15:08:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24357 * gst/vaapi/gstvaapipostproc.c:
24358 vaapipostproc: fix transform caps.
24359 Fix GstBaseTransform::transform_caps() implementation to always return
24360 the complete set of allowed sink pad caps (unfixated) even if the src
24361 pad caps we are getting are fixated. Rationale: there are just so many
24362 possible combinations, and it was wrong to provide a unique set anyway.
24363 As a side effect, this greatly simplifies the ability to derive src pad
24364 caps from fixated sink pad caps.
24366 2013-11-01 10:31:13 +0800 Halley Zhao <halley.zhao@intel.com>
24368 * docs/reference/libs/libs-sections.txt:
24369 * gst-libs/gst/vaapi/gstvaapifilter.c:
24370 * gst-libs/gst/vaapi/gstvaapifilter.h:
24371 filter: add helper to specify references for deinterlacing.
24372 Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
24373 list of surfaces used for forward or backward reference in advanced
24374 deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
24375 The list of surfaces used as deinterlacing references shall be live
24376 until the next call to gst_vaapi_filter_process().
24377 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24379 2013-11-21 18:44:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24381 * gst-libs/gst/vaapi/gstvaapifilter.c:
24382 * gst-libs/gst/vaapi/gstvaapifilter.h:
24383 * gst-libs/gst/vaapi/gstvaapiutils.c:
24384 * gst/vaapi/gstvaapipostproc.c:
24385 * tests/test-filter.c:
24386 filter: fix semantics of deinterlacing flags.
24387 Fix deinterlacing flags to make more sense. The TFF (top-field-first)
24388 flag is meant to specify the organization of reference frames used in
24389 advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
24390 to specify that the top-field of the supplied input surface is to be
24391 used for deinterlacing. Conversely, if not set, this means that the
24392 bottom field of the supplied input surface will be used instead.
24394 2013-11-21 17:20:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24396 * docs/reference/libs/libs-sections.txt:
24397 * gst-libs/gst/vaapi/gstvaapifilter.c:
24398 * gst-libs/gst/vaapi/gstvaapifilter.h:
24399 filter: add helpers to check for supported/active operation.
24400 Add a couple of helper functions:
24401 - gst_vaapi_filter_has_operation(): checks whether the VA driver
24402 advertises support for the supplied operation ;
24403 - gst_vaapi_filter_use_operation(): checks whether the supplied
24404 operation was already enabled to its non-default value.
24406 2013-11-20 15:10:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24408 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24409 libs: fix GstVaapiSurfaceProxy destroy notify call site.
24410 The user-defined destroy notify function is meant to be called only when
24411 the surface proxy was fully released, i.e. once it actually released the
24412 VA surface back to the underlying pool.
24414 2013-08-29 13:44:22 +0800 XuGuangxin <guangxin.xu@intel.com>
24416 * gst-libs/gst/vaapi/gstvaapivideopool.c:
24417 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24418 libs: make GstVaapiVideoPool thread-safe.
24419 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24420 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24422 2013-08-29 14:04:06 +0800 XuGuangxin <guangxin.xu@intel.com>
24424 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24425 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24426 libs: robustify decoder objects and surface proxy initialization.
24427 Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
24428 sequences to have the expected default values set beforehand in case of an
24429 error raising up further during creation. i.e. make it possible to cleanly
24430 destroy those partially initialized objects.
24431 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24432 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24434 2013-11-21 11:01:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24436 * gst/vaapi/gstvaapidecode.c:
24437 vaapidecode: fix decoder flush.
24438 There are situations where gst_video_decoder_flush() is called, and
24439 this subsequently produces a gst_video_decoder_reset() that kills the
24440 currently active GstVideoCodecFrame. This means that it no longer
24441 exists by the time we reach GstVideoDecoder::finish() callback, thus
24442 possibly resulting in a crash if we assumed spare data was still
24443 available for decode (current_frame_size > 0).
24444 Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
24445 that means a flush, thus performing the actual operations there like
24446 calling gst_video_decoder_have_frame() if pending data is available.
24448 2013-11-20 19:21:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24450 * gst/vaapi/gstvaapidecode.c:
24451 * gst/vaapi/gstvaapidecode.h:
24452 vaapidecode: fix dead-locks with decoder task.
24453 Review all interactions between the main video decoder stream thread
24454 and the decode task to derive a correct sequence of operations for
24455 decoding. Also avoid extra atomic operations that become implicit under
24456 the GstVideoDecoder stream lock.
24458 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24460 * gst/vaapi/gstvaapidecode.c:
24461 vaapidecode: fix hard reset for seek cases.
24462 Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
24463 and completely purge any decoded output frame that may come out from
24464 it. At this stage, the GstVaapiDecoder shall be in a complete clean
24465 state to start decoding over new buffers.
24466 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24468 2013-08-29 14:12:10 +0800 XuGuangxin <guangxin.xu@intel.com>
24470 * gst/vaapi/gstvaapidecode.c:
24471 * gst/vaapi/gstvaapidecode.h:
24472 vaapidecode: drop decode timeout, always wait for a free surface.
24473 vaapidecode used to wait up to one second past the expected time of
24474 presentation for the last decoded frame. This is not realistic in
24475 practice when it comes to video pause/resume. Changed behaviour to
24476 unconditionnally wait for a free VA surface prior to continuing the
24477 decoding. The decode task will continue pushing the output frames to
24478 the downstream element while also reporting errors at the same time
24479 to the main thread.
24480 https://bugzilla.gnome.org/show_bug.cgi?id=707108
24481 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24483 2013-11-20 10:56:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24485 * gst/vaapi/gstvaapidecode.c:
24486 vaapidecode: fix srcpad caps for GStreamer 1.2.
24487 The srcpad caps exposed for GStreamer 1.2 were missing any useful info
24488 like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
24489 that it relied on possibly un-initialized data. Fix srcpad caps to be
24490 initialized from a sanitized copy of GstVideoDecoder output state caps.
24491 Note: the correct way to expose the srcpad caps triggers an additional
24492 issue in core GStreamer auto-plugging capabilities as the correct caps
24493 to be exposed should be format=ENCODED with memory:VASurface caps feature
24494 at the minimum. In some situations, we could determine the underlying
24495 VA surface format, but this is not always possible. e.g. cases where it
24496 is not allowed to expose the underlying VA surface data, or when the
24497 VA driver implementation cannot actually provide such information.
24499 2013-11-20 10:45:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24501 * gst/vaapi/gstvaapidecode.c:
24502 * gst/vaapi/gstvaapisink.c:
24503 plugins: streamline VA formats exposed in caps to a realistic set.
24504 Currently, the decoder only supports YUV 4:2:0 output. So, expose the
24505 output formats for GStreamer 1.2 in caps to a realistic subset. This
24506 means NV12, I420 or YV12 but also ENCODED if we cannot determine the
24507 underlying VA surface format, or if it is actually not allowed to get
24508 access to the surface contents.
24510 2013-11-20 10:37:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24512 * gst/vaapi/gstvaapidecode.c:
24513 * gst/vaapi/gstvaapisink.c:
24514 plugins: expose the expected format for GstVideoGLTextureUploadMeta.
24515 Fix vaapidecode srcpad caps to only expose RGBA video format for the
24516 meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
24517 so far. Besides, drop this meta from the vaapisink sinkpad caps since
24518 we really don't support that for rendering.
24519 https://bugzilla.gnome.org/show_bug.cgi?id=711828
24521 2013-11-18 18:25:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24524 configure: automatically detect GStreamer API version.
24525 Automatically detect GStreamer API version. The --with-gstreamer-api
24526 configure option now defaults to "autodetect" and configure then tries
24527 to derive the GStreamer API version from the highest version based on
24528 what pkg-config --modversion would report.
24529 https://bugzilla.gnome.org/show_bug.cgi?id=711657
24531 2013-11-01 13:43:11 +0800 Wind Yuan <feng.yuan@intel.com>
24533 * gst/vaapi/gstvaapipostproc.c:
24534 vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
24535 Fix raw YUV data uploaded as in the following pipeline:
24536 $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
24537 The main reason why it failed was that the videoparse element simply
24538 allocates GstBuffer with raw data chunk'ed off the sink pad without
24539 any prior knowledge of the actual frame info. i.e. it basically just
24540 calls gst_adapter_take_buffer().
24541 We could avoid the extra copy performed in vaapipostproc if the videoparse
24542 element was aware of the downstream pool and bothers copying line by
24543 line, for each plane. This means that, for a single frame per buffer,
24544 the optimizatin will be to allocate the video buffer downstream, map
24545 it, and copy each line that is coming through until we need to fills
24546 in the successive planes.
24547 Still, optimized raw YUV uploads already worked with the following:
24548 $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
24549 https://bugzilla.gnome.org/show_bug.cgi?id=711250
24550 [clean-ups, fixed error cases to unmap and unref outbuf]
24551 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24553 2013-11-16 07:02:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24555 * gst/vaapi/gstvaapipostproc.c:
24556 vaapipostproc: try to downgrade deinterlace-method when needed.
24557 If the currently selected deinterlacing method is not supported by the
24558 underlying hardware, then try to downgrade the method to a supported one.
24559 At the minimum, basic bob-deinterlacing shall always be supported.
24561 2013-11-15 19:04:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24563 * gst/vaapi/gstvaapipostproc.c:
24564 vaapipostproc: add initial support for deinterlacing with VPP.
24565 Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
24566 this only covers bob-deinterlacing when the output pixel format is
24569 2013-11-15 17:14:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24571 * gst/vaapi/gstvaapipostproc.c:
24572 vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
24573 The size argument for GstBaseTransform::transform_size() hook is a
24574 guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
24576 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24578 * gst/vaapi/gstvaapipostproc.c:
24579 * gst/vaapi/gstvaapipostproc.h:
24580 vaapipostproc: add initial support for scaling.
24581 Add initial support for basic scaling with size specified through the
24582 "width" and "height" properties. If either user-provided dimension is
24583 zero and "force-aspect-ratio" is set to true (the default), then the
24584 other dimension is scaled to preserve the aspect ratio.
24586 2013-10-18 18:08:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24588 * gst/vaapi/gstvaapipostproc.c:
24589 * gst/vaapi/gstvaapipostproc.h:
24590 vaapipostproc: add initial support for color conversion.
24591 If VPP is available, we always try to implicitly convert the source
24592 buffer to the "native" surface format for the underlying accelerator.
24593 This means that no optimization is performed yet to propagate raw YUV
24594 buffers to the downstream element as is, if VPP is available. i.e. it
24595 will always cause a color conversion.
24597 2013-10-16 11:23:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24599 * gst/vaapi/gstvaapipostproc.c:
24600 vaapipostproc: fix bug when user disabled deinterlacing.
24601 Fix pipeline error / hang when the user disabled deinterlacing through
24602 the deinterlace-mode=disabled property setting.
24604 2013-10-16 11:20:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24606 * gst/vaapi/gstvaapipostproc.c:
24607 * gst/vaapi/gstvaapipostproc.h:
24608 vaapipostproc: factor out operations to be applied into flags.
24609 Even if we only support deinterlacing for now, use flags to specify
24610 which filters are to be applied to each frame we receive in transform().
24611 This is preparatory work for integrating new filters.
24613 2013-10-04 15:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24615 * gst/vaapi/gstvaapipostproc.c:
24616 * gst/vaapi/gstvaapipostproc.h:
24617 vaapipostproc: add support for raw YUV video source buffers.
24618 Allow video processing from raw YUV buffers coming from the sink pad,
24619 while still producing a VA surface for the downstream elements.
24621 2013-10-04 16:00:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24623 * gst/vaapi/gstvaapipluginutil.c:
24624 * gst/vaapi/gstvaapipluginutil.h:
24625 * gst/vaapi/gstvaapipostproc.c:
24626 vaapipostproc: add support for "mixed" interlace mode.
24627 Add support for "mixed" interlace-mode, whereby the video frame buffer
24628 shall be deinterlaced only if its flags mention that's actually an
24629 interlaced frame buffer.
24631 2013-10-03 19:04:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24633 * gst-libs/gst/vaapi/gstcompat.h:
24634 * gst/vaapi/gstvaapipostproc.c:
24635 * gst/vaapi/gstvaapipostproc.h:
24636 * gst/vaapi/gstvaapivideobuffer.c:
24637 * gst/vaapi/gstvaapivideobuffer.h:
24638 vaapipostproc: rework plug-in element.
24639 Rewrite the vaapipostproc plug-in element so that it derives from
24640 GstBaseTransform, thus simplifying the caps negotiation process.
24642 2013-10-09 17:25:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24644 * gst/vaapi/gstvaapivideobufferpool.c:
24645 * gst/vaapi/gstvaapivideomemory.c:
24646 * gst/vaapi/gstvaapivideomemory.h:
24647 plugins: fix and optimize check for buffer pool allocator params.
24648 Reset the buffer pool allocator only if the config caps changed in a
24649 sensible way: format or resolution change. i.e. don't bother with
24650 other caps like colorimetry et al. as this doesn't affect the way to
24651 allocate VA surfaces or images.
24653 2013-10-09 10:33:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24655 * gst/vaapi/gstvaapivideomemory.c:
24656 plugins: enable memory maps for read & write with direct-rendering.
24657 Enable read and write mappings only if direct-rendering is supported.
24658 Otherwise, this means that we may need to download data from the VA
24659 surface first for correctness, even if the VA surface doesn't need to
24660 be read at all. i.e. sometimes, READWRITE mappings are meant for
24661 surfaces that are written to first, and read afterwards for further
24663 https://bugzilla.gnome.org/show_bug.cgi?id=704078
24665 2013-10-09 10:06:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24667 * gst/vaapi/gstvaapivideomemory.c:
24668 plugins: fix check for direct-rendering support.
24669 Fix check for direct-rendering if the creation of VA surfaces with
24670 an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
24671 that we tried to allocate a VA surface based on the corresponding
24672 chroma type. i.e. in that particular case, we have to make sure that
24673 the derived image has actually the expected format.
24675 2013-10-09 09:47:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24677 * gst/vaapi/gstvaapivideobufferpool.c:
24678 * gst/vaapi/gstvaapivideomemory.c:
24679 * gst/vaapi/gstvaapivideomemory.h:
24680 plugins: fix buffer pool reset_buffer() to reset memory resources.
24681 Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
24682 memory resources, and more particularly the VA surface proxy. Most
24683 importantly, the GstVaapiVideoMeta is retained. Cached surface in
24684 memory are released, thus triggering a new allocation the next time
24685 we need to map the buffer.
24687 2013-10-09 09:33:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24689 * gst/vaapi/gstvaapivideomemory.c:
24690 * gst/vaapi/gstvaapivideomemory.h:
24691 plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
24692 Make sure GstVaapiVideoMemory allocates VA surface proxies from a
24693 pool stored in the parent VA memory allocator.
24694 This fixes the following scenario:
24695 - VA video buffer 1 is allocated from a buffer pool
24696 - Another video buffer is created, and inherits info from buffer 1
24697 - Buffer 1 is released, thus pushing it back to the buffer pool
24698 - New buffer alloc request comes it, this yields buffer 1 back
24699 - At this stage, buffers 1 and 2 still share the same underlying VA
24700 surface, but buffer 2 was already submitted downstream for further
24701 processing, thus conflicting with additional processing we were
24702 about to perform on buffer 1.
24703 Maybe the core GstBufferPool implementation should have been fixed
24704 instead to actually make sure that the returned GstBuffer memory we
24705 found from the pool is writable?
24707 2013-10-04 19:34:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24709 * gst/vaapi/gstvaapiuploader.c:
24710 plugins: create a proxy for GstVaapiUploader allocated buffers.
24711 Always make sure to allocate a VA surface proxy for GstVaapiUploader
24712 allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
24714 This fixes cases where we want to retain the underlying surface longer,
24715 instead of releasing it back to the surface pool right away.
24717 2013-10-04 19:30:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24719 * gst/vaapi/gstvaapidecode.c:
24720 * gst/vaapi/gstvaapipluginutil.c:
24721 * gst/vaapi/gstvaapipluginutil.h:
24722 * gst/vaapi/gstvaapipostproc.c:
24723 plugins: add helper function to disable deinterlacing in caps.
24724 Add gst_caps_set_interlaced() helper function that would reset the
24725 interlace-mode field to "progressive" for GStreamer >= 1.0, or the
24726 interlaced field to "false" for GStreamer 0.10.
24728 2013-10-01 18:26:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24730 * gst-libs/gst/vaapi/gstvaapifilter.c:
24731 filter: fix memory leak of VPP operations.
24732 Fix ensure_operations() to release the VPP operations array if non
24733 NULL, prior to returning to the caller. The former function was also
24734 renamed to a more meaningful get_operations() since the caller owns
24735 the returned array that needs to be released.
24737 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
24739 * gst-libs/gst/vaapi/gstvaapifilter.c:
24740 filter: fix first-time operation lookup.
24741 Fix first-time operation lookup through find_operation() if the set
24742 of supported operations was not initially determined through the
24743 gst_vaapi_filter_get_operations() helper function.
24744 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24746 2013-09-04 13:53:25 +0800 Zhao Halley <halley.zhao@intel.com>
24748 * gst-libs/gst/vaapi/gstvaapifilter.c:
24749 filter: fix colorbalance related subtypes.
24750 Fix intiialization of GstVaapiFilterOpData for colorbalance related
24751 operations. In particular, fill in the va_subtype field accordingly.
24752 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24754 2013-09-30 17:08:12 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24756 * gst-libs/gst/vaapi/gstvaapifilter.c:
24757 filter: fix VA-API 0.34.0 symbol guards.
24758 VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
24759 that need to be guarded for libva 0.34 and 0.33, respectively.
24760 https://bugzilla.gnome.org/show_bug.cgi?id=709102
24761 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24763 2013-10-01 17:57:11 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24765 * gst/vaapi/gstvaapidecode.c:
24766 * gst/vaapi/gstvaapipluginutil.c:
24767 * gst/vaapi/gstvaapisink.c:
24768 plugins: hanle the context query in any pad.
24769 Also this patch simplifies the code, since now the query is common for the
24770 decoder and the sink.
24771 https://bugzilla.gnome.org/show_bug.cgi?id=709200
24773 2013-10-01 12:09:44 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24775 * gst/vaapi/gstvaapivideocontext.c:
24776 plugins: query upstream element for a GstContext.
24777 Fix gst_vaapi_video_context_prepare() to also query upstream elements
24778 for a valid GstContext. Improve comments regarding the steps used to
24779 lookup or build that context, thus conforming to the GstContext API
24781 https://bugzilla.gnome.org/show_bug.cgi?id=709112
24782 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24784 2013-09-26 15:21:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24787 * debian.upstream/control.in:
24788 Fix detection and packaging of GStreamer 1.2.x builds.
24789 The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
24790 packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
24791 purposes, update the versioning to -1.2 suffix instead.
24793 2013-07-15 13:41:00 +0200 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24795 * gst/vaapi/Makefile.am:
24796 * gst/vaapi/gstvaapidecode.c:
24797 * gst/vaapi/gstvaapidecode.h:
24798 * gst/vaapi/gstvaapisink.c:
24799 * gst/vaapi/gstvaapivideometa_texture.c:
24800 * gst/vaapi/gstvaapivideometa_texture.h:
24801 plugins: add support for GstVideoGLTextureUploadMeta.
24802 If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
24803 requested, and more specifically under a GLX configuration, then add
24804 the GstVideoGLTextureUploadMeta to the output buffer.
24805 https://bugzilla.gnome.org/show_bug.cgi?id=703236
24806 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24808 2013-07-04 11:03:52 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24810 * gst/vaapi/gstvaapidecode.c:
24811 * gst/vaapi/gstvaapisink.c:
24812 * gst/vaapi/gstvaapivideomemory.h:
24813 plugins: add support for GstCaps features.
24814 Move VA video buffer memory from "video/x-surface,type=vaapi" format,
24815 as expressed in caps, to the more standard use of caps features. i.e.
24816 add "memory:VASurface" feature attribute to the associated caps.
24817 https://bugzilla.gnome.org/show_bug.cgi?id=703271
24818 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24820 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24822 * gst/vaapi/gstvaapidecode.c:
24823 * gst/vaapi/gstvaapisink.c:
24824 plugins: improve ::query() debugging messages.
24825 Fix gst_vaapidecode_query() to correctly display the query type name,
24826 instead of randomly displaying that we shared the underlying display.
24827 Also add debug info for the GstVaapiSink::query() handler, i.e. the
24828 supplied query type name actually.
24829 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24831 2013-07-12 12:58:57 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24833 * gst/vaapi/gstvaapidecode.c:
24834 * gst/vaapi/gstvaapisink.c:
24835 plugins: add support for GstContext API.
24836 Add support for the new GstContext API from GStreamer 1.2.x.
24837 - implement the GstElement::set_context() hook ;
24838 - reply to the `context' query from downstream elements.
24839 https://bugzilla.gnome.org/show_bug.cgi?id=703235
24840 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24842 2013-05-22 12:07:52 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24844 * gst/vaapi/Makefile.am:
24845 * gst/vaapi/gstvaapipluginutil.c:
24846 * gst/vaapi/gstvaapivideocontext.c:
24847 * gst/vaapi/gstvaapivideocontext.h:
24848 plugins: add compat layer for GstVideoContext.
24849 Add thin compatibility layer for the deprecated GstVideoContext API.
24850 For GStreamer API >= 1.2, this involves the following two functions:
24851 - gst_vaapi_video_context_prepare(): queries if a context is already
24852 set in the pipeline ;
24853 - gst_vaapi_video_context_propagate(): propagates the newly-created
24854 context to the rest of the pipeline.
24855 https://bugzilla.gnome.org/show_bug.cgi?id=703235
24856 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24858 2013-05-21 12:42:39 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24861 * gst/vaapi/Makefile.am:
24862 * gst/vaapi/gstvaapi.c:
24863 * gst/vaapi/gstvaapidecode.c:
24864 * gst/vaapi/gstvaapipluginutil.c:
24865 * gst/vaapi/gstvaapisink.c:
24866 * gst/vaapi/gstvaapivideobuffer.c:
24867 plugins: initial port to GStreamer 1.2.
24868 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
24869 is rather minimalistic so that to test the basic functionality.
24870 Disable vaapipostproc plugin for now as further polishing is needed.
24871 Also disable GstVideoContext interface support since this API is now
24872 gone in 1.2.x. This is preparatory work for GstContext support.
24873 https://bugzilla.gnome.org/show_bug.cgi?id=703235
24874 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24876 2013-09-24 16:21:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24878 * tests/simple-decoder.c:
24879 tests: simple-decoder: fix for non-X11 backends.
24880 Don't try to create pixmaps if we have not requested that feature. This
24881 fixes execution for non-X11 backends, and most specifically DRM video
24884 2013-09-24 16:22:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24886 * ext/codecparsers:
24887 codecparsers: update to gst-vaapi-branch commit b33bd32.
24888 b33bd32 jpeg: fix and optimize scan for next marker code
24890 2013-09-23 19:14:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24892 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24893 jpeg: fix calculation of MCU count.
24894 Fix calculation of MCU count for image sizes that are not a multiple
24895 of 8 pixels in either dimension, but also for non-common sampling
24896 factors like 4:2:2 in non-interleaved mode.
24898 2013-09-23 16:49:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24900 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24901 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24902 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24903 jpeg: add support for multiscan images.
24904 Add support for images with multiple scans per frame. The Huffman table
24905 can be updated before SOS, and thus possibly requiring multiple uploads
24906 of Huffman tables to the VA driver. So, the latter must be able to cope
24907 with multiple VA buffers of type 'huffman-table' and with the correct
24910 2013-09-23 11:41:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24912 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24913 jpeg: improve robustness when packets are missing.
24914 Improve robustness when some expected packets where not received yet
24915 or that were not correctly decoded. For example, don't try to decode
24916 a picture if there was no valid frame headers.
24918 2013-09-20 16:46:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24920 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24921 jpeg: minor clean-ups.
24922 Improve debugging and error messages. Rename a few variables to fit the
24923 existing naming conventions. Change some fatal asserts to non-fatal
24926 2013-09-20 10:12:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24928 * gst-libs/gst/vaapi/gstvaapidecoder.c:
24929 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24930 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24931 jpeg: rework and optimize parser.
24932 Split the input buffer data into decoder units that represent a JPEG
24933 segment. Handle scan decoder unit specifically so that it can include
24934 both the scan header (SOS) but also any other ECS or RSTi segment.
24935 That way, we parse the input buffer stream only once at the gst-vaapi
24936 level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
24937 stream into frames SOI .. EOI and (ii) in decode_buffer() to further
24938 determine segment boundaries and decode them.
24939 In practice, this is a +15 to +25% performance improvement.
24941 2013-09-17 14:29:54 +0800 Junfeng Xu <jun.feng.xu@intel.com>
24943 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24944 jpeg: handle comment segments.
24945 Fix decode_buffer() function to gracefully skip comment (COM) segments.
24946 This fixes decoding of streams generated by certain cameras, e.g. like
24947 the Logitech Pro C920.
24948 https://bugzilla.gnome.org/show_bug.cgi?id=708208
24949 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
24951 2013-09-18 17:59:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24953 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24954 jpeg: fix determination of image bounds.
24955 Look for the exact image bounds characterised by the <SOI> and <EOI>
24956 markers. Use the gst_jpeg_parse() codec parser utility function to
24957 optimize the lookup for the next marker segment.
24958 https://bugzilla.gnome.org/show_bug.cgi?id=707447
24960 2013-09-10 15:46:09 +0800 Junfeng Xu <jun.feng.xu@intel.com>
24962 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24963 jpeg: fix calculation of offset to next marker segment.
24964 Fix calculation of the offset to the next marker segment since the
24965 correction of the codecparser part to match the API specification.
24966 i.e. the GstJpegMarkerSegment.size field represents the size in bytes
24967 of the segment minus any marker prefix.
24968 https://bugzilla.gnome.org/show_bug.cgi?id=707447
24969 Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
24971 2013-09-20 18:30:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24973 * ext/codecparsers:
24974 codecparsers: update to gst-vaapi-branch commit 23c7dde.
24975 23c7dde jpeg: fix calculation of segment size
24977 2013-08-31 16:00:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24980 Bump version for development.
24982 2013-08-31 15:47:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24988 2013-08-31 15:46:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24993 2013-08-15 17:59:37 +0800 Wind Yuan <feng.yuan@intel.com>
24996 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24997 configure: fix detection of VA/JPEG decoding API.
24998 Fix detection of VA/JPEG decoding API with non-standard libva packages.
24999 More precisely, some packages were shipping with a <va/va.h> header that
25000 did not include <va/va_dec_jpeg.h>.
25001 https://bugzilla.gnome.org/show_bug.cgi?id=706055
25002 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25004 2013-04-18 19:49:42 +0800 Zhao Halley <halley.zhao@intel.com>
25006 * gst/vaapi/gstvaapisink.c:
25007 vaapisink: ensure the uploader is setup for upstream allocated buffers.
25008 In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
25009 is setup in case upstream elements allocate buffers themselves without
25010 honouring our GstVaapiSink::bufer_alloc() hook.
25011 In particular, this fixes support for OGG video streams with WebKit.
25012 https://bugzilla.gnome.org/show_bug.cgi?id=703934
25013 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25015 2013-08-29 19:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25017 * gst/vaapi/gstvaapisink.c:
25018 vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
25019 Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
25022 2013-08-29 18:34:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25024 * gst/vaapi/gstvaapisink.c:
25025 * gst/vaapi/gstvaapisink.h:
25026 vaapisink: handle raw buffers not created from VA video buffer pool.
25027 Handle raw video buffers that were not created from a VA video buffer
25028 pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
25029 builds instead of the GstVaapiUploader.
25030 https://bugs.freedesktop.org/show_bug.cgi?id=55818
25032 2013-08-29 19:33:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25034 * gst/vaapi/gstvaapidecode.c:
25035 vaapidecode: remove extraneous size information from allowed caps.
25036 Fix _getcaps() implementation to not report codecs with size information
25037 filled in the returned caps. That's totally useless nowadays. Ideally,
25038 this is a hint to insert a video parser element, thus allowing future
25039 optimizations, but this is not a strict requirement for gstreamer-vaapi,
25040 which is able to parse the elementary bitstreams itself.
25041 https://bugzilla.gnome.org/show_bug.cgi?id=704734
25043 2013-07-30 14:05:39 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25045 * gst/vaapi/gstvaapidecode.c:
25046 * gst/vaapi/gstvaapidecode.h:
25047 vaapidecode: submit the last frame from output adapter to decoder.
25048 If there is no frame delimiter at the end of the stream, e.g. no
25049 end-of-stream or end-of-sequence marker, and that the current frame
25050 was fully parsed correctly, then assume that last frame is complete
25051 and submit it to the decoder.
25052 https://bugzilla.gnome.org/show_bug.cgi?id=705123
25053 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25054 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25056 2013-08-29 11:55:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25058 * gst/vaapi/gstvaapidecode.c:
25059 * gst/vaapi/gstvaapidecode.h:
25060 vaapidecode: push all decoded frames from within the task.
25061 Make sure to push all decoded frames from the task so that the unlying
25062 VA surfaces could all be rendered from the same thread.
25064 2013-08-27 18:24:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25066 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25067 wayland: render the raw surface if VPP failed.
25068 As a last resort, if video processing capabilities (VPP) are not available,
25069 or they did not produce anything conclusive enough, then try to fallback to
25070 the original rendering code path whereby the whole VA surface is rendered
25071 as is, no matter of video cropping or deinterlacing requests.
25072 Note: under those conditions, the visual outcome won't be correct but at
25073 least, something gets displayed instead of bailing out.
25075 2013-08-27 18:20:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25077 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25078 wayland: add supporting for video processing.
25079 Try to use VA/VPP processing capabilities to handle video cropping and
25080 additional rendering flags that may not be directly supported by the
25081 underlying hardware when exposing a suitable Wayland buffer for the
25082 supplied VA surface. e.g. deinterlacing, different color primaries than
25085 2013-08-27 16:26:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25087 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25088 wayland: add new frame redraw infrastructure.
25089 Update the frame redraw infrastructure with a new FrameState stucture
25090 holds all the necessary information used to display the next pending
25092 While we are at it, delay the sync operation down to when it is actually
25093 needed. That way, we keep performing additional tasks meanwhile.
25095 2013-08-27 18:06:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25097 * docs/reference/libs/libs-sections.txt:
25098 * gst-libs/gst/vaapi/gstvaapifilter.c:
25099 * gst-libs/gst/vaapi/gstvaapifilter.h:
25100 filter: allow specification of render target regions.
25101 Add support for rendering the source surface to a particular region within
25102 the supplied target surface. The default background color is black.
25104 2013-08-26 17:14:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25106 * gst/vaapi/gstvaapivideobuffer.c:
25107 decode: fix creation of GLX video buffers for GStreamer 0.10.
25108 Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
25109 and (ii) to correctly extract the GstSurfaceConverter from the video buffer
25111 This fixes support for cluttersink with GStreamer 0.10 builds.
25113 2013-08-26 16:15:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25115 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25116 mpeg2: disable video cropping as picture_display_extension() is missing.
25117 Disable video cropping in MPEG-2 codec because it is partially implemented
25118 and actually because nobody implements it that way, and the standard spec
25119 does not specify the display process either anyway.
25120 Most notably, there are two possible use cases for sequence_display_extension()
25121 horizontal_display_size & vertical_display_size: (i) guesstimating the
25122 pixel-aspect-ratio, or (ii) implement some kind of span & scan process
25123 in conjunction with picture_display_extension() information.
25124 https://bugzilla.gnome.org/show_bug.cgi?id=704848
25126 2013-08-16 16:58:58 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
25128 * gst/vaapi/gstvaapisink.c:
25129 * gst/vaapi/gstvaapisink.h:
25130 vaapisink: allow scaling to ignore aspect ratio.
25131 Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
25132 which allows you to say that you don't want the sink to respect aspect
25133 ratio. Add the same property to vaapisink.
25134 http://lists.freedesktop.org/archives/libva/2012-September/001298.html
25135 Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
25137 2013-05-14 15:19:04 +0800 Wind Yuan <feng.yuan@intel.com>
25139 * gst/vaapi/gstvaapisink.c:
25140 vaapisink: fix memory leak of GstVaapiUploader instance.
25141 Make sure gst_vaapisink_ensure_uploader() checks for the existence
25142 of a former GstVaapiUploader instance prior to forcibly creating a
25144 https://bugzilla.gnome.org/show_bug.cgi?id=703980
25146 2013-07-31 16:49:20 +0800 Guangxin.Xu <Guangxin.Xu@intel.com>
25148 * gst/vaapi/gstvaapisink.c:
25149 vaapisink: fix get_caps() implementation for GStreamer 1.0.
25150 Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
25151 by honouring the filter caps argument. More precisely, this fixes the
25152 following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
25153 https://bugzilla.gnome.org/show_bug.cgi?id=705192
25154 Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25155 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25157 2013-08-26 11:31:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25159 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25160 mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
25161 This fixes the following issue:
25162 CC libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
25163 gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
25164 'GstVaapiDecoderMpeg4Class'
25165 gstvaapidecoder_mpeg4.c:44: note: previous declaration of
25166 'GstVaapiDecoderMpeg4Class' was here
25167 make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
25168 make[5]: Leaving directory
25169 `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
25170 https://bugzilla.gnome.org/show_bug.cgi?id=705148
25172 2013-07-30 15:59:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25174 * tests/test-filter.c:
25175 tests: filter: add support for deinterlacing.
25176 Add --deinterlace option to enable deinterlacing through explicit VA/VPP
25177 deinterlacing filter. However, if --deinterlace option is not set but the
25178 --deinterlace-flags option is set with "top-field-first", then the very
25179 basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
25181 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25183 * tests/test-filter.c:
25184 tests: filter: add support for denoising and sharpening.
25185 Add --denoise option to enable noise reduction with the level specified
25186 as the option value (float). Likewise, add --sharpen option to enable
25188 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25190 2013-07-24 14:31:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25192 * tests/test-filter.c:
25193 tests: filter: add support for frame cropping.
25194 Add support for frame cropping through the --crop-rect|-c argument.
25195 The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
25196 or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
25198 2013-07-23 18:00:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25200 * tests/test-filter.c:
25201 tests: filter: dump supported operations and formats.
25203 2013-07-08 16:54:55 +0800 Zhao Halley <halley.zhao@intel.com>
25205 * tests/Makefile.am:
25206 * tests/test-filter.c:
25207 tests: add initial test for video processing.
25208 Add minimal test case for video processing: scaling and color format
25210 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25212 2013-07-29 09:23:50 +0800 Zhao Halley <halley.zhao@intel.com>
25214 * docs/reference/libs/libs-sections.txt:
25215 * gst-libs/gst/vaapi/gstvaapifilter.c:
25216 * gst-libs/gst/vaapi/gstvaapifilter.h:
25217 * gst-libs/gst/vaapi/gstvaapiutils.c:
25218 * gst-libs/gst/vaapi/gstvaapiutils.h:
25219 * gst/vaapi/gstvaapipostproc.c:
25220 * gst/vaapi/gstvaapipostproc.h:
25221 filter: add initial support for deinterlacing.
25222 Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
25223 the selected field from the input surface is kept for the target surface.
25224 Setting gst_vaapi_filter_set_deinterlacing() method argument to
25225 GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
25226 Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
25227 to libgstvaapi core library.
25228 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25230 2013-07-17 17:40:41 +0800 Zhao Halley <halley.zhao@intel.com>
25232 * docs/reference/libs/libs-sections.txt:
25233 * gst-libs/gst/vaapi/gstvaapifilter.c:
25234 * gst-libs/gst/vaapi/gstvaapifilter.h:
25235 filter: add support for color balance adjustment.
25236 Add ProcAmp (color balance) adjustments for hue, saturation, brightness
25237 and contrast. The respective range for each filter shall be the same as
25238 for the VA display attributes.
25239 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25241 2013-07-17 17:37:16 +0800 Zhao Halley <halley.zhao@intel.com>
25243 * docs/reference/libs/libs-sections.txt:
25244 * gst-libs/gst/vaapi/gstvaapifilter.c:
25245 * gst-libs/gst/vaapi/gstvaapifilter.h:
25246 filter: add support for sharpening.
25247 Sharpening is configured with a float value. The supported range is
25248 -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
25250 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25252 2013-07-17 17:29:41 +0800 Zhao Halley <halley.zhao@intel.com>
25254 * docs/reference/libs/libs-sections.txt:
25255 * gst-libs/gst/vaapi/gstvaapifilter.c:
25256 * gst-libs/gst/vaapi/gstvaapifilter.h:
25257 filter: add support for denoising.
25258 Noise reduction is configured with a float value. The supported range
25259 is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
25261 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25263 2013-07-24 14:22:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25265 * docs/reference/libs/libs-sections.txt:
25266 * gst-libs/gst/vaapi/gstvaapifilter.c:
25267 * gst-libs/gst/vaapi/gstvaapifilter.h:
25268 filter: add support for frame cropping.
25269 Frame cropping is defined with a GstVaapiRectangle value. The default
25270 behaviour is to treat the source surface as a whole
25272 2013-07-25 13:55:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25274 * gst-libs/gst/vaapi/gstvaapifilter.c:
25275 filter: add helper functions.
25276 Add helper functions to ensure an operation VA buffer is allocated to
25277 the right size; that filter caps get parsed and assigned to the right
25278 operation too; and that float parameters are correctly scaled to fit
25279 the reported range from the VA driver.
25281 2013-07-23 15:52:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25284 * docs/reference/libs/libs-docs.xml.in:
25285 * docs/reference/libs/libs-sections.txt:
25286 * gst-libs/gst/vaapi/Makefile.am:
25287 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25288 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25289 * gst-libs/gst/vaapi/gstvaapifilter.c:
25290 * gst-libs/gst/vaapi/gstvaapifilter.h:
25291 Add initial infrastructure for video processing.
25292 Add initial API for video processing: only scaling and color format
25293 conversion operations are supported.
25295 2013-07-24 11:53:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25297 * gst-libs/gst/vaapi/video-format.c:
25298 * gst-libs/gst/vaapi/video-format.h:
25299 libs: add gst_vaapi_video_format_from_string() helper.
25300 Add gst_vaapi_video_format_from_string() helper function to convert from
25301 a video format string representation to a suitable GstVideoFormat. This
25302 is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
25303 builds, and a proper iteration over all GstVideoFormat string representations
25304 otherwise for earlier GStreamer 0.10.x builds.
25306 2013-07-24 11:37:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25308 * gst-libs/gst/vaapi/video-format.c:
25309 * gst-libs/gst/vaapi/video-format.h:
25310 libs: add gst_vaapi_video_format_from_va_fourcc() helper.
25311 Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
25312 VA fourcc value to a suitable GstVideoFormat.
25314 2013-07-24 11:41:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25316 * gst-libs/gst/vaapi/gstvaapivalue.c:
25317 * gst-libs/gst/vaapi/gstvaapivalue.h:
25318 libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
25319 Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
25320 structures as a standard GType. This could be useful to have them
25321 described as a GValue later on.
25323 2013-07-26 13:57:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25325 * docs/reference/libs/libs-docs.xml.in:
25326 * docs/reference/libs/libs-sections.txt:
25327 * gst-libs/gst/vaapi/Makefile.am:
25328 * gst-libs/gst/vaapi/gstvaapicontext.h:
25329 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
25330 libs: drop some public APIs.
25331 Don't expose GstVaapiContext APIs and make them totally private to
25332 libgstvaapi core library. That API would also tend to disappear in
25333 a future revision. Likewise, don't expose GstVaapiDisplayCache API
25334 but keep symbols visible so that the various render backends could
25335 share a common display cache implementation in libgstvaapi.
25336 Try to clean-up the documentation from any stale entry too.
25338 2013-08-23 18:35:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25342 tests: image: allow creation of images with interleaved patterns.
25343 Add image_generate_full() function to create interleaved color rectangles.
25344 If flags is zero, the whole frame is generated with a unique pattern. If
25345 flags is non-zero, then each field is handled individually.
25347 2013-08-23 16:25:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25350 tests: image: fix conversion from RGB to YUV.
25351 Fix RGB to YUV conversion to preserve full data range.
25353 2013-07-26 13:12:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25356 tests: image: try to upload images through vaDeriveImage() too.
25357 On some platforms, vaPutImage() would fail even if it does not involve
25358 color format conversion or scaling, whereas copying raw pixels through
25359 vaDeriveImage() could work instead.
25361 2013-07-26 10:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25364 tests: image: add support for packed YUV formats.
25365 Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
25367 2013-07-25 18:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25370 tests: image: fix generation of I420/YV12 images.
25371 U/V planes were reversed, thus producing invalid images.
25373 2013-07-24 13:55:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25376 tests: image: fix string representation for GstVideoFormat.
25378 2013-07-26 12:57:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25380 * docs/reference/libs/libs-sections.txt:
25381 * gst-libs/gst/vaapi/Makefile.am:
25382 * gst-libs/gst/vaapi/gstvaapiimage.c:
25383 * gst-libs/gst/vaapi/gstvaapiimage.h:
25384 * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
25385 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25386 * gst-libs/gst/vaapi/gstvaapisurface.c:
25387 image: clean image API up.
25388 Don't expose functions that reference a GstVaapiImageRaw, those are
25389 meant to be internal only for implementing subpictures sync. Also add
25390 a few private definitions to avoid functions calls for retrieving
25391 image size and format information.
25393 2013-07-26 11:43:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25395 * docs/reference/libs/libs-sections.txt:
25396 * gst-libs/gst/vaapi/gstvaapiimage.c:
25397 * gst-libs/gst/vaapi/gstvaapiimage.h:
25398 image: add gst_vaapi_image_copy() helper.
25399 Add gst_vaapi_image_copy() helper function to copy images of same format
25402 2013-07-22 14:53:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25404 * gst/vaapi/gstvaapivideoconverter_x11.c:
25405 plugins: handle video cropping in X11 pixmap converter.
25406 Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
25407 we could decode from the stream.
25409 2013-07-22 11:58:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25411 * gst/vaapi/Makefile.am:
25412 * gst/vaapi/gstvaapivideobuffer.c:
25413 * gst/vaapi/gstvaapivideoconverter_glx.c:
25414 * gst/vaapi/gstvaapivideoconverter_x11.c:
25415 * gst/vaapi/gstvaapivideoconverter_x11.h:
25416 plugins: add support for "x11-pixmap" video converter type.
25417 Install a new video converter that supports X11 pixmap targets for X11
25418 backends only, or make the GLX converter creation function chain up to
25419 the X11 converter whenever requested.
25421 2013-07-22 09:36:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25423 * tests/simple-decoder.c:
25424 tests: simple-decoder: add support for pixmap API.
25425 Add support for the new render-to-pixmap API. Avoid flickering on
25426 platforms supporting video overlay by keeping up to 2 intermediate
25429 2013-07-22 09:12:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25431 * tests/simple-decoder.c:
25432 tests: simple-decoder: add support for video cropping.
25433 Handle video cropping information attached to a VA surface proxy.
25435 2013-07-22 09:03:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25439 * tests/test-decode.c:
25440 tests: add support for render-to-pixmap.
25441 Add --pixmap option to test-decode so that to allow copies of VA
25442 surface to an intermediate pixmap and rendering from that pixmap.
25443 Only X11 backends are supported for now.
25445 2013-07-22 09:00:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25448 * gst-libs/gst/vaapi/Makefile.am:
25449 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25450 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25451 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25452 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
25453 x11: implement pixmap rendering with RENDER extension.
25454 Use hardware accelerated XRenderComposite() function, from the RENDER
25455 extension, to blit a pixmap to screen. Besides, this can also support
25456 cropping and scaling.
25458 2013-07-19 15:05:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25460 * docs/reference/libs/libs-docs.xml.in:
25461 * docs/reference/libs/libs-sections.txt:
25462 * gst-libs/gst/vaapi/Makefile.am:
25463 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25464 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25465 * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
25466 * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
25467 x11: implement pixmap API.
25468 Implement the new render-to-pixmap API. The only supported pixmap format
25469 that will work is xRGB, with native byte ordering. Others might work but
25470 they were not tested.
25472 2013-07-22 10:10:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25474 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25475 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
25476 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25477 x11: update x11_get_geometry() helper function with depth output.
25478 Allow x11_get_geometry() utility function to also return the depth
25479 assigned to the X drawable.
25481 2013-07-22 10:00:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25483 * docs/reference/libs/libs-docs.xml.in:
25484 * docs/reference/libs/libs-sections.txt:
25485 * gst-libs/gst/vaapi/Makefile.am:
25486 * gst-libs/gst/vaapi/gstvaapipixmap.c:
25487 * gst-libs/gst/vaapi/gstvaapipixmap.h:
25488 * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
25489 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25490 * gst-libs/gst/vaapi/gstvaapiwindow.h:
25491 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
25492 Add initial Pixmap API.
25493 Add API to transfer VA urfaces to native pixmaps. Also add an API to
25494 render a native pixmap, for completeness. In general, rendering to
25495 pixmap would only be useful to certain VA drivers and use cases on
25496 X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
25499 2013-07-22 15:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25501 * docs/reference/libs/libs-sections.txt:
25502 * gst-libs/gst/vaapi/gstvaapiimage.c:
25503 * gst-libs/gst/vaapi/gstvaapisurface.c:
25504 * gst-libs/gst/vaapi/video-format.c:
25505 * gst-libs/gst/vaapi/video-format.h:
25506 libs: add and expose gst_vaapi_video_format_to_string() helper.
25507 This is just a wrapper over gst_video_format_to_string() for older
25508 GStreamer 0.10 builds.
25510 2013-07-18 02:54:54 -0300 Emilio López <emilio@elopez.com.ar>
25512 * gst/vaapi/gstvaapipluginutil.c:
25513 plugins: fix display type comparison in gst_vaapi_create_display().
25514 After the code got moved to create the gst_vaapi_create_display() helper,
25515 this comparison was not updated to dereference the newly-created
25516 pointer, so the code was comparing the pointer itself to the type, and
25517 therefore failing to retrieve the VA display.
25518 This fixes the following error (and gets gst-vaapi decoding again):
25519 ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
25520 https://bugzilla.gnome.org/show_bug.cgi?id=704410
25521 Signed-off-by: Emilio López <emilio@elopez.com.ar>
25523 2013-07-17 11:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25526 Bump version for development.
25528 2013-07-15 17:49:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25530 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25531 mpeg2: don't output dummy pictures.
25532 Mark dummy pictures as output already so that we don't try to submit
25533 them to the upper layer since this is purely internal / temporary
25534 picture for helping the decoder.
25536 2013-07-15 17:43:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25538 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25539 decoder: dispose GstVideoCodecFrame earlier.
25540 Once the picture was output, it is no longer necessary to keep an extra
25541 reference to the underlying GstVideoCodecFrame. So, we can release it
25542 earlier, and maybe subsequently release the associate surface proxy
25545 2013-07-15 14:47:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25551 2013-07-15 14:42:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25553 * docs/reference/libs/libs-sections.txt:
25554 * gst-libs/gst/vaapi/Makefile.am:
25555 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25556 * gst-libs/gst/vaapi/gstvaapiimage.c:
25557 * gst-libs/gst/vaapi/gstvaapisurface.c:
25558 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25559 * gst-libs/gst/vaapi/video-format.c:
25560 * gst-libs/gst/vaapi/video-format.h:
25561 * gst/vaapi/gstvaapidownload.c:
25562 * gst/vaapi/gstvaapiuploader.c:
25564 * tests/test-display.c:
25565 Fix new video format API.
25566 Fix new internal video format API, based on GstVideoFormat, to not
25567 clobber with system symbols. So replace the gst_video_format_* prefix
25568 with gst_vaapi_video_format_ prefix, even if the format type remains
25571 2013-07-15 14:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25574 Bump library major version.
25575 Bump the library major version due to API/ABI changes that occurred in
25576 the imaging API. In particular, GstVaapiImageFormat type was replaced
25577 with the standard GstVideoFormat type. All dependent APIs were updated
25578 to match this change.
25580 2013-07-15 13:44:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25585 2013-06-11 15:11:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25587 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25588 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25589 decoder: fix memory leak when processing interlaced pictures.
25590 Fix memory leak when processing interlaced pictures and that occurs
25591 because the first field, represented as a GstVideoCodecFrame, never
25592 gets released. i.e. when the picture is completed, this is generally
25593 the case when the second field is successfully decoded, we need to
25594 propagate the GstVideoCodecFrame of the first field to the original
25595 GstVideoDecoder so that it could reclaim memory.
25596 Otherwise, we keep accumulating the first fields into GstVideoDecoder
25597 private frames list until the end-of-stream is reached. The frames
25598 are eventually released there, but too late, i.e. too much memory
25599 may have been consumed.
25600 https://bugzilla.gnome.org/show_bug.cgi?id=701257
25602 2013-07-15 11:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25604 * gst/vaapi/gstvaapipluginutil.c:
25605 plugins: simlpify gst_vaapi_create_display() helper.
25606 Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
25607 performs the necessary validation checks for the underlying VA display
25608 prior to returning to the caller. So, if an error occurred, then NULL is
25609 really returned in that case.
25611 2013-05-24 05:04:01 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25613 * gst/vaapi/gstvaapipluginutil.c:
25614 plugins: add gst_vaapi_create_display() helper.
25615 https://bugzilla.gnome.org/show_bug.cgi?id=703235
25616 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25618 2013-07-12 17:47:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25620 * gst/vaapi/gstvaapivideobufferpool.c:
25621 plugins: don't reallocate pool allocator for the same caps.
25622 If the video buffer pool config doesn't have new caps, then it's not
25623 necessary to reinstantiate the allocator. That could be a costly
25624 operation as we could do some extra heavy checking in there.
25626 2013-07-12 17:14:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25628 * gst/vaapi/gstvaapivideomemory.c:
25629 plugins: fix ref counting of GstVaapiVideoMemory allocator.
25630 Fix reference counting issue whereby gst_memory_init() does not hold
25631 an extra reference to the GstAllocator. So, there could be situations
25632 where the last instance of GstVaapiVideoAllocator gets released before
25633 a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
25635 2013-07-12 15:15:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25637 * gst/vaapi/gstvaapiuploader.c:
25638 vaapiupload: use implicit color conversion to NV12.
25639 Always perform conversion of sources buffers to NV12 since this is
25640 the way we tested for this capability in ensure_allowed_caps(). This
25641 also saves memory bandwidth for further rendering. However, this may
25642 not preserve quality since the YUV buffers are down-sampled to 4:2:0.
25644 2013-07-12 15:01:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25646 * gst-libs/gst/vaapi/gstvaapivideopool.c:
25647 pool: fix deallocation of video pools.
25648 The queue of free objects to used was deallocated with g_queue_free_full().
25649 However, this convenience function shall only be used if the original queue
25650 was allocated with g_queue_new(). This caused memory corruption, eventually
25651 leading to a crash.
25652 The correct solution is to pair the g_queue_init() with the corresponding
25653 g_queue_clear(), while iterating over all free objects to deallocate them.
25655 2013-03-13 17:44:52 +0800 Wind Yuan <feng.yuan@intel.com>
25657 * gst/vaapi/gstvaapidownload.c:
25658 vaapidownload: fix src caps format error.
25659 This fixes direct linking of vaapidownload element to xvimagesink with
25660 VA drivers supporting vaGetImage() from the native VA surface format to
25661 a different VA image format. i.e. color conversion during download.
25662 http://bugzilla.gnome.org/show_bug.cgi?id=703937
25663 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25665 2013-07-11 18:26:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25667 * gst/vaapi/gstvaapidownload.c:
25668 vaapidownload: fix debug string for image formats.
25669 The image is now expressed as a standard GstVideoFormat, which is not
25670 a FOURCC but rather a regular enum value.
25671 This is a regression introduced in commit 09397fa.
25673 2013-04-24 10:39:03 +0800 Wind Yuan <feng.yuan@intel.com>
25675 * gst-libs/gst/vaapi/gstvaapiimage.c:
25676 image: add support for raw YUY2/UYVY image copies.
25677 Implement raw image copies for YUY2 format. Add support for UYVY format
25678 too, with the same copy function as for YUY2. Even though components
25679 ordering differs, copying line strides is essentially the same.
25680 https://bugzilla.gnome.org/show_bug.cgi?id=703939
25681 https://bugzilla.gnome.org/show_bug.cgi?id=703940
25682 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25684 2013-07-10 15:15:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25686 * gst/vaapi/gstvaapiuploader.c:
25687 plugins: clean-up video uploader helper.
25688 Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
25689 were already negotiated beforehand, and they are not used from the
25690 buffer in upstream elements.
25691 Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
25692 represented as a GstVideoInfo.
25694 2013-07-10 15:03:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25696 * gst/vaapi/gstvaapiuploader.c:
25697 plugins: use GstVideoInfo in video uploader helper.
25699 2013-07-10 10:34:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25701 * gst/vaapi/gstvaapivideomemory.c:
25702 plugins: allow creation of VA surfaces with explicit pixel format.
25703 Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
25704 with an explicit pixel format. This allows for direct rendering to
25705 VA surface memory from a software decoder.
25707 2013-07-10 14:20:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25709 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25710 surface: fix surface pool creation with an explicit pixel format.
25711 Fix creation of surface pool objects to honour explicit pixel format
25712 specification. If this operation is not supported, then fallback to
25713 the older interface with chroma format.
25715 2013-07-10 13:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25717 * gst-libs/gst/vaapi/gstvaapisurface.c:
25718 surface: try to determine the underlying VA surface format.
25719 If a VA surface was allocated with the chroma-format interface, try to
25720 determine the underlying pixel format on gst_vaapi_surface_get_format(),
25721 or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
25723 2013-07-09 19:08:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25725 * docs/reference/libs/libs-sections.txt:
25726 * gst-libs/gst/vaapi/gstvaapisurface.c:
25727 * gst-libs/gst/vaapi/gstvaapisurface.h:
25728 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
25729 surface: allow creation with explicit pixel format.
25730 Make it possible to create VA surfaces with a specific pixel format.
25731 This is a new capability brought in by VA-API >= 0.34.0. If that
25732 capability is not built-in (e.g. using VA-API < 0.34.0), then
25733 gst_vaapi_surface_new_with_format() will return NULL.
25735 2013-07-10 09:48:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25737 * docs/reference/libs/libs-sections.txt:
25738 * gst-libs/gst/vaapi/video-format.c:
25739 * gst-libs/gst/vaapi/video-format.h:
25740 surface: add helper function to get chroma type from GstVideoFormat.
25741 Add gst_video_format_get_chroma_type() helper function to determine
25742 the GstVaapiChromaType from a standard GStreamer video format. It is
25743 possible to reconstruct that from GstVideoFormatInfo but it is much
25744 simpler (and faster?) to use the local GstVideoFormatMap table.
25746 2013-07-09 19:13:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25748 * gst-libs/gst/vaapi/gstvaapisurface.c:
25749 * gst-libs/gst/vaapi/gstvaapisurface.h:
25750 * gst-libs/gst/vaapi/gstvaapiutils.c:
25751 * gst-libs/gst/vaapi/gstvaapiutils.h:
25752 surface: add new chroma formats.
25753 Add new chroma formats available with VA-API >= 0.34.0. In particular,
25754 this includes "RGB" chroma formats, and more YUV subsampled formats.
25755 Also add a new from_GstVaapiChromaType() helper function to convert
25756 libgstvaapi chroma type to VA chroma format.
25758 2013-07-10 13:32:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25760 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25761 pool: fix image pool to check for the video format to use.
25762 Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
25763 image pool object, only if the underlying VA display does support the
25764 requested VA image format.
25766 2013-07-10 13:07:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25768 * gst-libs/gst/vaapi/gstvaapicontext.c:
25769 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25770 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
25771 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25772 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
25773 * gst-libs/gst/vaapi/gstvaapivideopool.h:
25774 * gst/vaapi/gstvaapidownload.c:
25775 * gst/vaapi/gstvaapiuploader.c:
25776 * tests/Makefile.am:
25777 * tests/test-surfaces.c:
25778 Use GstVideoInfo for video pools.
25779 Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
25780 structures instead. Those are smaller, and allows for streamlining
25783 2013-07-09 18:03:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25785 * gst-libs/gst/vaapi/gstvaapiimage.c:
25786 * gst-libs/gst/vaapi/video-format.c:
25787 Add more video formats.
25788 Add new video format mappings to VA image formats:
25789 - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
25790 - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
25792 2013-07-10 15:52:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25794 * gst-libs/gst/vaapi/gstvaapiimage.c:
25795 image: fix debug message with video format.
25796 Fix debug message string with image format expressed with GstVideoFormat
25797 instead of the obsolete format that turned out to be a fourcc.
25798 This is a regression from git commit e61c5fc.
25800 2013-07-09 15:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25804 * tests/test-display.c:
25805 * tests/test-textures.c:
25806 * tests/test-windows.c:
25807 tests: port to new video format API.
25809 2013-07-09 15:44:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25811 * gst/vaapi/gstvaapidownload.c:
25812 * gst/vaapi/gstvaapiuploader.c:
25813 * gst/vaapi/gstvaapivideomemory.c:
25814 plugins: port to new video format API.
25816 2013-07-09 16:26:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25818 * gst-libs/gst/vaapi/gstvaapiimage.c:
25819 libs: use GstVideoInfo wherever possible.
25820 In particular, use gst_video_info_from_caps() helper function in VA image
25821 for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
25822 gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
25824 2013-07-09 16:38:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25826 * docs/reference/libs/libs-docs.xml.in:
25827 * docs/reference/libs/libs-sections.txt:
25828 * gst-libs/gst/vaapi/Makefile.am:
25829 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
25830 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
25831 libs: drop GstVaapiImageFormat helpers.
25832 Drop GstVaapiImageFormat helpers since everything was moved to the new
25833 GstVideoFormat based API. Don't bother with backwards compatibility and
25834 just bump the library major version afterwards.
25836 2013-07-09 14:03:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25838 * gst-libs/gst/vaapi/gstvaapidisplay.c:
25839 * gst-libs/gst/vaapi/gstvaapidisplay.h:
25840 * gst-libs/gst/vaapi/gstvaapiimage.c:
25841 * gst-libs/gst/vaapi/gstvaapiimage.h:
25842 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25843 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25844 libs: port to new video format API.
25846 2013-07-09 15:29:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25848 * docs/reference/libs/libs-docs.xml.in:
25849 * docs/reference/libs/libs-sections.txt:
25850 * gst-libs/gst/vaapi/Makefile.am:
25851 * gst-libs/gst/vaapi/video-format.c:
25852 * gst-libs/gst/vaapi/video-format.h:
25853 Add new video format API.
25854 Leverage GstVideoFormat utilities from core GStreamer to provide an
25855 adaptation layer to VA image formats.
25857 2013-07-09 11:13:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25862 2013-07-08 18:32:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25864 * gst/vaapi/gstvaapisink.c:
25865 vaapisink: fix creation of GLX texture.
25866 Fix creation of GLX texture, to not depend on the GstCaps video size that
25867 could be wrong, especially in presence of frame cropping. So, use the size
25868 from the source VA surfaces.
25869 An optimization could be to reduce the texture size to the actual visible
25870 size on screen. i.e. scale down the texture size to match the screen dimensions,
25871 while preserving the VA surface aspect ratio. However, some VA drivers don't
25874 2013-02-18 16:28:27 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25876 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25877 mpeg2: add support for video cropping.
25878 If the stream has a sequence_display_extenion, then attach the
25879 display_horizontal/display_vertical dimension as the cropping
25880 rectangle width/height to the GstVaapiPicture.
25881 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25883 2013-02-18 15:05:37 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25885 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
25886 vc1: add support for video cropping.
25887 If the Advanced profile has display_extension fields, then set the display
25888 width/height dimension as cropping rectangle to the GstVaapiPicture.
25889 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25891 2013-02-15 18:50:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25893 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
25894 h264: add support for video cropping.
25895 If the encoded stream has the frame_cropping_flag set, then associate
25896 the cropping rectangle to GstVaapiPicture.
25897 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25899 2013-07-08 17:01:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25903 * tests/test-decode.c:
25904 * tests/test-subpicture.c:
25905 tests: add basic support for video cropping.
25906 Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
25907 instead of a plain GstVaapiSurface. This means that we can now retrieve
25908 the frame cropping rectangle from the surface proxy, along with additional
25909 information if ever needed.
25911 2013-07-08 14:50:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25913 * gst/vaapi/gstvaapidecode.c:
25914 * gst/vaapi/gstvaapisink.c:
25915 * gst/vaapi/gstvaapivideometa.c:
25916 plugins: add support for video cropping.
25917 Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
25918 specific meta information to hold video cropping details. Make the sink
25919 support video cropping in X11 and GLX modes.
25921 2013-02-15 18:24:24 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25923 * gst/vaapi/gstvaapivideometa.c:
25924 * gst/vaapi/gstvaapivideometa.h:
25925 plugins: add helper functions to set the render rectangle.
25926 Some video clips may have a clipping region that needs to propogate to
25927 the renderer. These helper functions make it possible to attach that
25928 clipping region, as a GstVaapiRectangle, the the video meta associated
25930 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25931 signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25933 2013-07-08 14:47:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25935 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25936 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
25937 surfaceproxy: allow for NULL cropping rectangle.
25938 Make it possible associate an empty cropping rectangle to the surface
25939 proxy, thus resetting any cropping rectangle that was previously set.
25940 This allows for returning plain NULL when no cropping rectangle was
25941 initially set up to the surface proxy, or if it was reset to defaults.
25943 2013-07-08 11:41:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25945 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
25946 surfaceproxy: clean-up helper macros.
25947 Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
25948 proxy macro argument to a GstVaapiSurfaceProxy pointer.
25950 2013-07-08 11:43:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25952 * gst-libs/gst/vaapi/gstvaapisurface.c:
25953 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
25954 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25955 * gst-libs/gst/vaapi/gstvaapiwindow.c:
25956 surface: add simple surface info accessors as helper macros.
25957 Add helper macros to retrieve the VA surface information like size
25958 (width, height) or chroma type. This is a micro-optimization to avoid
25959 useless function calls and NULL pointer re-checks in internal routines.
25961 2013-02-15 18:42:12 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25963 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25964 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25965 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
25966 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
25967 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
25968 decoder: add support for video cropping.
25969 Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
25970 cropping information from raw bitstreams to each picture being decoded.
25971 Also add helper function to surface proxy to propagate that information
25972 outside of libgstvaapi. e.g. plug-in elements or standalone applications.
25973 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25974 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25976 2013-07-08 17:30:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25978 * ext/codecparsers:
25979 codecparsers: update to gst-vaapi-branch commit f90de0a.
25980 f90de0a h264: fix calculation of the frame cropping rectangle
25981 535515c h264: parse the cropping rectangle separately
25983 2013-07-05 19:03:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25985 * ext/codecparsers:
25986 codecparsers: update to gst-vaapi-branch commit 0f68a71.
25987 0f68a71 mpeg2: fix video packet header size checks
25989 2013-06-07 20:08:43 +0800 Zhong Cong <congx.zhong@intel.com>
25991 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25992 mpeg2: reset quantization matrices on new sequence headers.
25993 The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
25994 shall be reset to their default values when a Sequence_Header() is
25996 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25998 2013-07-05 15:49:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26001 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26002 mpeg2: cope with latest codecparser changes.
26003 Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
26004 used in individual header parsers. Also use the new slice parsing API.
26006 2013-07-05 17:51:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26008 * ext/codecparsers:
26009 codecparsers: update to gst-vaapi-branch commit dddd182.
26010 dddd182 mpeg2: add slice header parsing API
26011 94e6228 mpeg2: add sequence scalable extension parsing API
26012 531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
26013 4b135d3 h264: fix the return value type for the SEI palyload parsing methods
26015 2013-06-27 12:25:44 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26017 * gst/vaapi/gstvaapisink.c:
26018 vaapisink: expose the raw video formats in static caps template.
26019 Expose all raw video formats in the static caps template since the
26020 vaapisink is supporting raw data. We will get the exact set of formats
26021 supported by the driver dynamically through the _get_caps() routine.
26022 This also fixes an inconsistency wrt. GStreamer 0.10 builds.
26023 https://bugzilla.gnome.org/show_bug.cgi?id=702178
26024 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26026 2013-06-27 13:53:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26028 * gst/vaapi/gstvaapisink.c:
26029 * gst/vaapi/gstvaapisink.h:
26030 vaapisink: add "use-glx" property for OpenGL rendering.
26031 Now that VA/GLX capable buffers are generated by default on X11, thus
26032 depending on a VA/GLX display, we stil want to use vaPutSurface() for
26033 rendering since it is faster.
26034 Anyway, OpenGL rendering in vaapisink was only meant for testing and
26035 enabling "fancy" effects to play with. This has no real value. So,
26036 disable OpenGL rendering by default.
26038 2013-06-06 05:36:03 -0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26040 * gst/vaapi/gstvaapipluginutil.c:
26041 plugins: try to allocate a GLX display first over an X11 one.
26042 If the gstreamer-vaapi plug-in elements are built with GLX support, then
26043 try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
26045 https://bugzilla.gnome.org/show_bug.cgi?id=701742
26047 2013-04-25 17:07:13 +0100 Lionel Landwerlin <llandwerlin@gmail.com>
26050 configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
26051 jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
26052 https://bugzilla.gnome.org/show_bug.cgi?id=698858
26053 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26055 2013-04-27 15:15:49 +0800 Wind Yuan <feng.yuan@intel.com>
26057 * gst-libs/gst/vaapi/gstvaapiimage.c:
26058 image: fix wrong check for rect bounds in copy_image().
26060 2013-06-14 13:41:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26063 Bump version for development.
26065 2013-06-14 11:47:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26071 2013-06-14 11:43:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26076 2013-06-14 11:39:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26079 * gst-libs/gst/codecparsers/Makefile.am:
26080 configure: always build the MPEG-4 parser.
26081 Always build the MPEG-4 parser for now as there are also core fixes
26082 included in the parser that cannot be tested for with API checks.
26084 2013-06-14 11:32:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26087 configure: add --enable-builtin-codecparsers [default="yes"] option.
26088 Add flag to have all codecparsers built-in, thus ensuring that the
26089 resulting binaries have all the necessary bug fixes and this is what
26090 the QA has been testing anyway.
26091 Of course, for a completely up-to-date Linux distribution, you could
26092 also opt for --disable-builtin-codecparsers and use the system ones.
26093 Though, some core fixes could be missing, and those cannot be tested
26094 for with API checks.
26096 2013-06-14 11:14:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26098 * ext/codecparsers:
26099 codecparsers: update to gst-vaapi-branch commit 843ce3e.
26100 843ce3e jpeg: fix default Huffman tables generation.
26101 8655187 mpeg2: fix the pixel-aspect-ratio calculation
26102 21099dc mpeg2: actually store video bitrate values
26103 dd02087 mpeg2: fix picture packet extension size check
26104 25948e9 mpeg2: increase min size for picture coding ext
26105 f1f5a40 ensure the debug category is properly initialized
26107 2013-06-12 14:16:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26109 * debian.upstream/Makefile.am:
26110 debian: fix list of generated files for .deb packaging.
26112 2013-06-12 13:48:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26115 * debian.upstream/Makefile.am:
26116 * debian.upstream/control.in:
26117 debian: fix libgstvaapi -dev package name.
26118 Fix libgstvaapi -dev package name so that to allow installation of both
26119 GStreamer 0.10 and 1.0.x based packages.
26121 2013-06-05 17:42:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26126 2013-05-31 11:09:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26128 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26129 wayland: fix memory leak of display resources.
26131 2013-06-04 07:14:22 +0800 Zhao Halley <halley.zhao@intel.com>
26133 * gst/vaapi/gstvaapisink.c:
26134 vaapisink: fix build without VA/GLX support.
26136 2013-06-05 11:01:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26138 * gst/vaapi/gstvaapivideomemory.c:
26139 * gst/vaapi/gstvaapivideomemory.h:
26140 plugins: allow buffer mappings to GstVaapiSurfaceProxy.
26141 Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
26142 video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
26143 caller. This is the only sensible enough thing to do in this mode as
26144 the underlying surface pixels need to be extracted through an explicit
26145 call to the gst_video_frame_map() function instead.
26146 A possible use-case of this is to implement a "handoff" signal handler
26147 to fakesink or identity element for further processing.
26149 2013-06-03 10:22:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26151 * gst/vaapi/gstvaapivideomemory.c:
26152 plugins: silence check for direct-rendering mode in video memory.
26153 Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
26154 mode support, and not trigger fatal-criticals if either test surface or
26155 image could not be created. Typical case: pixel format mismatch, e.g. NV12
26156 supported by most hardware vs. I420 supported by most software decoders.
26158 2013-06-03 10:06:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26160 * gst/vaapi/gstvaapivideomemory.c:
26161 plugins: improve video memory flags safety checks.
26162 On map, ensure we have GST_MAP_WRITE flags since this is only what we
26163 support for now. Likewise, on unmap, make sure that the VA image is
26164 unmapped for either read or write, while still committing it to the
26165 VA surface if write was requested.
26167 2013-05-30 18:17:07 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26169 * gst-libs/gst/vaapi/gstvaapisurface.c:
26170 surface: fix memory leak through unreleased parent context.
26171 Break the circular references between GstVaapiContext and its children
26172 GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
26173 context, which holds a reference to its VA surfaces, then none of those
26175 How does this impact support for subpictures?
26176 The only situation when the parent context needs to disappear is when
26177 it is replaced with another one because of a resolution change in the
26178 video stream for instance, or a normal destroy. In this case, it does
26179 not really matter to apply subpictures to the peer surfaces since they
26180 are either gone, or those that are left in the pipe can probably bear
26181 a reinstantiation of the subpictures for it.
26182 So, parent_context is set to NULL when the parent context is destroyed,
26183 other VA surfaces can still get subpictures attached to them, individually
26184 not as a whole. i.e. subpictures for surface S1 will be created from
26185 active composition buffers and associated to S1, subpictures for S2 will
26186 be created from the next active composition buffers, etc. We don't try
26187 to cache the subpictures in those cases (pending surfaces until EOS
26188 is reached, or pending surfaces until new surfaces matching new VA context
26189 get to be used instead).
26191 2013-05-27 14:01:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26193 * gst/vaapi/gstvaapisink.c:
26194 vaapisink: fix one-time initialization when display property is set.
26195 Fix gst_vaapisink_ensure_display() to perform one-time initialization
26196 tasks even if the `display' property was explicitly set.
26198 2013-05-27 15:59:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26200 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26201 window: fix GLX window initialization.
26202 Make sure to create the GLX context once the window object has completed
26203 its creation. Since gl_resize() relies on the newly created window size,
26204 then we cannot simply overload the GstVaapiWindowClass::create() hook.
26205 So, we just call into gst_vaapi_window_glx_ensure_context() once the
26206 window object is created in the gst_vaapi_window_glx_new*() functions.
26208 2013-05-27 17:18:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26210 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26211 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26212 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26213 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26214 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26215 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26216 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26217 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26218 * gst-libs/gst/vaapi/gstvaapitexture.c:
26219 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26220 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26221 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26222 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26223 display: validate display types.
26225 2013-05-27 16:13:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26227 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26228 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26229 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26230 display: drop internal NAME_PREFIX, store the real display name.
26231 Always store a valid display name/device path, instead of adding a
26232 particular prefix. i.e. make it simply a strdup(), or "" if it was
26235 2013-05-27 13:17:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26237 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26238 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26239 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26240 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26241 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26242 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26243 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26244 display: make it possible to lookup the display cache by type.
26245 Make it possible to add extra an extra filter to most of display cache
26246 lookup functions so that the GstVaapiDisplay instance can really match
26247 a compatible and existing display by type, instead of relying on extra
26248 string tags (e.g. "X11:" prefix, etc.).
26250 2013-05-24 16:19:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26252 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26253 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26254 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26255 display: cope with new display cache API.
26257 2013-05-24 16:12:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26259 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26260 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26261 display: rework display cache API.
26262 Simplify display cache API, while making it more flexible. We can now create
26263 custom lookup functions with gst_vaapi_display_cache_lookup_custom().
26265 2013-05-24 15:05:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26267 * tests/test-display.c:
26268 tests: improve check for display cache.
26269 Improve check for display cache infrastructure. In particular, for X11 and
26270 GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
26271 from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
26272 shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
26273 already exists will have to generate different VA displays.
26275 2013-05-15 10:33:16 +0800 Zhao Halley <halley.zhao@intel.com>
26277 * gst/vaapi/gstvaapiuploader.c:
26278 uploader: fix memory leak in GStreamer 0.10 builds.
26279 In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
26280 but it exhibited a memory leak because the surface generated for the
26281 GstVaapiVideoMeta totally lost its parent video pool. So, it was not
26282 possible to release that surface back to the parent pool when the meta
26283 gets released, and the memory consumption kept growing.
26284 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26286 2013-05-23 18:56:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26288 * gst/vaapi/gstvaapivideometa.c:
26289 plugins: fix gst_vaapi_video_meta_new_from_pool().
26290 Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
26291 the underlying object type, the gst_vaapi_video_meta_new_from_pool()
26292 was hereby totally broken. Fixed this regression by using the newly
26293 provided gst_vaapi_video_pool_get_object_type() function.
26295 2013-05-23 18:22:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26297 * gst/vaapi/gstvaapiuploader.c:
26298 * gst/vaapi/gstvaapivideomemory.c:
26299 * gst/vaapi/gstvaapivideometa.c:
26300 plugins: cope with GST_VAAPI_IS_xxx() macros removal.
26302 2013-05-23 18:19:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26305 tests: cope with GST_VAAPI_IS_xxx() macros removal.
26307 2013-05-23 18:45:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26309 * docs/reference/libs/libs-sections.txt:
26310 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26311 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26312 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26313 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26314 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26315 libs: add query for GstVaapiVideoPool object types.
26316 Add API to identify the underlying GstVaapiVideoPool object type.
26318 2013-05-23 18:15:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26320 * docs/reference/libs/libs-sections.txt:
26321 * gst-libs/gst/vaapi/gstvaapicontext.c:
26322 * gst-libs/gst/vaapi/gstvaapicontext.h:
26323 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26324 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26325 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26326 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26327 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26328 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26329 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26330 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26331 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26332 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26333 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26334 * gst-libs/gst/vaapi/gstvaapiimage.c:
26335 * gst-libs/gst/vaapi/gstvaapiimage.h:
26336 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26337 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26338 * gst-libs/gst/vaapi/gstvaapiobject.c:
26339 * gst-libs/gst/vaapi/gstvaapiobject.h:
26340 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26341 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26342 * gst-libs/gst/vaapi/gstvaapisurface.c:
26343 * gst-libs/gst/vaapi/gstvaapisurface.h:
26344 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26345 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26346 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26347 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26348 * gst-libs/gst/vaapi/gstvaapitexture.c:
26349 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26350 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26351 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26352 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26353 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26354 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26355 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26356 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26357 libs: drop GST_VAAPI_IS_xxx() helper macros.
26358 Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
26359 deriving from GObject and so those were only checking for whether the
26360 argument was NULL or not. This is now irrelevant, and even confusing
26361 to some extent, because we no longer have type checking.
26362 Note: this incurs more type checking (review) but the libgstvaapi is
26363 rather small, so this is manageable.
26365 2013-05-07 18:52:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26368 Bump library major version.
26369 The whole libgstvaapi libraries got a major refresh to get rid of GObject.
26370 This is a fundamental change that requires a new SONAME. More changes are
26371 underway to streamline the core libraries.
26372 So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
26373 On one particular test (sintel HD trailer), the total number of executed
26374 instruction was reduced by 8%.
26376 2013-05-07 18:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26378 * docs/reference/libs/Makefile.am:
26379 * docs/reference/libs/libs-docs.xml.in:
26380 * docs/reference/libs/libs-sections.txt:
26381 * docs/reference/libs/libs.core.types:
26382 * docs/reference/libs/libs.glx.types:
26383 * docs/reference/libs/libs.x11.types:
26384 docs: cope with removed APIs.
26385 Some APIs are dead because they are no longer based on GObject.
26387 2013-05-06 14:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26389 * gst/vaapi/gstvaapidecode.c:
26390 * gst/vaapi/gstvaapidownload.c:
26391 * gst/vaapi/gstvaapipluginutil.c:
26392 * gst/vaapi/gstvaapipostproc.c:
26393 * gst/vaapi/gstvaapisink.c:
26394 * gst/vaapi/gstvaapiupload.c:
26395 * gst/vaapi/gstvaapiuploader.c:
26396 * gst/vaapi/gstvaapivideobufferpool.c:
26397 * gst/vaapi/gstvaapivideoconverter_glx.c:
26398 * gst/vaapi/gstvaapivideomemory.c:
26399 * gst/vaapi/gstvaapivideometa.c:
26400 plugins: cope with new GstVaapiMiniObject objects.
26402 2013-05-07 11:45:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26407 * tests/simple-decoder.c:
26408 * tests/test-decode.c:
26409 * tests/test-display.c:
26410 * tests/test-subpicture.c:
26411 * tests/test-surfaces.c:
26412 * tests/test-textures.c:
26413 * tests/test-windows.c:
26414 tests: cope with new GstVaapiMiniObject objects.
26416 2013-05-07 15:38:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26418 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26419 display: fix set_synchronous() to lock display.
26421 2013-05-03 19:02:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26423 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26424 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26425 videopool: simplify creation of video objects pool.
26427 2013-05-07 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26429 * gst-libs/gst/vaapi/gstvaapiobject.c:
26430 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26431 * gst-libs/gst/vaapi/gstvaapitypes.h:
26432 libs: simplify GstVaapiID definitions.
26433 Make GstVaapiID a gsize instead of guessing an underlying integer large
26434 enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
26435 this is plain zero and that it is no longer passed as varargs.
26437 2013-05-02 16:11:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26439 * gst-libs/gst/vaapi/Makefile.am:
26440 * gst-libs/gst/vaapi/gstvaapi_priv.h:
26441 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26442 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26443 * gst-libs/gst/vaapi/gstvaapivalue.c:
26444 * gst-libs/gst/vaapi/gstvaapivalue.h:
26445 libs: drop obsolete function helpers and objects.
26446 Drop obsolete GstVaapiID related function helpers for passing them as
26449 2013-05-07 11:39:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26451 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26452 * gst-libs/gst/vaapi/gstvaapidisplay.c:
26453 * gst-libs/gst/vaapi/gstvaapidisplay.h:
26454 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26455 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26456 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26457 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26458 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26459 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26460 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26461 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26462 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26463 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26464 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26465 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26466 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26467 * gst-libs/gst/vaapi/gstvaapiobject.c:
26468 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26469 libs: use GstVaapiMiniObject for display objects.
26471 2013-05-06 14:07:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26473 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26474 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26475 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26476 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26477 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
26478 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26479 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
26480 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26481 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
26482 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26483 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
26484 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26485 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26486 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26487 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
26488 libs: use GstVaapiMiniObject for video decoders.
26489 Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
26490 GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
26491 helper function to let the user add a callback to a function triggered
26492 whenever the codec state (e.g. caps) changes.
26494 2013-05-03 11:01:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26496 * docs/reference/libs/libs-sections.txt:
26497 * gst-libs/gst/vaapi/Makefile.am:
26498 * gst-libs/gst/vaapi/gstvaapicontext.c:
26499 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26500 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26501 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26502 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26503 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26504 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26505 * gst-libs/gst/vaapi/gstvaapivideopool.h:
26506 * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26507 libs: use GstVaapiMiniObject for video object pools.
26508 Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
26509 GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
26510 no longer used for a long time. Make object allocators static, i.e.
26511 local to the shared library.
26513 2013-04-30 17:22:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26515 * gst-libs/gst/vaapi/gstvaapitexture.c:
26516 * gst-libs/gst/vaapi/gstvaapitexture.h:
26517 libs: use GstVaapiObject for texture objects.
26519 2013-04-30 17:20:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26521 * gst-libs/gst/vaapi/Makefile.am:
26522 * gst-libs/gst/vaapi/gstvaapiwindow.c:
26523 * gst-libs/gst/vaapi/gstvaapiwindow.h:
26524 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26525 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26526 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26527 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
26528 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
26529 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26530 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
26531 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26532 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26533 * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
26534 libs: use GstVaapiObject for window objects.
26536 2013-04-30 17:22:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26538 * gst-libs/gst/vaapi/gstvaapicontext.c:
26539 * gst-libs/gst/vaapi/gstvaapicontext.h:
26540 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26541 * gst-libs/gst/vaapi/gstvaapiimage.c:
26542 * gst-libs/gst/vaapi/gstvaapiimage.h:
26543 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26544 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26545 * gst-libs/gst/vaapi/gstvaapisurface.c:
26546 * gst-libs/gst/vaapi/gstvaapisurface.h:
26547 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26548 * gst-libs/gst/vaapi/gstvaapivideopool.c:
26549 libs: use GstVaapiObject for VA objects.
26551 2013-04-30 17:20:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26553 * gst-libs/gst/vaapi/Makefile.am:
26554 * gst-libs/gst/vaapi/gstvaapiobject.c:
26555 * gst-libs/gst/vaapi/gstvaapiobject.h:
26556 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
26557 Port GstVaapiObject to GstVaapiMiniObject.
26559 2013-04-30 10:28:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26561 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26562 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
26563 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26564 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26565 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
26566 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
26567 libs: refine GstVaapiMiniObject.
26568 Drop support for user-defined data since this capability was not used
26569 so far and GstVaapiMiniObject represents the smallest reference counted
26570 object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
26571 Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
26572 is also possible to further simplify the layout of the object. i.e. merge
26573 GstVaapiMiniObjectBase into GstVaapiMiniObject.
26575 2013-05-07 16:43:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26577 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26578 decoder: update picture size from the bitstream.
26579 Propagate the picture size from the bitstream to the GstVaapiDecoder,
26580 and subsequent user who installed a signal on notify::caps. This fixes
26581 decoding of TS streams when the demuxer failed to extract the required
26584 2013-04-25 14:16:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26586 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26587 decoder: fix raw decoding mode.
26588 Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
26589 surface proxy to the caller.
26591 2013-04-25 13:56:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26593 * docs/reference/libs/libs-sections.txt:
26594 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26595 * gst-libs/gst/vaapi/gstvaapidecoder.h:
26596 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26597 * gst/vaapi/gstvaapidecode.c:
26598 decoder: add gst_vaapi_decoder_get_frame_with_timeout().
26599 Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
26600 wait for a frame to be decoded, until the specified timeout in microseconds,
26601 prior to returning to the caller.
26602 This is a fix to performance regression from 851cc0, whereby the vaapidecode
26603 loop executed on the srcpad task was called to often, thus starving all CPU
26606 2013-04-19 14:38:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26609 Bump version for development.
26611 2013-04-18 19:09:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26617 2013-04-18 19:08:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26622 2013-04-18 15:55:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26624 * gst/vaapi/gstvaapidecode.c:
26625 vaapidecode: rework heuristics to detect decode timeout.
26626 Rework heuristics to detect when downstream element ran into errors,
26627 and thus failing to release any VA surface in due time for the current
26628 frame to get decoded. In particular, recalibrate the render time base
26629 when the first frame gets submitted downstream, or when there is no
26630 timestamp that could be inferred.
26632 2013-04-18 15:50:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26634 * gst-libs/gst/vaapi/gstcompat.h:
26635 * gst/vaapi/gstvaapidecode.c:
26636 vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
26637 Rework GstVideoDecoder::handle_frame() to decode the current frame,
26638 while possibly waiting for a free surface, and separately submit all
26639 decoded frames from a task. This makes it possible to pop and render
26640 decoded frames as soon as possible.
26642 2013-04-18 10:06:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26644 * gst/vaapi/gstvaapidecode.c:
26645 * gst/vaapi/gstvaapidownload.c:
26646 * gst/vaapi/gstvaapisink.c:
26647 * gst/vaapi/gstvaapiupload.c:
26648 plugins: use gst_object_unref() wherever applicable.
26649 Use gst_object_unref() wherever applicable, e.g. objects derived from
26650 GstElement, GstVideoPool, etc.
26652 2013-04-17 14:21:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26654 * docs/reference/plugins/plugins-docs.xml.in:
26655 * docs/reference/plugins/plugins-sections.txt:
26656 * docs/reference/plugins/plugins.types:
26657 docs: drop obsolete plug-ins.
26658 Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
26659 i.e. vaapiupload and vaapidownload are no longer the recommended
26662 2013-04-17 13:17:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26664 * debian.upstream/rules:
26665 debian: fix build of GStreamer 0.10 packages.
26666 Fix build of Debian packages to scan the actual GStreamer API version
26667 from the generated changelog file.
26669 2013-04-17 10:58:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26671 * gst/vaapi/gstvaapipostproc.c:
26672 vaapipostproc: minor clean-ups.
26673 Use g_clear_object() wherever appropriate and remove dead-code.
26675 2013-04-17 10:53:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26677 * gst/vaapi/gstvaapipostproc.c:
26678 vaapipostproc: fix reference counting buf for passthrough mode.
26679 Fix reference counting bug for passthrough mode, whereby the input buffer
26680 was propagated as is downstream through gst_pad_push() without increasing
26681 its reference count before. The was a problem when gst_pad_push() returns
26682 an error and we further decrease the reference count of the input buffer.
26684 2013-04-17 10:18:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26686 * gst-libs/gst/vaapi/gstcompat.h:
26687 * gst/vaapi/Makefile.am:
26688 * gst/vaapi/gstvaapi.c:
26689 * gst/vaapi/gstvaapidecode.c:
26690 * gst/vaapi/gstvaapipluginutil.h:
26691 * gst/vaapi/gstvaapipostproc.c:
26692 vaapipostproc: port to GStreamer 1.0.
26693 Add support for interlaced streams with GStreamer 1.0 too. Basically,
26694 this enables vaapipostproc, though it is not auto-plugged yet. We also
26695 make sure to reply to CAPS queries, and happily handle CAPS events.
26697 2013-04-17 10:14:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26699 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26700 decoder: fix GstVideoCodecFrame flags for interlaced contents.
26701 Fix support for interlaced contents with GStreamer 0.10. In particular,
26702 propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
26704 This is a regression from commit 87e5717.
26706 2013-04-16 13:23:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26708 * gst-libs/gst/vaapi/Makefile.am:
26709 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26710 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26711 * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
26712 * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
26713 decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
26714 Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
26715 structure was only useful to parsing and a proper GstvaapiDecoderFrame
26716 instance will be created instead.
26718 2013-04-16 19:09:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26720 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26721 decoder: export presentation timestamp for raw decoding mode.
26722 Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
26723 held any information about the expected presentation timestamp, frame
26724 duration or additional flags like interlaced or top-field-first.
26726 2013-04-16 18:56:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26728 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26729 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26730 decoder: use new GstVaapiSurfaceProxy utility functions.
26731 Use new GstVaapiSurfaceProxy internal helper functions to propagate the
26732 necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
26733 Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
26734 i.e. increase the GstVideoCodecFrame reference count in push_frame rather
26735 than gst_vaapi_picture_output().
26737 2013-04-16 18:35:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26739 * docs/reference/libs/libs-sections.txt:
26740 * gst-libs/gst/vaapi/Makefile.am:
26741 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26742 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26743 * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26744 surfaceproxy: add more attributes for raw decoding modes.
26745 Add more attributes for raw decoding modes, i.e. directly through the
26746 libgstvaapi helper library. In particular, add presentation timestamp,
26747 duration and a couple of flags (interlaced, TFF, RFF, one-field).
26749 2013-04-16 13:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26751 * docs/reference/libs/libs-sections.txt:
26752 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26753 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26754 * gst/vaapi/gstvaapidecode.c:
26755 * tests/simple-decoder.c:
26756 surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
26757 Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
26758 to call some user-provided function when the surface proxy is released.
26760 2013-04-15 12:52:51 +0400 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26763 * gst-libs/gst/vaapi/Makefile.am:
26764 build: link libgstvaapi-glx-1.0.so against libdl.
26765 Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
26766 to resolve glXGetProcAddress() from GLX libraries. This fix builds on
26768 https://bugzilla.gnome.org/show_bug.cgi?id=698046
26769 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26771 2013-04-15 14:22:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26773 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26774 decoder: fix gst_vaapi_decoder_get_codec_state().
26775 Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
26776 supposed to make GstVaapiDecoder own the return GstVideoCodecState
26777 object. Only comment was updated, not the actual code.
26779 2013-04-15 13:58:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26781 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26782 * gst/vaapi/gstvaapidecode.c:
26783 decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
26784 Make gst_vaapi_decoder_get_codec_state() return the original codec state,
26785 i.e. make the GstVaapiDecoder object own the return state so that callers
26786 that want an extra reference to it would just gst_video_codec_state_ref()
26787 it before usage. This aligns the behaviour with what we had before with
26788 gst_vaapi_decoder_get_caps().
26789 This is an ABI incompatible change, library major version was bumped from
26790 previous release (0.5.2).
26792 2013-04-15 13:52:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26794 * gst/vaapi/gstvaapivideobufferpool.h:
26795 * gst/vaapi/gstvaapivideoconverter_glx.h:
26796 plugins: mark a few more functions as internal.
26797 Mark the following functions are internal, i.e. private to the vaapi plug-in:
26798 - gst_vaapi_video_buffer_pool_get_type()
26799 - gst_vaapi_video_converter_glx_get_type()
26800 - gst_vaapi_video_converter_glx_new()
26802 2013-04-15 13:48:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26804 * gst/vaapi/gstvaapivideobuffer.c:
26805 plugins: implement GstSurfaceMeta API.
26806 Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
26807 an unstable/deprecated API, this makes it possible to support Clutter
26808 sink with minimal changes. Tested against clutter-gst 1.9.92.
26810 2013-04-12 17:12:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26812 * gst/vaapi/gstvaapisink.c:
26813 vaapisink: optimize GstVideoOverlayInterface::expose().
26814 When render-mode is "overlay", then it is not really useful to peek into
26815 the GstBaseSink::last_buffer, since we have our own video_buffer already
26816 recorded and maintained into GstVaapiSink.
26818 2013-04-12 17:05:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26820 * gst/vaapi/gstvaapisink.c:
26821 vaapisink: fix memory leak of GstSample objects.
26822 Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
26823 This also fixes extra unreferencing of the underlying GstBuffer in the common
26824 path afterwards (for both 0.10 or 1.0).
26826 2013-04-12 13:44:52 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26828 * gst-libs/gst/vaapi/gstcompat.h:
26829 * gst/vaapi/gstvaapi.c:
26830 plugins: fix description for gst-inspect.
26831 Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
26832 need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
26833 incorrectly uses #name for creating the plug-in name, instead of using macro
26834 expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
26836 2013-04-11 09:24:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26840 Update build requirements for GStreamer 1.0.x support. Add section for
26841 ways to report bugs.
26843 2013-04-10 16:54:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26848 2013-04-10 15:31:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26850 * gst-libs/gst/vaapi/Makefile.am:
26851 * gst/vaapi/Makefile.am:
26852 Fix make dist to include all source files, in any case.
26853 Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
26854 sure to include all source files in either case while generating source
26857 2013-04-10 15:21:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26860 Bump library major version.
26861 Bump library major version, while preserving a major version of 0 for
26862 GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
26863 0.10 based librarieS.
26865 2013-04-10 14:37:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26867 * gst/vaapi/gstvaapivideomemory.c:
26868 * gst/vaapi/gstvaapivideomemory.h:
26869 plugins: implement direct-rendering mode for raw YUV buffer uploads.
26870 Allow direct-rendering (writes) into target VA surfaces.
26872 2013-04-09 16:02:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26874 * gst/vaapi/gstvaapivideobufferpool.c:
26875 * gst/vaapi/gstvaapivideomemory.c:
26876 * gst/vaapi/gstvaapivideomemory.h:
26877 plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
26878 Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
26879 the last component is unmapped. Downloads are not supported yet. The aim
26880 was to first support SW decoding + HW accelerated rendering (vaapisink).
26883 2013-04-03 11:10:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26885 * gst/vaapi/gstvaapidecode.c:
26886 vaapidecode: submit all decoded frames before decoding a new one.
26887 Make sure to purge all pending frames that were already decoded prior
26888 to decoding a new one. This helps release VA surfaces as early as
26891 2013-04-02 16:12:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26893 * gst/vaapi/gstvaapidecode.c:
26894 vaapidecode: reply to CAPS queries.
26895 Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
26896 the set of allowed caps, i.e. it works similar to GstPad::get_caps().
26897 This fixes fallback to SW decoding if no HW decoder is available.
26899 2013-03-20 11:26:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26901 * gst-libs/gst/vaapi/gstvaapidecoder.c:
26902 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26903 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26904 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26905 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26906 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26907 decoder: fix unpaired GstBuffer map/unmaps.
26908 This possibly fixes a few memory leaks along the way.
26910 2013-03-20 14:40:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26913 * gst-libs/gst/vaapi/gstcompat.h:
26914 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26915 * gst-libs/gst/vaapi/gstvaapiprofile.c:
26916 * gst/vaapi/Makefile.am:
26917 * gst/vaapi/gstvaapi.c:
26918 * gst/vaapi/gstvaapidecode.c:
26919 * gst/vaapi/gstvaapisink.c:
26920 * gst/vaapi/gstvaapisink.h:
26921 * gst/vaapi/gstvaapiuploader.c:
26923 Allow build against either GStreamer API (0.10 or 1.0).
26924 Introduce a new configure option --with-gstreamer-api that determines
26925 the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
26926 Also integrate more compatibility glue into gstcompat.h and plugins.
26928 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26930 * gst/vaapi/gstvaapidecode.c:
26931 * gst/vaapi/gstvaapisink.c:
26932 * gst/vaapi/gstvaapisink.h:
26933 plugins: use new video buffer pools.
26934 Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
26935 GstBaseSink::propose_allocation() to expose that pool to upstream
26936 elements; and also implement GstVideoDecoder::decide_allocation() to
26937 actually use that pool (from downstream), if any, or create one.
26938 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26940 2012-11-08 16:41:22 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26942 * gst/vaapi/Makefile.am:
26943 * gst/vaapi/gstvaapivideobufferpool.c:
26944 * gst/vaapi/gstvaapivideobufferpool.h:
26945 * gst/vaapi/gstvaapivideomemory.c:
26946 * gst/vaapi/gstvaapivideomemory.h:
26947 plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
26948 Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
26949 object currently holds a reference to GstVaapiVideoMeta.
26950 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26952 2013-04-04 17:36:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26954 * gst/vaapi/gstvaapivideometa.c:
26955 * gst/vaapi/gstvaapivideometa.h:
26956 plugins: allow copies of GstVaapiVideoMeta objects.
26957 Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
26958 objects created from GstVaapiVideoPool. This is mostly useful to clone a
26959 GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
26962 2013-04-04 16:16:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26964 * gst/vaapi/gstvaapivideometa.c:
26965 plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
26966 Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
26967 reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
26968 gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
26971 2012-09-03 14:00:25 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26973 * gst/vaapi/Makefile.am:
26974 * gst/vaapi/gstvaapi.c:
26975 * gst/vaapi/gstvaapidecode.c:
26976 * gst/vaapi/gstvaapidownload.c:
26977 * gst/vaapi/gstvaapipluginutil.c:
26978 * gst/vaapi/gstvaapipostproc.c:
26979 * gst/vaapi/gstvaapisink.c:
26980 * gst/vaapi/gstvaapiupload.c:
26981 * gst/vaapi/gstvaapiuploader.c:
26982 * gst/vaapi/gstvaapivideobuffer.c:
26983 * gst/vaapi/gstvaapivideoconverter_glx.c:
26984 * gst/vaapi/gstvaapivideometa.c:
26985 * gst/vaapi/gstvaapivideometa.h:
26986 plugins: initial port to GStreamer 1.0.
26987 Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
26988 is rather minimalistic so that to test the basic functionality.
26989 Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
26990 needs polishing wrt. to GStreamer 1.x functionality and the former are
26991 totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
26992 which are yet to be implemented.
26993 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26995 2013-03-21 10:12:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26997 * gst-libs/gst/vaapi/gstcompat.h:
27000 * tests/simple-decoder.c:
27001 * tests/test-subpicture.c:
27002 tests: add support for GStreamer 1.0.
27004 2012-09-04 15:12:18 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27007 * gst-libs/gst/vaapi/gstcompat.h:
27008 * gst-libs/gst/vaapi/gstvaapicontext.c:
27009 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27010 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27011 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27012 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27013 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27014 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27015 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27016 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27017 * gst-libs/gst/vaapi/gstvaapiimage.c:
27018 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27019 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27020 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27021 * gst-libs/gst/vaapi/gstvaapisurface.h:
27022 Add initial support for GStreamer 1.0.
27023 This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
27024 core decoding library. The changes are kept rather minimal here so that
27025 the library retains as little dependency as possible on core GStreamer
27027 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27029 2013-04-03 15:58:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27031 * gst/vaapi/gstvaapisink.c:
27032 vaapisink: improve check for raw YUV format mode.
27033 Improve check for raw YUV format modes by avoiding checks against strings
27034 ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
27035 GstBaseSink::set_caps() is called first and if VA surface format mode is
27036 used, then GstBaseSink::buffer_alloc() is not called. If the latter is
27037 called before set_caps(), then we just make a full check. This one is
27038 pretty rare though, e.g. it usually happens once for custom pipelines.
27040 2013-04-03 15:06:46 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27042 * gst/vaapi/gstvaapipluginutil.c:
27043 plugins: don't fail if there is no overlay composition to apply.
27044 Fix gst_vaapi_apply_composition() to not fail if no overlay composition
27045 was found. i.e. return success (TRUE). This was harmless though extra
27046 debug messages are not nice.
27047 This is a regression introduced by commit 95b8659.
27049 2013-04-03 14:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27051 * gst/vaapi/gstvaapidecode.c:
27052 * gst/vaapi/gstvaapidecode.h:
27053 vaapidecode: expose the exact set of supported HW decoders.
27054 Don't return static caps that don't mean anything for the underlying codecs
27055 that are actually supported for decoding. i.e. always allocate a VA display
27056 and retrieve the exact set of HW decoders available. That VA display may be
27057 re-used later on during negotiation through GstVideoContext "prepare-context".
27058 This fixes fallback to SW decoding if no HW decoder is available.
27060 2013-04-03 13:08:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27062 * docs/reference/libs/libs-sections.txt:
27063 * gst-libs/gst/vaapi/gstvaapicontext.c:
27064 * gst-libs/gst/vaapi/gstvaapicontext.h:
27065 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27066 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27067 decoder: drop obsolete functions.
27068 Drop the following functions that are now obsolete:
27069 - gst_vaapi_context_get_surface()
27070 - gst_vaapi_context_put_surface()
27071 - gst_vaapi_context_find_surface_by_id()
27072 - gst_vaapi_surface_proxy_new()
27073 - gst_vaapi_surface_proxy_get_context()
27074 - gst_vaapi_surface_proxy_set_context()
27075 - gst_vaapi_surface_proxy_set_surface()
27076 This is an API change.
27078 2013-04-03 13:14:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27080 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27081 decoder: delegate surface size check to VA context reset.
27082 Now that the surface pool is reference counted in the surface proxy wrapper,
27083 we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
27084 Besides, this check is already performed in gst_vaapi_context_reset_full().
27086 2013-04-03 11:37:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27088 * docs/reference/libs/libs-sections.txt:
27089 * gst-libs/gst/vaapi/gstvaapicontext.c:
27090 * gst-libs/gst/vaapi/gstvaapicontext.h:
27091 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27092 * gst-libs/gst/vaapi/gstvaapisurface.h:
27093 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27094 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27095 decoder: simplify acquisition/release of spare surface.
27096 Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
27097 proxy from the context surface pool. This change also makes sure to retain
27098 the parent surface pool in the proxy.
27099 Besides, it was also totally useless to attach/detach parent context to
27100 VA surface each time we acquire/release it. Since the whole context owns
27101 all associated VA surfaces, we can mark this as such only once and for all.
27103 2013-03-29 10:39:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27106 Bump version for development.
27108 2013-03-28 10:18:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27114 2013-03-28 10:15:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27119 2013-03-26 18:57:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27121 * gst/vaapi/gstvaapipluginutil.c:
27122 * gst/vaapi/gstvaapisink.c:
27123 plugins: fix usage of gst_vaapi_reply_to_query().
27124 Make gst_vaapi_reply_to_query() first check whether the query argument
27125 is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
27126 Then, make sure vaapisink propagates the query to the parent class if
27127 it is not a video-context query.
27129 2013-03-26 18:45:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27131 * gst/vaapi/gstvaapivideobuffer.c:
27132 * gst/vaapi/gstvaapivideobuffer.h:
27133 plugins: streamline video buffers.
27134 Add new gst_vaapi_video_buffer_new() helper function that allocates a video
27135 buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
27136 gst_vaapi_video_buffer_get_meta().
27138 2013-03-26 10:31:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27140 * docs/reference/libs/libs-sections.txt:
27141 * gst-libs/gst/vaapi/Makefile.am:
27142 * gst/vaapi/Makefile.am:
27143 * gst/vaapi/gstvaapidecode.c:
27144 * gst/vaapi/gstvaapidownload.c:
27145 * gst/vaapi/gstvaapipostproc.c:
27146 * gst/vaapi/gstvaapisink.c:
27147 * gst/vaapi/gstvaapiupload.c:
27148 * gst/vaapi/gstvaapiuploader.c:
27149 * gst/vaapi/gstvaapivideobuffer.h:
27150 * gst/vaapi/gstvaapivideoconverter_glx.c:
27151 * gst/vaapi/gstvaapivideometa.c:
27152 * gst/vaapi/gstvaapivideometa.h:
27153 plugins: integrate GstVaapiVideoMeta from libgstvaapi.
27154 Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
27155 actual plugin elements. That's only useful there. Also inline reference
27156 counting code from GstVaapiMiniObject.
27158 2013-03-21 17:17:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27160 * gst/vaapi/Makefile.am:
27161 * gst/vaapi/gstvaapidecode.c:
27162 * gst/vaapi/gstvaapidownload.c:
27163 * gst/vaapi/gstvaapipluginbuffer.c:
27164 * gst/vaapi/gstvaapipluginbuffer.h:
27165 * gst/vaapi/gstvaapipostproc.c:
27166 * gst/vaapi/gstvaapiupload.c:
27167 * gst/vaapi/gstvaapiuploader.c:
27168 * gst/vaapi/gstvaapivideobuffer.c:
27169 * gst/vaapi/gstvaapivideobuffer.h:
27170 plugins: drop gstvaapipluginbuffer.[ch] helper files.
27171 Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
27172 to gstvaapivideobuffer.[ch], and drop the obsolete files.
27174 2013-03-21 17:06:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27176 * docs/reference/libs/libs-sections.txt:
27177 * docs/reference/libs/libs.core.types:
27178 * gst-libs/gst/vaapi/Makefile.am:
27179 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27180 * gst/vaapi/Makefile.am:
27181 * gst/vaapi/gstvaapidownload.h:
27182 * gst/vaapi/gstvaapipluginbuffer.c:
27183 * gst/vaapi/gstvaapipostproc.h:
27184 * gst/vaapi/gstvaapivideobuffer.c:
27185 * gst/vaapi/gstvaapivideobuffer.h:
27186 * gst/vaapi/gstvaapivideoconverter_glx.h:
27187 plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
27188 Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
27189 actual plugin elements. That's only useful there.
27191 2013-03-21 16:32:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27193 * gst/vaapi/gstvaapipluginutil.c:
27194 * gst/vaapi/gstvaapipluginutil.h:
27195 * gst/vaapi/gstvaapisink.c:
27196 * gst/vaapi/gstvaapivideoconverter_glx.c:
27197 plugins: use common helper function to apply compositions.
27198 Use common gst_vaapi_apply_composition() helper function to apply compositions
27199 attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
27201 2013-03-21 16:09:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27203 * gst-libs/gst/vaapi/Makefile.am:
27204 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27205 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27206 * gst/vaapi/Makefile.am:
27207 * gst/vaapi/gstvaapipluginbuffer.c:
27208 * gst/vaapi/gstvaapivideoconverter_glx.c:
27209 * gst/vaapi/gstvaapivideoconverter_glx.h:
27210 plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
27211 Make sure libgstvaapi core decoding library doesn't include un-needed
27212 dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
27213 Besides, even if the vaapisink element is not used, we are bound to have
27214 a correctly populated GstSurfaceBuffer from vaapidecode.
27215 Also clean-up the file along the way.
27217 2013-03-21 13:32:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27219 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27220 vc1: fix use of possibly uninitialized variable.
27221 In decode_codec_data(), force initialization of format to zero so that
27222 we can catch up cases where codec-data has neither "format" nor "wmvversion"
27223 fields, thus making it possible to gracefully fail in this case.
27225 2013-03-21 13:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27227 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27228 jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
27230 2013-03-21 14:36:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27232 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27233 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27234 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27235 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27236 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27237 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27238 decoder: sanitize codec-data decoding.
27239 Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
27240 codec-data in the decoder sub-class. Provide a common shared helper
27241 function to do the actual work and delegating further to the sub-class.
27243 2013-03-21 13:41:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27245 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27246 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27247 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27248 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27249 decoder: get rid of GstVaapiDecoderUnit::buffer field.
27250 Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
27251 useless nowadays as creating sub-buffers doesn't bring any value. It
27252 actually means more memory allocations. We can't do without that in
27253 JPEG and MPEG-4:2 decoders.
27255 2013-03-21 13:28:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27257 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27258 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27259 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27260 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27261 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27262 decoder: sanitize uses of codec frame input buffer (cosmetics).
27263 Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
27266 2013-03-20 17:34:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27268 * gst/vaapi/gstvaapisink.c:
27269 vaapisink: add helper function to apply a composition buffer.
27270 Simplify application of a composition buffer to a GstVaapiSurface, and
27271 all its peers, until that function is eventually promoted to libgstvaapi.
27273 2013-03-20 13:42:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27275 * gst/vaapi/gstvaapisink.c:
27276 vaapisink: fix support for raw YUV buffers.
27277 If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
27278 hook, then it will have a valid GstVaapiVideoMeta object attached to it.
27279 However, we previously assumed in that case that it was a "native" VA buffer,
27280 thus not calling into GstVaapiUploader::process().
27282 2013-03-20 18:41:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27284 * gst-libs/gst/vaapi/gstcompat.h:
27285 * gst/vaapi/gstvaapidecode.c:
27286 * gst/vaapi/gstvaapidownload.c:
27287 * gst/vaapi/gstvaapipostproc.c:
27288 * gst/vaapi/gstvaapisink.c:
27289 * gst/vaapi/gstvaapiupload.c:
27290 plugins: use modern GstElement metadata information.
27291 Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
27292 basically is the same as gst_element_class_set_details_simple() in
27293 GStreamer 0.10 context.
27295 2013-03-20 18:04:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27297 * gst/vaapi/gstvaapidecode.c:
27298 * gst/vaapi/gstvaapidownload.c:
27299 * gst/vaapi/gstvaapipostproc.c:
27300 * gst/vaapi/gstvaapisink.c:
27301 * gst/vaapi/gstvaapiupload.c:
27302 plugins: move up interfaces (cosmetics).
27303 Move GstImplementsInterface and GstVideoContext support functions up
27304 so that to keep a clear separation between the plugin element and its
27307 2013-03-20 12:57:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27309 * gst/vaapi/gstvaapisink.c:
27310 * gst/vaapi/gstvaapiuploader.c:
27311 plugins: upgrade to newer APIs (GstVideoInfo based helpers).
27312 Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
27313 Also use the newly added gst_vaapi_image_format_from_structure() helper
27314 in GstVaapiUploader::ensure_allowed_caps().
27316 2013-03-20 14:02:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27318 * gst/vaapi/gstvaapipluginbuffer.c:
27319 plugins: fix creation of video buffer from another source buffer.
27320 gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
27321 buffer video meta since it would be unreference'd from the get_buffer()
27322 helper function. For other cases, we still use (steal) the newly created
27325 2013-03-20 11:57:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27327 * gst/vaapi/gstvaapipluginbuffer.c:
27328 * gst/vaapi/gstvaapipluginutil.c:
27329 plugins: include "sysdeps.h" header instead of "config.h".
27331 2013-03-20 18:33:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27333 * gst-libs/gst/vaapi/gstcompat.h:
27335 tests: modernize GstTypeFind functions.
27336 Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
27337 exactly correspond to the expected behaviour.
27339 2013-03-20 11:57:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27343 * tests/test-decode.c:
27344 * tests/test-display.c:
27345 * tests/test-h264.c:
27346 * tests/test-h264.h:
27347 * tests/test-jpeg.c:
27348 * tests/test-jpeg.h:
27349 * tests/test-mpeg2.c:
27350 * tests/test-mpeg2.h:
27351 * tests/test-mpeg4.c:
27352 * tests/test-mpeg4.h:
27353 * tests/test-textures.c:
27354 * tests/test-vc1.c:
27355 * tests/test-vc1.h:
27356 * tests/test-windows.c:
27357 tests: fix license templates.
27359 2013-03-20 11:53:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27361 * tests/test-display.c:
27362 tests: use gst_vaapi_image_format_from_structure() in test-display.
27363 Use gst_vaapi_image_format_from_structure() helper in test-display and
27364 then extract a VAImageFormat from it instead of relying on GstCaps for
27365 YUV and RGB formats.
27367 2013-03-20 11:50:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27372 * tests/test-decode.c:
27373 * tests/test-display.c:
27374 * tests/test-subpicture.c:
27375 * tests/test-textures.c:
27376 * tests/test-windows.c:
27377 tests: include "sysdeps.h" header instead of "config.h".
27379 2013-03-20 18:25:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27381 * gst-libs/gst/vaapi/gstcompat.h:
27382 * gst-libs/gst/vaapi/gstvaapicontext.c:
27383 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27384 subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
27385 Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
27386 function with GStreamer 0.10 compatible semantics, or that tries to
27387 approach the current meaning. Basically, this is also just about moving
27388 the helper to gstcompat.h.
27390 2013-03-20 11:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27392 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27393 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27394 image: add gst_vaapi_image_format_from_structure() helper.
27395 Add helper function to convert video formats from a GstStructure to a
27396 plain GstVaapiImageFormat.
27398 2013-03-20 18:12:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27400 * gst-libs/gst/vaapi/Makefile.am:
27401 * gst-libs/gst/vaapi/gstcompat.h:
27402 * gst-libs/gst/vaapi/sysdeps.h:
27403 sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
27405 2013-03-20 11:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27407 * gst-libs/gst/vaapi/sysdeps.h:
27408 sysdeps: add more standard includes by default.
27410 2013-03-20 14:43:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27413 configure: improve GStreamer API version checks.
27415 2013-03-20 11:44:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27418 * debian.upstream/Makefile.am:
27419 * debian.upstream/changelog.in:
27420 * debian.upstream/control.in:
27421 * debian.upstream/gstreamer-vaapi-doc.install.in:
27422 * debian.upstream/libgstvaapi-dev.install.in:
27423 * debian.upstream/libgstvaapi-drm.install.in:
27424 * debian.upstream/libgstvaapi-glx.install.in:
27425 * debian.upstream/libgstvaapi-wayland.install.in:
27426 * debian.upstream/libgstvaapi-x11.install.in:
27427 * debian.upstream/libgstvaapi.install.in:
27428 * docs/reference/libs/Makefile.am:
27429 * docs/reference/libs/libs-docs.xml.in:
27430 * docs/reference/plugins/Makefile.am:
27431 * docs/reference/plugins/plugins-docs.xml.in:
27432 * gst-libs/gst/vaapi/Makefile.am:
27433 * gst/vaapi/Makefile.am:
27434 * pkgconfig/Makefile.am:
27435 * pkgconfig/gstreamer-vaapi-drm.pc.in:
27436 * pkgconfig/gstreamer-vaapi-glx.pc.in:
27437 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
27438 * pkgconfig/gstreamer-vaapi-x11.pc.in:
27439 * pkgconfig/gstreamer-vaapi.pc.in:
27440 * tests/Makefile.am:
27441 configure: rename GST_MAJORMINOR to GST_API_VERSION.
27443 2013-03-20 11:28:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27446 configure: improve check for H.264 codecparser.
27448 2013-02-26 00:38:24 +0100 Holger Kaelberer <hk@getslash.de>
27450 * gst/vaapi/gstvaapiuploader.c:
27451 vaapiupload: fix illegal write in ensure_image().
27452 Fix ensure_image() to only zero-initialize the first line of each plane.
27453 Properly initializing each plane to their full vertical resolution would
27454 require to actually compute it based on the image format.
27455 In particular, for NV12 images, the UV plane has half vertical resolution
27456 vs. the Y plane. So using the full image height to initialize the UV plane
27457 will obviously lead to a buffer overflow. Likewise for other YUV format.
27458 Since ensure_image() is only a helper function to initialize something,
27459 and not necessarily the whole thing, it is fine to initializ the first
27460 line only. Besides, the target surface is not rendered either.
27461 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27463 2013-02-17 16:28:47 +0800 Xiang, Haihao <haihao.xiang@intel.com>
27465 * gst-libs/gst/codecparsers/Makefile.am:
27466 * gst-libs/gst/video/Makefile.am:
27467 build: fix compiling of local GstVideoDecoder and codecparsers.
27468 Generated source files were missing a dependency on the complete set of
27469 generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
27470 to build and almost every codec parser source depends on parserutils.h.
27471 https://bugs.freedesktop.org/show_bug.cgi?id=59575
27472 Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
27473 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27475 2013-02-08 11:56:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27477 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27478 h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
27479 Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
27480 there is no pred_weight_table() that was parsed.
27481 This is a workaround for the VA intel-driver on Ivy Bridge.
27483 2013-02-07 15:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27485 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27486 h264: use new profile definitions from codecparsers.
27488 2013-02-07 15:29:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27490 * ext/codecparsers:
27491 codecparsers: update to gst-vaapi-branch commit 500bc02.
27492 500bc02 h264: add profile enums
27494 2013-02-06 15:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27499 2013-02-06 15:21:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27501 * ext/codecparsers:
27502 codecparsers: update to gst-vaapi-branch commit 31b1c57.
27503 8957fb7 mpeg2: add helpers to convert quantization matrices
27504 07c4034 mpeg2: store quantization matrices in zigzag scan order
27506 2013-01-31 11:32:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27508 * tests/simple-decoder.c:
27509 tests: simple-decoder: fix build on older platforms.
27510 Make simple-decoder build and execute correctly on older platforms,
27511 and more precisely older versions of glib.
27513 2013-01-31 11:30:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27515 * gst-libs/gst/vaapi/glibcompat.h:
27516 glibcompat: add replacement for g_async_queue_timeout_pop().
27517 g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
27518 g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
27519 new data to arrive in the queue.
27521 2013-01-31 11:25:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27523 * gst-libs/gst/vaapi/glibcompat.h:
27524 glibcompat: add replacement for g_cond_wait().
27526 2013-01-30 18:38:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27528 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27529 mpeg2: fix decoding of 4K videos.
27530 Account for slice_vertical_position_extension when vertical_size > 2800.
27532 2013-01-30 18:54:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27534 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27535 mpeg2: fix decoding of sequence_end().
27536 There shall be only one place to call decode_current_picture(), and this
27537 is in the end_frame() hook. The EOS unit is processed after end_frame()
27538 so this means we cannot have a valid picture to decode/output at this
27541 2013-01-30 15:10:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27543 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27544 mpeg2: improve robustness when packets are missing.
27545 Improve robustness when some expected packets where not received yet
27546 or that were not correctly decoded. For example, don't try to decode
27547 a picture if there was no valid sequence or picture headers.
27549 2013-01-30 18:58:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27551 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27552 decoder: handle decode-only frames in raw API mode.
27553 Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
27554 surface proxy, i.e. with a valid VA surface. This means that any frame
27555 marked as decode-only is simply skipped.
27557 2013-01-30 16:33:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27559 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27560 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27561 decoder: allow frames to be dropped.
27562 If the decoder was not able to decode a frame because insufficient
27563 information was available, e.g. missing sequence or picture header,
27564 then allow the frame to be gracefully dropped without generating
27566 It is also possible that a frame is not meant to be displayed but
27567 only used as a reference, so dropping that frame is also a valid
27568 operation since GstVideoDecoder base class has extra references to
27569 that GstVideoCodecFrame that needs to be released.
27571 2013-01-30 16:26:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27573 * gst/vaapi/gstvaapidecode.c:
27574 vaapidecode: handle decode-only frames.
27575 Decode-only frames may not have a valid surface proxy. So, simply discard
27576 them gracefully, i.e. don't create meta data information. GstVideoDecoder
27577 base class will properly handle this case and won't try to push any buffer
27578 to downstream elements.
27580 2013-01-24 00:49:17 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27582 * gst/vaapi/gstvaapidecode.c:
27583 vaapidecode: add support for post-seek semantics reset.
27584 Implement GstVideoDecoder::reset() as a destruction of the VA decoder
27585 and the creation of a new VA decoder.
27586 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27588 2013-01-30 09:38:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27591 Bump version for development.
27593 2013-01-30 09:37:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27599 2013-01-24 00:48:26 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27601 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27602 mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
27604 2013-01-24 17:34:43 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27606 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27607 decoder: fix documentation for GstVaapiDecoderFrame.
27608 Drop superfluous reference to prev_slice member.
27610 2013-01-29 16:18:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27612 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27613 decoder: assume current frame is complete at end-of-stream.
27614 Assume we got a complete frame when the end-of-stream is reached and that
27615 the current codec frame contains at least one slice data unit.
27617 2013-01-29 14:14:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27621 * debian.upstream/copyright:
27622 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
27623 * gst-libs/gst/vaapi/gstvaapicontext.c:
27624 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27625 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27626 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
27627 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
27628 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
27629 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27630 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27631 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27632 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27633 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27634 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27635 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
27636 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27637 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27638 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27639 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27640 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27641 * gst-libs/gst/vaapi/gstvaapidisplay.h:
27642 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27643 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
27644 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27645 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27646 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27647 * gst-libs/gst/vaapi/gstvaapisurface.c:
27648 * gst-libs/gst/vaapi/gstvaapiutils.c:
27649 * gst-libs/gst/vaapi/gstvaapiutils.h:
27650 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27651 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27652 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27653 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27654 * gst-libs/gst/vaapi/sysdeps.h:
27655 * gst/vaapi/gstvaapidecode.c:
27656 * gst/vaapi/gstvaapidownload.c:
27657 * gst/vaapi/gstvaapipluginbuffer.c:
27658 * gst/vaapi/gstvaapipluginbuffer.h:
27659 * gst/vaapi/gstvaapipostproc.c:
27660 * gst/vaapi/gstvaapisink.c:
27661 * gst/vaapi/gstvaapiupload.c:
27662 * gst/vaapi/gstvaapiuploader.c:
27664 * tests/test-decode.c:
27665 * tests/test-subpicture.c:
27666 legal: fix year for some copyright notices (2013).
27668 2013-01-29 14:03:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27670 * gst-libs/gst/vaapi/gstvaapicontext.h:
27671 * gst-libs/gst/vaapi/gstvaapidecoder.h:
27672 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27673 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
27674 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27675 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
27676 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27677 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
27678 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27679 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27680 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27681 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27682 * gst-libs/gst/vaapi/gstvaapisurface.c:
27683 * gst-libs/gst/vaapi/gstvaapisurface.h:
27684 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
27685 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27686 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27687 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27688 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27689 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27690 * gst/vaapi/gstvaapidecode.h:
27691 * gst/vaapi/gstvaapisink.h:
27692 * tests/test-subpicture.c:
27693 legal: fix year for some copyright notices (2012).
27695 2013-01-29 14:00:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27697 * gst-libs/gst/vaapi/gstvaapicompat.h:
27698 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
27699 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
27700 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
27701 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
27702 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
27703 * gst-libs/gst/vaapi/gstvaapiobject.c:
27704 * gst-libs/gst/vaapi/gstvaapiobject.h:
27705 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27706 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27707 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
27708 * gst-libs/gst/vaapi/gstvaapiprofile.c:
27709 * gst-libs/gst/vaapi/gstvaapiprofile.h:
27710 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
27711 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
27712 * gst-libs/gst/vaapi/gstvaapitexture.c:
27713 * gst-libs/gst/vaapi/gstvaapitexture.h:
27714 * gst-libs/gst/vaapi/gstvaapitypes.h:
27715 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27716 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27717 * gst-libs/gst/vaapi/gstvaapivalue.c:
27718 * gst-libs/gst/vaapi/gstvaapivalue.h:
27719 * gst-libs/gst/vaapi/gstvaapivideopool.c:
27720 * gst-libs/gst/vaapi/gstvaapivideopool.h:
27721 * gst-libs/gst/vaapi/gstvaapiwindow.h:
27722 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27723 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27724 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27725 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27726 * tests/test-display.c:
27727 * tests/test-surfaces.c:
27728 * tests/test-windows.c:
27729 legal: add Intel copyright on modified files.
27731 2013-01-29 13:37:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27736 2013-01-28 18:09:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27738 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27739 wayland: use a local event queue to avoid lock contention.
27740 This improves performance when rendering several surfaces from within
27741 the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
27743 2013-01-28 17:28:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27745 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27746 wayland: fix thread-safe issues.
27747 The Wayland API is not fully thread-safe and client applications shall
27748 perform locking themselves on key functions. Besides, make sure to
27749 release the lock if the _render() function fails.
27751 2013-01-28 16:37:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27753 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27754 wayland: really wait until the pending redraw completed.
27755 Introduce gst_vaapi_window_wayland_sync() helper function to wait for
27756 the completion of the redraw request. Use it in _render() function to
27757 actually block until the previous draw request is completed.
27759 2013-01-23 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27761 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27762 wayland: fix frame_redraw callback.
27763 The redraw callback needs to be attached to the surface prior to the
27764 commit. Otherwise, the callback notifies the next surface repaint,
27765 which is not the desired behaviour. i.e. we want to be notified for
27766 the surface we have just filled.
27767 Another isse was the redraw_pending was reset before the actual completion
27768 of the frame redraw callback function, thus causing concurrency issues.
27769 e.g. the callback could have been called again, but with a NULL buffer.
27771 2013-01-28 14:45:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27773 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27774 wayland: fix display sharing.
27775 When the Wayland display is shared, we still have to create our own local
27776 shell and compositor objects, since they are not propagated from the cache.
27777 Likewise, we also need to determine the display size or vaapisink would
27778 fail to account for the display aspect ratio, and will try to create a 0x0
27781 2013-01-24 17:38:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27783 * ext/codecparsers:
27784 codecparsers: update to gst-vaapi-branch commit 21a098e.
27785 21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
27786 f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
27788 2013-01-23 16:38:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27790 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27791 vc1: handle frames with multiple slices.
27793 2013-01-23 17:01:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27795 * ext/codecparsers:
27796 codecparsers: update to gst-vaapi-branch commit 3fba492.
27797 3fba492 vc1: add API to parse slice headers
27799 2013-01-23 11:11:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27801 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27802 vc1: handle CLOSED_ENTRY.
27803 When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
27804 lack a reference anchor picture, these B pictures shall be discarded.
27805 https://bugs.freedesktop.org/show_bug.cgi?id=59505
27807 2013-01-23 10:25:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27809 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27810 vc1: cope with latest codecparser changes.
27811 Fix build with newer VC-1 codecparser where dqsbedge was renamed to
27812 dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
27813 the actual value of DQPROFILE.
27815 2013-01-23 10:24:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27817 * ext/codecparsers:
27818 codecparsers: update to gst-vaapi-branch commit 3d2c67c.
27819 3d2c67c vc1: simplify GstVC1VopDquant structure
27821 2013-01-22 10:51:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27823 * ext/codecparsers:
27824 codecparsers: update to gst-vaapi-branch commit 5d33da8.
27825 5d33da8 vc1: fix bitplanes decoding
27826 562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
27827 0b13d2b vc1: fix calculation of ALTPQUANT
27828 ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
27830 2013-01-22 15:47:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27832 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27833 vc1: fix size of encapsulated BDU.
27834 Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
27835 the size of the BDU data, starting from offset, i.e. after any start
27837 This fixes a buffer overflow during the unescaping process.
27839 2013-01-11 17:08:00 +0800 Wind Yuan <feng.yuan@intel.com>
27841 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27842 vc1: fix decoding of WMV3 videos in AVI format.
27843 The AVI demuxer (avidemux) does not set a proper "format" attribute
27844 to the generated caps. So, try to recover the video codec format from
27845 the "wmvversion" property instead.
27846 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27848 2013-01-22 13:28:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27850 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27851 vc1: review and report errors accordingly.
27852 Use GST_ERROR() to report real errors instead of hiding them into
27855 2013-01-22 13:50:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27857 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27858 vc1: don't create GstBuffers for all decoder units.
27859 Don't create temporary GstBuffers for all decoder units, even if they
27860 are lightweight "sub-buffers", since it is not really necessary to keep
27861 the buffer data around.
27863 2013-01-22 16:03:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27865 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27866 vc1: implement flush() hook.
27867 Make it a simple DPB flush.
27869 2013-01-22 13:44:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27871 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27872 vc1: implement {start,end}_frame() hooks.
27873 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
27874 that to create new VA context earlier and submit VA pictures to the
27875 HW for decoding as soon as possible. i.e. don't wait for the next
27876 frame to start decoding the previous one.
27878 2013-01-22 09:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27880 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27881 vc1: fix next POC for new sequence layers.
27882 Fix next POC when a new sequence layer is reached. At this point, we
27883 need to reset any previous reference picture, i.e. non B-frame.
27885 2012-08-02 17:15:26 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27887 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27888 vc1: port to common GstVaapiDpb interface.
27889 Use GstVaapiDpb interface instead of maintaining our own prev and next
27890 picture pointers. While doing so, try to derive a sensible POC value.
27891 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27893 2013-01-15 17:10:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27895 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27896 vc1: fix decode_sequence_end() to return success, not EOS.
27898 2013-01-18 17:00:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27900 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27901 decoder: simplify gst_vaapi_decoder_get_surface().
27902 Avoid extraenous branches, i.e. immediately return with success once we
27903 have a decoded frame available.
27905 2013-01-18 16:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27907 * gst-libs/gst/vaapi/gstvaapidecoder.c:
27908 decoder: optimize and clean decode_step() up.
27909 Avoid usage of goto. Simplify decode_step() process to first accumulate all
27910 pending buffers into the GstAdapter, and then parse and decode units from
27911 that input adapter. Stop the process once a frame is fully decoded or an
27914 2013-01-18 14:46:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27916 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27917 display: move "vaapi" debug init to libgstvaapi_init_once().
27919 2013-01-18 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27922 * gst-libs/gst/vaapi/Makefile.am:
27923 * gst-libs/gst/vaapi/gstvaapidisplay.c:
27924 * gst-libs/gst/vaapi/gstvaapiversion.h.in:
27925 display: dump gstreamer-vaapi version for debugging purposes.
27927 2013-01-18 14:30:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27929 * tests/Makefile.am:
27930 tests: simple-decoder: fix build with built-in videoutils.
27931 Fix build with built-in videoutils, i.e. when system GStreamer installation
27932 does not know about GstVideoDecoder API.
27934 2013-01-18 10:35:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27936 * tests/simple-decoder.c:
27937 tests: simple-decoder: flush decoded frames at EOS.
27938 Flush the remaining decoded frames when an end-of-stream is reached.
27940 2013-01-18 10:25:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27942 * tests/simple-decoder.c:
27943 tests: simple-decoder: drop use of GstVaapiVideoMeta.
27944 Don't use GstVaapiVideoMeta since that object is not guaranteed to live
27945 in libgstvaapi forever. Rather, that'd move to plugin elements at some
27948 2013-01-16 13:53:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27950 * tests/simple-decoder.c:
27951 tests: simple-decoder: add benchmark mode.
27952 Add --benchmark option to enable benchmark mode where rendering is not
27953 synchronized with presentation timestamps of the decoded surfaces.
27955 2013-01-16 13:29:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27957 * tests/Makefile.am:
27958 * tests/simple-decoder.c:
27959 tests: simple-decoder: honour framerate from the bitstream.
27960 Try to honour the framerate from the bitstream, or cap the playback to
27963 2013-01-15 18:49:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27965 * tests/simple-decoder.c:
27966 tests: simple-decoder: set window size to the surface dimensions.
27967 Set the window size to the decoded surface dimensions, if the user has
27968 not requested the application to run in full-screen mode. Besides, no
27969 effort is made to preserve aspect ratio or to center the video within
27972 2013-01-15 17:33:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27974 * tests/Makefile.am:
27975 * tests/simple-decoder.c:
27976 tests: add simple decoder application.
27977 Add simple decoder application to show off decoding capabilities from
27978 raw bitstreams, for debugging or performance evaluation purposes.
27980 2013-01-15 17:30:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27982 * tests/Makefile.am:
27985 tests: add codec helper utils.
27986 Add helper functions to determine the codec type from a specific file
27987 or utility functions to convert from codec type to GstCaps or from
27988 codec name to codec type.
27990 2013-01-15 17:47:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27993 tests: allow fullscreen mode.
27994 Add new --fullscreen|-f option to create new windows in fullscreen mode.
27996 2013-01-17 18:35:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27998 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27999 h264: implement GstVaapiDecoder::flush() as a DPB flush.
28001 2013-01-17 18:07:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28003 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28004 h264: handle end-of-stream NALU.
28005 Handle <end-of-stream> NAL unit to actually flush any pending picture
28008 2013-01-17 18:22:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28010 * gst/vaapi/gstvaapidecode.c:
28011 vaapidecode: handle EOS events.
28012 Flush all decoded frames to downstream when EOS is received. This is
28013 performed by implementing GstVideoDecoder::finish() hook.
28015 2013-01-17 18:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28017 * gst/vaapi/gstvaapidecode.c:
28018 vaapidecode: split gvd_handle_frame() into decode/push frames.
28019 Split GstVideoDecoder::handle_frame() implementation into two functions:
28020 (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
28021 for purging all decoded frames and submit them downstream.
28023 2013-01-17 18:33:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28025 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28026 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28027 decoder: add GstVaapiDecoder::flush() hook.
28029 2013-01-15 17:21:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28031 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28032 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28033 decoder: fix check for end-of-stream in raw API mode.
28034 Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
28035 if the end-of-stream was already reached at the previous iteration.
28037 2013-01-15 16:55:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28039 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28040 decoder: make decode_step() return once the frame is decoded.
28041 Make sure we always have a free surface left to use for decoding the
28042 current frame. This means that decode_step() has to return once a frame
28043 gets decoded. If the current adapter contains more buffers with valid
28044 frames, they will get parsed and decoded on subsequent iterations.
28046 2013-01-17 15:47:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28048 * ext/codecparsers:
28049 codecparsers: update to gst-vaapi-branch commit b47983a.
28050 8840c2d h264: zero-initialize SPS VUI parameters
28052 2013-01-15 09:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28055 Bump version for development.
28057 2013-01-15 09:21:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28063 2013-01-14 11:48:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28065 * docs/reference/libs/libs-docs.xml.in:
28066 * docs/reference/libs/libs-sections.txt:
28067 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28068 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28069 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28070 docs: expose new interfaces.
28072 2013-01-14 12:58:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28077 2013-01-14 10:58:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28079 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28080 dpb: cosmetics (clean-ups).
28082 2013-01-14 10:46:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28084 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28085 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28086 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28087 dpb: port to GstVaapiMiniObject.
28089 2013-01-14 10:21:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28091 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28092 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28093 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28094 dpb: drop GstVaapiDpb2 interface, keep only one class.
28095 Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
28096 to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
28097 around the specified picture POC.
28099 2012-08-02 15:56:54 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28101 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28102 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28103 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28104 dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
28105 Move GstVaapiDpbMpeg2 API to a more generic version that could also be
28106 useful to other decoders that require 2 reference pictures, e.g. VC-1.
28107 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28109 2013-01-11 16:04:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28112 Bump version for pre-release.
28114 2013-01-11 15:57:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28119 2012-07-20 12:36:33 +0200 Holger Kaelberer <holger.k@elberer.de>
28122 * gst-libs/gst/vaapi/gstvaapicontext.c:
28123 * gst-libs/gst/vaapi/gstvaapiutils.c:
28124 * gst-libs/gst/vaapi/sysdeps.h:
28125 * tests/test-subpicture.c:
28126 overlay: fix build without advanced GstVideoOverlayFormatFlags.
28127 Check for global-alpha support in GstVideoOverlayComposition API.
28128 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28130 2013-01-04 10:19:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28132 * tests/test-subpicture.c:
28133 tests: add support for global-alpha subpictures.
28134 Add --global-alpha option to test-subpicture.
28136 2013-01-10 13:09:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28138 * tests/Makefile.am:
28139 * tests/test-subpicture.c:
28140 tests: use GstVideoOverlayComposition API for subpicture test.
28142 2013-01-10 11:26:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28144 * tests/Makefile.am:
28145 * tests/test-subpicture.c:
28146 tests: use common decoder helpers for subpicture test.
28147 Use common decoder helpers for subpicture test, thus allowing to decode
28148 sample images in an alternate format.
28150 2013-01-10 11:22:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28152 * tests/Makefile.am:
28155 * tests/test-decode.c:
28156 tests: add decoder helpers.
28158 2013-01-11 15:19:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28160 * gst-libs/gst/vaapi/gstvaapicontext.c:
28161 overlay: fix ordering of composition layers.
28162 Make sure to maintain the association order of composition layers when
28163 GstVideoOverlayRectangle objects are kept around (cached).
28165 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28167 * gst-libs/gst/vaapi/gstvaapicontext.c:
28168 overlay: fix support for global-alpha.
28169 Fix support for global-alpha subpictures. The previous changes brought
28170 the ability to check for GstVideoOverlayRectangle changes by comparing
28171 the underlying pixel buffer pointers. If sequence number and pixel data
28172 did not change, then this is an indication that only the global-alpha
28173 value changed. Now, try to update the underlying VA subpicture global-alpha
28175 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28177 2013-01-11 11:53:05 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28179 * gst-libs/gst/vaapi/gstvaapicontext.c:
28180 overlay: detect render-rect changes.
28181 Don't re-upload VA subpicture if only the render rectangle changed.
28182 Rather deassociate the subpicture and re-associate it with the new
28185 2013-01-11 11:12:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28187 * gst-libs/gst/vaapi/gstvaapicontext.c:
28188 overlay: fix check for pixels buffer change.
28189 A GstVideoOverlayRectangle is created whenever the underlying pixels data
28190 change. However, when global-alpha is supported, it is possible to re-use
28191 the same GstVideoOverlayRectangle but with a change to the global-alpha
28192 value. This process causes a change of sequence number, so we can no longer
28194 Still, if sequence numbers did not change, then there was no change in
28195 global-alpha either. So, we need a way to compare the underlying GstBuffer
28196 pointers. There is no API to retrieve the original pixels buffer from
28197 a GstVideoOverlayRectangle. So, we use the following heuristics:
28198 1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
28199 format flags from which the GstVideoOverlayRectangle was created. This
28200 will work if there was no prior consumer of the GstVideoOverlayRectangle
28201 with alternate (non-"native") format flags.
28202 2. In overlay_rectangle_has_changed_pixels(), we have to use the same
28203 gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
28204 with flags that match the subpicture. This is needed to cope with
28205 platforms that don't support global-alpha in HW, so the gst-video
28206 layer takes care of that and fixes this up with a possibly new
28207 GstBuffer, and hence pixels data (or) in-place by caching the current
28208 global-alpha value applied. So we have to determine the rectangle
28209 was previously used, based on what previous flags were used to
28210 retrieve the ARGB pixels buffer.
28212 2013-01-10 18:42:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28214 * gst-libs/gst/vaapi/gstvaapicontext.c:
28215 overlay: optimize cache at the GstVideoOverlayRectangle level.
28216 We previously assumed that an overlay composition changed if the number
28217 of overlay rectangles in there actually changed, or that the rectangle
28218 was updated, and thus its seqnum was also updated.
28219 Now, we can cope with cases where the GstVideoOverlayComposition grew
28220 by one or a few more overlay rectangles, and the initial overlay rectangles
28223 2013-01-10 13:41:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28225 * gst-libs/gst/vaapi/gstvaapicontext.c:
28226 overlay: simplify caching of GstVideoOverlayComposition objects.
28227 Create the GPtrArray once in the _init() function and destroy it only
28228 in the _finalize() function. Then use overlay_clear() to remove all
28229 subpicture associations for intermediate updates, don't recreate the
28231 Make GstVaapiOverlayRectangle a reference counted object. Also make
28232 sure that overlay_rectangle_new() actually creates and associates the
28235 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28237 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28238 * gst-libs/gst/vaapi/gstvaapiutils.c:
28239 * gst-libs/gst/vaapi/gstvaapiutils.h:
28240 overlay: add support for global-alpha.
28241 Handle global-alpha from GstVideoOverlayComposition API. Likewise,
28242 the same code path could also work for premultiplied-alpha but this
28244 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28246 2012-05-15 10:24:08 +0200 Holger Kaelberer <holger.k@elberer.de>
28248 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28249 * gst-libs/gst/vaapi/gstvaapidisplay.h:
28250 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28251 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28252 * gst-libs/gst/vaapi/gstvaapisurface.c:
28254 * tests/test-subpicture.c:
28255 subpicture: add support for global-alpha.
28256 Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
28257 with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
28258 to address this feature.
28259 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28261 2013-01-04 09:41:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28263 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28264 * gst-libs/gst/vaapi/gstvaapiutils.c:
28265 * gst-libs/gst/vaapi/gstvaapiutils.h:
28266 subpicture: add premultiplied-alpha and global-alpha feature flags.
28267 Add premultiplied-alpha and global-alpha feature flags, along with converters
28268 between VA-API and gstreamer-vaapi definitions. Another round of helpers is
28269 also necessary for GstVideoOverlayComposition API.
28271 2013-01-03 18:02:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28273 * gst-libs/gst/vaapi/gstvaapidisplay.c:
28274 display: allow image/subpicture formats with additional flags.
28275 Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
28276 and any additional flags needed. Currently, all flags are set to zero.
28278 2013-01-11 13:34:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28280 * gst-libs/gst/codecparsers/Makefile.am:
28281 * gst-libs/gst/video/Makefile.am:
28282 * tests/Makefile.am:
28283 libs: fix build of submodule wrappers.
28284 Make sure to build codecparsers/ and videoutils/ sources against the
28285 newly generated headers when out-of-source builds are used.
28287 2013-01-11 14:11:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28290 configure: fix checks for packages installed in non-standard roots.
28292 2013-01-10 10:12:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28294 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28295 decoder: fix mini object implementation on 64-bit systems.
28296 Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
28297 pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
28298 Only a gsize can hold all bits of a pointer.
28299 Thanks to Ouping Zhang for spotting this error.
28301 2013-01-09 16:05:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28303 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28304 mpeg2: optimize scan for the end of the frame.
28305 Heuristic: if the second start-code is available, check whether that
28306 one marks the start of a new frame because e.g. this is a sequence
28307 or picture header. This doesn't save much, since we already cache the
28310 2013-01-09 13:44:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28312 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28313 mpeg2: optimize scan for start codes.
28314 Accelerate scan for start codes by skipping up to 3 bytes per iteration.
28315 A start code prefix is defined by the following bytes: 00 00 01. Thus,
28316 for any group of 3 bytes (xx yy zz), we have the following possible cases:
28317 1. If zz != 1, this cannot be a start code, then skip 3 bytes;
28318 2. If yy != 0, this cannot be a start code, then skip 2 bytes;
28319 3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
28320 4. xx == 00, yy == 00, zz == 1, we have match!
28321 This algorithm requires to peek bytes from the adapter. This increases the
28322 amount of bytes copied to a temporary buffer, but this process is much faster
28323 than scanning for all the bytes and using shift/masks. So, overall, this is
28326 2013-01-08 16:41:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28328 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28329 mpeg2: drop useless gst_adapter_peek().
28330 Drop useless gst_adapter_peek() since the returned buffer was not used
28331 and this could incur superfluous memcpy().
28333 2013-01-07 16:07:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28335 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28336 mpeg2: cosmetics: move parse_slice() down.
28338 2013-01-07 15:24:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28340 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28341 mpeg2: avoid too many allocations of parser info objects.
28342 Move parsing back to decoding step, but keep functions separate for now.
28343 This is needed for future optimizations that may introduce some meta data
28344 for parsed info attached to codec frames.
28346 2013-01-07 14:04:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28348 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28349 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28350 decoder: decoder units are no longer dynamically allocated objects.
28352 2013-01-07 13:59:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28354 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28355 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28356 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28357 decoder: optimize pre-allocation of decoder units.
28358 Optimize pre-allocation of decoder units, thus avoiding un-necessary
28359 memory reallocations. The heuristic used is that we could have around
28360 one slice unit per macroblock line.
28362 2013-01-07 13:41:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28364 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28365 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28366 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28367 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28368 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28369 decoder: use an array of units instead of a single-linked list.
28370 Use a GArray to hold decoder units in a frame, instead of a single-linked
28371 list. This makes 'append' calls faster, but not that much. At least, this
28372 makes things clearer.
28374 2013-01-07 11:13:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28376 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28377 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28378 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28379 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28380 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28381 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28382 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28383 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28384 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28385 decoder: refactor decoder unit API.
28386 Allocate decoder unit earlier in the main parse() function and don't
28387 delegate this task to derived classes. The ultimate purpose is to get
28388 rid of dynamic allocation of decoder units.
28390 2013-01-07 10:48:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28392 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28393 mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
28394 Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
28395 from GstVaapiDecoderUnit for MPEG-2 specific parser information.
28397 2013-01-07 10:22:54 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28399 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28400 h264: introduce parser info instead of H.264 specific decoder unit.
28401 Use a new GstVaapiParserInfoH264 data structure instead of deriving
28402 from GstVaapiDecoderUnit for H.264 specific parser information.
28404 2013-01-05 12:33:06 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28406 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28407 h264: set default values for some header fields.
28408 The SPS, PPS and slice headers are not fully zero-initialized in the
28409 codecparsers/ library. Rather, the standard upstream behaviour is to
28410 initialize only certain syntax elements with some inferred values if
28411 they are not present in the bitstream.
28412 At the gstreamer-vaapi decoder level, we need to further initialize
28413 certain syntax elements with some sensible default values so that to
28414 not complicate VA drivers that just pass those verbatim to the HW,
28415 and also avoid an memset() of the whole decoder unit.
28416 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28417 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28419 2013-01-06 19:05:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28421 * ext/codecparsers:
28422 codecparsers: update to gst-vaapi-rebased commit b47983a.
28423 b47983a h264: add inferred value for slice_beta_offset_div2
28425 2013-01-05 17:55:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28427 * gst/vaapi/gstvaapidecode.c:
28428 * gst/vaapi/gstvaapidownload.c:
28429 * gst/vaapi/gstvaapipluginbuffer.c:
28430 * gst/vaapi/gstvaapipluginbuffer.h:
28431 * gst/vaapi/gstvaapipostproc.c:
28432 * gst/vaapi/gstvaapisink.c:
28433 * gst/vaapi/gstvaapiupload.c:
28434 * gst/vaapi/gstvaapiuploader.c:
28435 plugins: cope with new GstVaapiVideoMeta API.
28436 Update plugin elements with the new GstVaapiVideoMeta API.
28437 This also fixes support for subpictures/overlay because GstVideoDecoder
28438 generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
28439 is marked as read-only. However, when comes in the textoverlay element
28440 for example, it checks whether the input buffer is writable. Since that
28441 buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
28442 does not preserve the parent field, the generated buffer in textoverlay
28443 is not exploitable because we lost all VA specific information.
28444 Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
28445 all information are preserved through gst_buffer_copy() since the latter
28446 does copy metadata (qdata in this case).
28448 2013-01-05 17:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28450 * gst-libs/gst/vaapi/Makefile.am:
28451 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28452 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28453 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
28454 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
28455 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
28456 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28457 videobuffer: wrap video meta into a surface buffer.
28458 Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
28459 no longer necessary but for compatibility with GStreamer 0.10 APIs or users
28460 expecting a GstSurfaceBuffer like Clutter.
28462 2013-01-05 08:31:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28464 * gst-libs/gst/vaapi/Makefile.am:
28465 * gst-libs/gst/vaapi/gstvaapivideometa.c:
28466 * gst-libs/gst/vaapi/gstvaapivideometa.h:
28467 videobuffer: add video meta information.
28468 Add new GstVaapiVideoMeta object that holds all information needed to
28469 convey gst-vaapi specific data as a GstBuffer.
28471 2013-01-03 13:10:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28473 * gst/vaapi/gstvaapidecode.c:
28474 vaapidecode: fix calculation of the time-out value.
28475 Fix calculation of the time-out value for cases where no VA surface is
28476 available for decoding. In this case, we need to wait until downstream
28477 sink consumed at least one surface. The time-out was miscalculated as
28478 it was always set to <current-time> + one second, which is not suitable
28479 for streams with larger gaps.
28481 2013-01-03 13:05:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28483 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28484 decoder: always use the calculated presentation timestamp.
28485 Use PTS value computed by the decoder, which could also be derived from
28486 the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
28487 the original one was miscomputed or only represented a DTS instead.
28489 2013-01-02 17:33:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28491 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28492 h264: don't create sub-buffer for slice data.
28494 2013-01-03 11:16:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28496 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28497 decoder: create new context when encoded resolution changes.
28498 Create a new VA context if the encoded surface size changes because we
28499 need to keep the underlying surface pool until the last one was released.
28500 Otherwise, either of the following cases could have happened: (i) release
28501 a VA surface to an inexistent pool, or (ii) release VA surface to an
28502 existing surface pool, but with different size.
28504 2013-01-02 17:23:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28506 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28507 mpeg2: don't create sub-buffer for slice data.
28508 Avoid creating a GstBuffer for slice data. Rather, directly use the codec
28509 frame input buffer data. This is possible because the codec frame is valid
28510 until end_frame() where we submit the VA buffers for decoding. Anyway, the
28511 slice data buffer is copied into the VA buffer when it is created.
28513 2013-01-02 14:45:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28515 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28516 mpeg2: minor clean-ups.
28517 Drop explicit initialization of most fields that are implicitly set to
28518 zero. Remove some useless checks for NULL pointers.
28520 2013-01-02 14:18:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28522 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28523 mpeg2: optimize scan for the second start code.
28524 Optimize scan for the second start code, on the next parse() call so that
28525 to avoid scanning again earlier bytes where we didn't find any start code.
28527 2013-01-02 14:10:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28529 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28530 mpeg2: use sequence_display_extension() to compute PAR.
28531 Also compute pixel-aspect-ratio from sequence_display_extension(),
28532 should it exist in the bitstream.
28534 2013-01-02 14:02:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28536 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28537 mpeg2: handle sequence_display_extension().
28539 2012-12-27 15:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28541 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28542 mpeg2: implement {start,end}_frame() hooks.
28543 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28544 that to create new VA context earlier and submit VA pictures to the
28545 HW for decoding as soon as possible. i.e. don't wait for the next
28546 frame to start decoding the previous one.
28548 2012-12-27 14:54:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28550 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28551 mpeg2: parse slice() header earlier.
28552 Parse slice() header and first macroblock position earlier in _parse()
28553 function instead of waiting for the _decode() stage. This doesn't change
28554 anything but readability.
28556 2012-12-27 14:41:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28558 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28559 mpeg2: add codec specific decoder unit.
28560 Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
28561 GstMpegVideoPacket and additional parsed header info. Besides, we now
28562 parse as early as in the _parse() function so that to avoid un-necessary
28563 creation of sub-buffers in _decode() for video packets that are not slices.
28565 2012-12-27 18:52:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28567 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28568 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28569 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28570 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28571 decoder: introduce lists of units to decode before/after frame.
28572 Theory of operations: all units marked as "slice" are moved to the "units"
28573 list. Since this list only contains slice data units, the prev_slice pointer
28574 was removed. Besides, we now maintain two extra lists of units to be decoded
28575 before or after slice data units.
28576 In particular, all units in the "pre_units" list will be decoded before
28577 GstVaapiDecoder::start_frame() is called and units in the "post_units"
28578 list will be decoded after GstVaapiDecoder::end_frame() is called.
28580 2013-01-02 16:06:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28582 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28583 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28584 decoder: drop useless checks for codec objects.
28585 Codec objects are used internally only and they are bound to be created
28586 with a valid GstVaapiDecoder object.
28588 2012-12-27 10:35:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28590 * gst/vaapi/gstvaapidecode.c:
28591 vaapidecode: use GST_ERROR to print error messages.
28593 2012-12-27 09:55:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28595 * gst/vaapi/gstvaapidecode.c:
28596 vaapidecode: avoid double release of frame on error.
28597 Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
28598 was already called before and it returned an error. In that case, we were
28599 releasing the frame again, thus leading to a "double-free" condition.
28601 2012-12-21 14:29:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28608 * gst-libs/gst/Makefile.am:
28609 * gst-libs/gst/vaapi/Makefile.am:
28610 * gst-libs/gst/video/Makefile.am:
28611 * gst/vaapi/Makefile.am:
28612 Add videoutils submodule for GstVideoDecoder APIs.
28614 2012-12-18 16:36:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28617 configure: check for GstVideoDecoder API.
28618 GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
28619 this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
28620 parties may either use upstream git 0.10 branch or backport the necessary support
28621 for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
28623 2012-12-18 16:21:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28625 * docs/reference/libs/libs.core.types:
28626 docs: remove obsolete gst_vaapi_surface_proxy_get_type().
28627 GstVaapiSurfaceProxy is no longer based on the GType system.
28629 2012-12-18 16:17:22 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28631 * docs/reference/libs/libs-sections.txt:
28632 docs: fix entries for GstVaapiSurfaceProxy.
28634 2012-12-18 15:29:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28639 2012-12-18 15:15:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28642 * gst-libs/gst/vaapi/Makefile.am:
28643 Bump library major version.
28644 Increase library major so that to cope with API/ABI incompatible changes
28645 since 0.4.x series and avoid user issues.
28647 2012-12-13 16:02:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28649 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28650 surfaceproxy: minor clean-ups.
28652 2012-12-13 15:51:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28654 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28655 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28656 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28657 surfaceproxy: drop accessors to obsolete attributes.
28658 Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
28659 VA surface. i.e. drop any other attribute like timestamp, duration,
28660 interlaced or top-field-first.
28662 2012-12-13 15:34:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28664 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28665 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28666 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28667 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28668 * gst/vaapi/gstvaapidecode.c:
28669 decoder: maintain decoded frames as GstVideoCodecFrame objects.
28670 Maintain decoded surfaces as GstVideoCodecFrame objects instead of
28671 GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
28672 the strict minimum: a context and a surface.
28674 2012-12-13 14:30:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28676 * gst/vaapi/gstvaapidecode.c:
28677 vaapidecode: output all decoded frames as soon as possible.
28678 Make sure to push all decoded frames downstream as soon as possible.
28679 This makes sure we don't need to wait for a new frame to be ready to
28680 be decoded before receiving new decoded frames.
28681 This also separates the decode process and the output process. The latter
28682 could be moved to a specific GstTask later on.
28684 2012-12-13 14:27:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28686 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28687 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28688 decoder: add gst_vaapi_decoder_get_frame() API.
28689 Add new gst_vaapi_decoder_get_frame() function meant to be used with
28690 gst_vaapi_decoder_decode(). The purpose is to return the next decoded
28691 frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
28692 as the user-data object.
28694 2012-12-13 15:47:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28696 * gst/vaapi/gstvaapipostproc.c:
28697 vaapipostproc: use GstBuffer flags for TFF.
28698 Determine whether the buffer represents the top-field only by checking for
28699 the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
28700 flag. Also trust "interlaced" caps to determine whether the input frame
28701 is interleaved or not.
28703 2012-12-13 13:27:33 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28705 * gst/vaapi/gstvaapipostproc.c:
28706 vaapipostproc: handle video sub-buffers.
28707 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28708 for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
28710 2012-12-18 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28712 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28713 h264: optimize initialization process of decoder units.
28714 Decoder units were zero-initialized, including the SPS/PPS/slice headers.
28715 The latter don't require zero-initialization since the codecparsers/ lib
28716 will do so for key variables already. This is not a great value per se but
28717 at least it makes it possible to check whether the default initialization
28718 decisions made in the codecparsers/ lib were right or not.
28719 This can be reverted if this exposes too many issues.
28721 2012-12-13 11:48:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28723 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28724 h264: minor clean-ups.
28725 Drop explicit initialization of most fields that are implicitly set to
28726 zero. Drop helper macros for casting to GstVaapiPictureH264 or
28727 GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
28729 2012-12-07 17:45:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28731 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28732 h264: drop GstVaapiSliceH264 object.
28733 Use standard GstVaapiSlice object from now on since we already have
28734 parsed and recorded the slice headers (GstH264SliceHdr decode units).
28736 2012-12-13 10:47:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28738 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28739 h264: detect new pictures from decode-units.
28740 Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
28741 of assuming frame boundaries when first_mb_in_slice is zero.
28743 2012-12-13 10:21:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28745 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28746 h264: implement {start,end}_frame() hooks.
28747 Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28748 that to create new VA context earlier and submit VA pictures to the
28749 HW for decoding as soon as possible. i.e. don't wait for the next
28750 frame to start decoding the previous one.
28752 2012-12-12 18:33:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28754 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28755 h264: optimize scan for the second start code.
28756 Optimize scan for the second start code, on the next parse() call so that
28757 to avoid scanning again earlier bytes where we didn't find any start code.
28759 2012-12-06 17:25:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28761 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28762 h264: add codec specific decoder unit.
28763 Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
28764 NAL unit header (GstH264NalUnit) and additional parsed header info.
28765 Besides, we now parse headers as early as in the _parse() function so
28766 that to avoid un-necessary creation of sub-buffers in _decode() for
28767 NAL units that are not slices.
28768 This is a performance win by ~+1.1% only.
28770 2012-12-04 11:01:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28772 * gst/vaapi/gstvaapisink.c:
28773 vaapisink: handle sub video-buffers.
28774 Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28775 for non raw YUV cases. Make sure vaapisink now understands those buffers.
28777 2012-12-12 15:22:32 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28779 * gst/vaapi/gstvaapidecode.c:
28780 vaapidecode: use gst_vaapi_decoder_get_codec_state().
28781 Directly use the GstVideoCodecState associated with the VA decoder
28782 instead of parsing caps again.
28783 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28784 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28786 2012-12-04 14:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28788 * gst/vaapi/gstvaapidecode.c:
28789 vaapidecode: use more standard helpers.
28790 Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
28793 2012-12-04 14:45:29 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28795 * gst/vaapi/gstvaapidecode.c:
28796 * gst/vaapi/gstvaapidecode.h:
28797 vaapidecode: move to GstVideoDecoder base class.
28798 Make vaapidecode derive from the standard GstVideoDecoder base element
28799 class. This simplifies the code to the strict minimum for the decoder
28800 element and makes it easier to port to GStreamer 1.x API.
28801 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28802 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28804 2012-12-06 14:02:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28806 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28807 jpeg: initial port to new GstVaapiDecoder API
28809 2012-12-06 14:02:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28811 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28812 vc1: initial port to new GstVaapiDecoder API
28814 2012-12-06 14:02:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28816 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28817 h264: initial port to new GstVaapiDecoder API
28819 2012-12-17 09:47:20 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28821 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28822 mpeg4: initial port to new GstVaapiDecoder API
28824 2012-12-06 14:01:46 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28826 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28827 mpeg2: initial port to new GstVaapiDecoder API.
28829 2012-12-12 15:09:21 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28831 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28832 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28833 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28834 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28835 * gst-libs/gst/vaapi/gstvaapiprofile.c:
28836 * gst-libs/gst/vaapi/gstvaapiprofile.h:
28837 decoder: use GstVideoCodecState.
28838 Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
28839 it with a new gst_vaapi_decoder_get_codec_state() function. This makes
28840 it possible to drop picture size (width, height) information, framerate
28841 (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
28842 and interlace mode (is_interlaced field).
28843 This is a new API with backwards compatibility maintained. In particular,
28844 gst_vaapi_decoder_get_caps() is still available.
28845 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28846 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28848 2012-12-12 13:44:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28850 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28851 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28852 * tests/test-decode.c:
28853 * tests/test-subpicture.c:
28854 decoder: update gst_vaapi_decoder_get_surface() semantics.
28855 Align gst_vaapi_decoder_get_surface() semantics with the rest of the
28856 API. That is, return a GstVaapiDecoderStatus and the decoded surface
28857 as a handle to GstVaapiSurfaceProxy in parameter.
28858 This is an API/ABI change.
28860 2012-12-07 16:40:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28862 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28863 decoder: use standard helper functions.
28864 Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
28865 whenever necessary.
28867 2012-11-29 15:06:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28869 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28870 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28871 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28872 decoder: expose new parse/decode API.
28873 Introduce new decoding process whereby a GstVideoCodecFrame is created
28874 first. Next, input stream buffers are accumulated into a GstAdapter,
28875 that is then passed to the _parse() function. The GstVaapiDecoder object
28876 accumulates all parsed units and when a complete frame or field is
28877 detected, that GstVideoCodecFrame is passed to the _decode() function.
28878 Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
28879 process was successful.
28881 2012-12-13 10:20:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28883 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28884 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28885 decoder: add {start,end}_frame() hooks.
28886 The start_frame() hook is called prior to traversing all decode-units
28887 for decoding. The unit argument represents the first slice in the frame.
28888 Some codecs (e.g. H.264) need to wait for the first slice in order to
28889 determine the actual VA context parameters.
28891 2012-12-06 13:57:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28893 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28894 * gst-libs/gst/vaapi/gstvaapidecoder.h:
28895 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28896 decoder: add new GstVaapiDecoder API.
28897 Split decoding process into two steps: (i) parse incoming bitstreams
28898 into simple decoder-units until the frame or field is complete; and
28899 (ii) decode the whole frame or field at once.
28900 This is an ABI change.
28902 2012-12-05 10:51:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28904 * gst-libs/gst/vaapi/Makefile.am:
28905 * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28906 * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28907 decoder: add new "decoder-frame" object.
28908 Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
28909 (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
28910 an extension to GstVideoCodecFrame for VA decoder purposes. It is available
28911 as the user-data member element.
28912 This is a libgstvaapi internal object.
28914 2012-12-06 09:44:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28916 * gst-libs/gst/vaapi/Makefile.am:
28917 * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28918 * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28919 decoder: add new "decoder-unit" object.
28920 Introduce GstVaapiDecoderUnit which represents a fragment of the source
28921 stream to be decoded. For instance, a decode-unit will be a NAL unit for
28922 H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
28924 This is a libgstvaapi internal object.
28926 2012-12-03 14:09:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28928 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28929 Port GstVaapiFrameStore to GstVaapiMiniObject.
28931 2012-12-03 11:19:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28933 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28934 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
28935 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28936 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28937 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28938 Port codec objects to GstVaapiMiniObject.
28940 2012-12-03 13:46:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28942 * gst-libs/gst/vaapi/gstvaapidecoder.c:
28943 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28944 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28945 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28946 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28947 * gst/vaapi/gstvaapidecode.c:
28948 * gst/vaapi/gstvaapipluginbuffer.c:
28949 * tests/test-decode.c:
28950 * tests/test-subpicture.c:
28951 surfaceproxy: port to GstVaapiMiniObject.
28952 GstVaapiSurfaceProxy does not use any particular functionality from
28953 GObject. Actually, it only needs a basic object type with reference
28955 This is an API and ABI change.
28957 2012-11-30 17:25:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28959 * gst-libs/gst/vaapi/Makefile.am:
28960 * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28961 * gst-libs/gst/vaapi/gstvaapiminiobject.h:
28962 Add GstVaapiMiniObject.
28963 Introduce a new reference counted object that is very lightweight and
28964 also provides flags and user-data functionalities. Initialization and
28965 finalization times are reduced by up to a factor 5x vs GstMiniObject
28966 from GStreamer 0.10 stack.
28967 This is a libgstvaapi internal object.
28969 2012-12-17 02:51:17 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28971 * tests/Makefile.am:
28972 * tests/test-decode.c:
28973 * tests/test-mpeg4.c:
28974 * tests/test-mpeg4.h:
28975 tests: add test for MPEG-4:2 decoding.
28977 2012-12-17 04:42:29 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28979 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28980 h264: initialize VA context before allocating the first slice.
28981 Fix decode_slice() to ensure a VA context exists prior to creating a
28982 new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
28983 context ID. i.e. the latter was not initialized, thus causing failures
28984 on Cedar Trail for example.
28986 2012-12-05 09:15:32 +0800 Zhao Halley <halley.zhao@intel.com>
28989 configure: install plugin elements in GST_PLUGIN_PATH, if set.
28990 If GST_PLUGIN_PATH environment variable exists and points to a valid
28991 directory, then use it as the system installation path for gst-vaapi
28993 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28995 2012-12-17 14:27:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28998 configure: downgrade glib required version to 2.28.
29000 2012-12-17 09:41:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29002 * gst-libs/gst/vaapi/glibcompat.h:
29003 * gst/vaapi/gstvaapi.c:
29004 libs: fix compatibility with glib 2.28.
29005 Always prefer non deprecated APIs by default and provide compatibility
29006 glue for older glib versions when necessary.
29008 2012-12-17 10:10:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29010 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29011 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
29012 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
29013 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29014 libs: use glib >= 2.32 semantics for mutexes.
29015 Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
29016 and termination. Basically, the new mutex objects can be used as static
29017 mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
29019 2012-12-17 04:15:53 -0800 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29021 * gst-libs/gst/vaapi/Makefile.am:
29022 libs: only export gst_vaapi_*() symbols.
29023 This fixes symbol clashes between the gst-vaapi built-in codecparsers/
29024 library and the system-provided one, mainly used by videoparses/. Now,
29025 only symbols with the gst_vaapi_* prefix will be exported, if they are
29026 not marked as "hidden" to libgstvaapi.
29028 2012-11-20 18:21:41 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29030 * gst/vaapi/gstvaapiuploader.c:
29031 vaapiupload: reset direct-rendering to zero when changing caps.
29032 Make sure to reset direct-rendering flag to zero when caps are changed,
29033 and only derive it to one when the next checks succeed.
29035 2012-11-20 14:42:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29037 * gst/vaapi/gstvaapiupload.c:
29038 vaapiupload: fix sink caps to report the supported set of YUV caps.
29039 Try to allocate the GstVaapiUploader helper object prior to listing the
29040 supported image formats. Otherwise, only a single generic caps is output
29041 with no particular pixel format referenced in there.
29043 2012-11-20 14:32:40 +0100 Zhao Halley <halley.zhao@intel.com>
29045 * gst/vaapi/gstvaapiupload.c:
29046 * gst/vaapi/gstvaapiupload.h:
29047 vaapiupload: use new GstVaapiUploader helper.
29048 Use GstVaapiUploader helper that automatically handles direct rendering
29049 mode, thus making the "direct-rendering" property obsolete and hence it
29051 The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
29052 really well supported and it could actually trigger degraded performance.
29053 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29055 2012-11-20 15:50:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29057 * gst/vaapi/gstvaapisink.c:
29058 * gst/vaapi/gstvaapiuploader.c:
29059 * gst/vaapi/gstvaapiuploader.h:
29060 vaapisink: compute and expose the supported set of YUV caps.
29061 Make vaapisink expose only the set of supported caps for raw YUV buffers.
29062 Add gst_vaapi_uploader_get_caps() helper function to determine the set
29063 of supported YUV caps as source (for images). This function actually
29064 tries to zero and upload each image to a 64x64 test surface. Of course,
29065 this relies on VA drivers to not claim success if vaPutImage() is not
29066 correctly supported.
29068 2012-11-20 14:28:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29071 * gst/vaapi/Makefile.am:
29072 * gst/vaapi/gstvaapisink.c:
29073 * gst/vaapi/gstvaapisink.h:
29074 * gst/vaapi/gstvaapiuploader.c:
29075 * gst/vaapi/gstvaapiuploader.h:
29076 vaapisink: add support for raw YUV buffers.
29077 Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
29078 It is up to the caller to negotiate source caps (for images) and output
29079 caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
29080 to help decide between the creation of a GstVaapiVideoBuffer or a regular
29081 GstBuffer on sink pads.
29082 Signed-off-by: Zhao Halley <halley.zhao@intel.com>
29083 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29085 2012-11-20 14:36:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29087 * gst-libs/gst/vaapi/gstvaapiimage.c:
29088 image: fix GstVaapiImage map and unmap.
29089 Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
29090 structure correctly filled in if the image was already mapped.
29091 Likewise, make gst_vaapi_image_unmap() return TRUE if the image
29092 was already unmapped.
29094 2012-10-30 13:15:45 +0800 Wind Yuan <feng.yuan@intel.com>
29097 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29098 videobuffer: fix memory leak for surface and image.
29099 Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
29100 thus resulting on actual memory leak of GstVaapiImage when using them
29101 for downloads/uploads from VA surfaces and more specifically surfaces
29102 when the pipeline is shutdown. i.e. vaTerminate() was never called
29103 because the resources were not unreferenced, and thus not deallocated
29105 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29107 2012-11-19 10:04:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29112 2012-11-16 18:00:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29114 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29115 h264: fix picture size in macroblocks.
29116 The picture size signalled by sps->{width,height} is the actual size with
29117 cropping applied, not the original size derived from pic_width_in_mbs_minus1
29118 and pic_height_in_map_units_minus1. VA driver expects that original size,
29120 There is another issue pending: frame cropping information needs to be
29123 2012-11-16 16:18:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29125 * gst-libs/gst/codecparsers/Makefile.am:
29126 codecparsers: always build parserutils first.
29127 Fix commit 18245b4 so that to link and build parserutils.[ch] first.
29128 This is needed since that's the common dependency for actual codec
29129 parsers (gstvc1parser.c for instance).
29131 2012-11-15 17:50:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29133 * gst-libs/gst/codecparsers/Makefile.am:
29134 codecparsers: always build the VC-1 parser library.
29135 ... this is useful to make sure pixel-aspect-ratio and framerate
29136 information are correctly parsed since we have no means to detect
29137 that at configure time.
29139 2012-11-08 11:40:47 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29142 * gst-libs/gst/codecparsers/Makefile.am:
29143 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29144 mpeg2: fix PAR calculation from commit bd11bae.
29145 Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
29146 correct PAR values. While doing so, require a newer version of the
29147 bitstream parser library.
29148 Note: it may be necessary to also parse the Sequence_Display_Extension()
29150 Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29151 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29153 2012-11-15 15:00:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29155 * gst-libs/gst/vaapi/Makefile.am:
29156 Fix build with the GNU gold linker.
29157 In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
29158 and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
29160 2012-11-02 18:18:37 +0000 Rob Bradford <rob@linux.intel.com>
29163 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29164 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29165 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29166 wayland: port to 1.0 version of the protocol.
29167 This patch updates to relect the 1.0 version of the protocol. The main
29168 changes are the switch to wl_registry for global object notifications
29169 and the way that the event queue and file descriptor is processed.
29170 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29172 2012-11-14 19:22:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29174 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29175 h264: fix incorrect integration of previous commit (4d31e1e).
29176 git am got confused somehow, though the end result doesn't change at
29177 all since we require both SPS and PPS to be parsed prior to decoding
29180 2012-11-14 18:40:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29182 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29183 h264: start decoding slices after first SPS/PPS activation.
29184 Only start decoding slices when at least one SPS and PPS got activated.
29185 This fixes cases when a source represents a substream of another stream
29186 and no SPS and PPS was inserted before the first slice of the generated
29189 2012-11-14 14:25:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29191 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29192 h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
29193 ... for interlaced streams. The short_ref[] and long_ref[] arrays may
29194 contain up to 32 fields but VA ReferenceFrames[] array expects up to
29195 16 reference frames, thus including both fields.
29197 2012-11-14 10:27:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29199 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29200 h264: fix interlaced stream decoding with MMCO.
29201 Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
29202 is equal to 1, i.e. when memory management control operations are used. In
29203 particular, when field_pic_flag is set to 0, the new reference flags shall
29204 be applied to both fields.
29206 2012-11-13 17:14:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29208 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29209 h264: add initial support for interlaced streams.
29210 Decoded frames are only output when they are complete, i.e. when both
29211 fields are decoded. This also means that the "interlaced" caps is not
29212 propagated to vaapipostproc or vaapisink elements. Another limitation
29213 is that interlaced bitstreams with MMCO are unlikely to work.
29215 2012-11-13 16:35:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29217 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29218 h264: split remove_reference_at() into finer units.
29219 Split remove_reference_at() into a function that actually removes the
29220 specified entry from the short-term or long-term reference picture array,
29221 and a function that sets reference flags to the desired value, possibly
29222 zero. The latters marks the picture as "unused for reference".
29224 2012-10-23 14:04:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29226 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29227 decoder: fix gst_vaapi_picture_new_field() object type.
29228 Fix gst_vaapi_picture_new_field() to preserve the original picture type.
29229 e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
29230 shall generate a GstVaapiPictureH264 object.
29232 2012-11-13 14:04:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29234 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29235 h264: add picture structure for reference picture marking process.
29236 Introduce new `structure' field to the H.264 specific picture structure
29237 so that to simplify the reference picture marking process. That local
29238 picture structure is derived from the original picture structure, as
29239 defined by the syntax elements field_pic_flag and bottom_field_flag.
29241 2012-11-02 15:14:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29243 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29244 h264: introduce new frame store structure.
29245 The frame store represents a Decoded Picture Buffer entry, which can
29246 hold up to two fields. So far, the frame store is only used to hold
29249 2012-11-13 10:10:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29251 * ext/codecparsers:
29252 codecparsers: update to gst-vaapi-rebased commit 73d6aab.
29253 73d6aab h264: fix rbsp_more_data() implementation
29254 25d04cf h264: fix error code for invalid size parsed in SPS
29255 84798e5 fix FSF address
29257 2012-10-31 16:37:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29259 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29260 h264: minor clean-ups.
29261 Move DPB flush up if the current picture to decode is an IDR. Besides,
29262 don't bother to check for IDR pictures in dpb_add() function since an
29263 explicit DPB flush was already performed in this case.
29265 2012-10-31 14:24:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29267 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29268 h264: simplify reference picture marking process.
29269 ... to build the short_ref[] and long_ref[] lists from the DPB, instead
29270 of maintaining them separately. This avoids refs/unrefs while making it
29271 possible to generate the list based on the actual picture structure.
29272 This also ensures that the list of generated ReferenceFrames[] actually
29273 matches what reference frames are available in the DPB. i.e. short_ref[]
29274 and long_ref[] entries are implied from the DPB, so there is no risk of
29275 having "dangling" references.
29277 2012-10-31 11:52:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29279 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29280 h264: introduce per-field POC in GstVaapiPictureH264.
29281 Use the POC member available in the GstVaapiPicture base class and
29282 get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
29283 and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
29284 initialized to INT_MAX, so that to simplify picture POC calculation
29285 for non frame pictures.
29287 2012-10-31 11:45:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29289 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29290 h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
29291 Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
29292 reference bits, thus simplifying the reference picture marking process
29293 to only track a single set of reference flags. Also introduce a new
29294 long_term_frame_idx member.
29296 2012-10-31 11:33:40 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29298 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29299 h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
29301 2012-10-31 10:56:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29303 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29304 h264: fill in GstVaapiPicture structure.
29305 ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
29307 2012-10-31 11:07:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29309 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29310 h264: add vaapi_fill_picture() helper.
29311 Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
29312 to VAPictureH264 structure. This is preparatory work to get rid of the
29313 local VAPictureH264 member in GstVaapiPictureH264.
29315 2012-10-26 16:12:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29317 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29318 h264: fix activation order of picture and sequence parameters.
29319 Delay ensure_context() until we actually need a VA context for allocating
29320 new VA surfaces, and then GstVaapiPictures, but also when a real activation
29321 of a new picture parameter set occurs, thus also implying an activation
29322 of the related sequence parameter set.
29323 The most important thing was to drop the global pps and sps pointers since
29324 they may not have matched the currently activated picture parameter or
29325 sequence parameter sets at the specified decode point.
29326 Anoter positive side-effect is that this cleans up all occurrences of
29327 decode_current_picture() to only keep those useful in decode_picture(),
29328 before a new picture is allocated, or in decode_sequence_end() when
29329 an end-of-stream or end-of-sequence condition occurred.
29331 2012-10-26 13:17:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29333 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29334 h264: fix scaling list generation.
29335 ... aka fix regression from efaab79. In particular, ScalingList8x8[]
29336 array was partially copied to the VAIQMatrixBufferH264. While we are
29337 at it, also improve bounds checking and avoid copying 8x8 scaling
29338 lists if transform_8x8_mode_flag is set to 0.
29340 2012-10-24 18:23:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29342 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29343 h264: fix detection of picture boundaries.
29344 Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
29345 unit of a primary coded picture.
29347 2012-10-23 14:50:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29349 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29350 h264: optimize handling of scaling lists.
29351 Don't copy scaling lists twice to an intermediate state. Rather, directly
29352 use the scaling lists from GstH264PPS since they would match those provided
29353 by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
29354 available in the bitstream.
29356 2012-10-23 10:33:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29358 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29359 h264: simplify code when MMCO is 5.
29360 Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
29361 is now updated accordingly to the standard. Besides, MMCO = 5 specific
29362 operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
29364 2012-10-22 11:52:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29366 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29367 h264: fix MMCO-based reference picture marking process.
29368 Fix adaptive memory control decoded reference picture marking process
29369 implementation for operations 2 to 6, thus also fixing support for
29370 long-term reference pictures.
29372 2012-10-22 10:50:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29374 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29375 h264: move MMCO handlers out of the loop (cosmetics).
29376 This change only splits each individual MMCO handler into several functions
29377 dedicated for each operation. This is needed to perform further work later
29380 2012-10-17 15:49:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29383 debian: fix make dist for packaging.
29384 bzip2 tarballs are now used, so update the deb.upstream dependencies
29385 to include dist-bzip2 instead of plain old dist, and use the correct
29386 tar extract options to handle that format.
29388 2012-10-17 15:42:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29391 configure: generate bzip2 tarballs in ustar format by default.
29393 2012-10-17 15:38:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29396 configure: bump glib required version to 2.31.2.
29397 Use new Thread API. In particular, g_mutex_init() and g_cond_init()
29398 rather than g_mutex_new() and g_cond_new() respectively.
29400 2012-10-04 17:39:53 +0100 Rob Bradford <rob@linux.intel.com>
29402 * gst/vaapi/gstvaapidecode.c:
29403 * gst/vaapi/gstvaapidecode.h:
29404 vaapidecode: adopt non-deprecrated glib locking primitive pattern.
29405 The use of heap allocated GMutex/GCond is deprecated. Instead place them
29406 inside the structure they are locking.
29407 These changes switch to use g_mutex_init/g_cond_init rather than the heap
29408 allocation functions.
29409 Because we cannot test for a NULL pointer for the GMutex/GCond we must
29410 initialise inside the GObject _init function and clear inside the _finalize
29411 which is guaranteed to only be called once and after the object is no longer
29414 2012-10-17 14:52:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29416 * gst/vaapi/gstvaapidecode.c:
29417 vaapidecode: fix compiler warnings.
29418 Don't care of the return value for gst_vaapi_decoder_put_buffer()
29419 during destruction of the element. Don't print out (uninitialised)
29420 error code when allocation of video buffer failed.
29422 2012-10-16 16:52:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29424 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29425 h264: add flag to compile with strict DPB ordering mode.
29426 Allow build with strict DPB ordering mode whereby evicted entries
29427 are replaced by the next entries, in order instead of optimizing
29428 it away with the last entry in the DPB.
29429 This is only useful for debugging purpose, against a reference SW
29430 decoder for example.
29432 2012-10-16 16:46:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29434 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29435 h264: drop extra code covered by built-in codecparsers.
29436 GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
29437 a newer version of codecparsers/ are used if the system provided one is
29438 now recent enough to have those required extensions.
29440 2012-10-16 16:43:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29442 * gst-libs/gst/codecparsers/Makefile.am:
29443 codecparsers: fix generation of symlinks.
29444 Try to improve dependencies while generating symlinks to externally
29445 maintained copy of codecparsers (derived from upstream git master
29448 2012-10-11 15:04:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29450 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29451 vc1: use framerate information from bitstream parser.
29453 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29455 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29456 vc1: use pixel-aspect-ratio from bitstream parser.
29457 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29458 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29460 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29462 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29463 mpeg2: use pixel-aspec-ratio information from bitstream parser.
29464 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29465 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29467 2012-10-11 13:49:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29470 * gst-libs/gst/codecparsers/Makefile.am:
29471 codecparsers: h264: use submodule sources.
29472 Use newer sources from the codecparsers/ submodule for
29473 - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
29474 - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
29476 2012-10-11 13:23:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29480 * gst-libs/gst/codecparsers/Makefile.am:
29481 * gst-libs/gst/codecparsers/gstjpegparser.c:
29482 * gst-libs/gst/codecparsers/gstjpegparser.h:
29483 * gst-libs/gst/vaapi/Makefile.am:
29484 codecparsers: jpeg: use submodule sources.
29486 2012-10-11 10:03:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29493 * ext/codecparsers:
29494 Add codecparsers submodule.
29496 2012-10-11 14:17:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29499 .gitignore: updates.
29501 2012-10-11 13:40:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29504 autogen: fix check for gtkdocize and autoreconf.
29505 If gtkdocize or autoreconf programs were not found, then the autogen.sh
29506 script would fail to report that correctly because test -z was not passed
29507 any argument (empty string "" in this case).
29509 2012-09-27 18:05:46 +0100 Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29511 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29512 h264: use pixel-aspect-ratio from SPS header.
29513 Propagate pixel-aspect-ratio determined by the GStreamer codecparser
29514 from the sequence headers.
29515 Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29516 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29518 2012-10-10 10:35:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29520 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29521 h264: add decode_nalu() helper function.
29522 Split decode_buffer() into the core infrastructure that determines
29523 the NAL units contained in the adapter and the actual function that
29524 decodes the NAL unit.
29526 2012-10-10 10:31:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29528 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29529 h264: fix end-of-stream conditions (flush).
29530 Decode pending data in the adapter prior to processing the actual
29531 code for end-of-stream.
29533 2012-10-10 09:45:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29535 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29536 mpeg2: add decode_packet() helper function.
29537 Split decode_buffer() into the core infrastructure that determines
29538 the packets contained in the adapter and the actual function that
29539 decodes the packet data.
29541 2012-10-09 15:34:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29543 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29544 mpeg2: fix end-of-stream conditions (flush).
29545 Decode pending data in the adapter prior to processing the actual
29546 code for end-of-stream. Initial code from Feng Yuan.
29548 2012-10-09 15:40:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29550 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29551 mpeg2: fix memory leak of empty packets.
29552 Fix memory leakage of empty packets, i.e. packets that only contain
29553 the start code prefix. In particular, free empty user-data packets.
29554 Besides, the codec parser will already fail gracefully if the packet
29555 to parse does not have the minimum required size. So, we can also
29556 completely drop the block of code that used to handle packets of size 4
29557 (including the start code).
29559 2012-10-09 15:01:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29561 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29562 mpeg2: fix return value for "no-data" conditions.
29563 Fix return value when the second scan for start code fails. This means
29564 there is not enough data to determine the full extents of the current
29565 packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
29566 in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
29568 2012-10-09 14:48:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29570 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29571 decoder: refine semantics of gst_vaapi_decoder_put_buffer().
29572 Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
29573 buffer is passed on. An empty buffer is a buffer with a NULL data pointer
29574 or with a size equals to zero. In this case, that buffer is simply
29575 skipped and the function returns TRUE. A NULL buffer argument still
29576 marks the end-of-stream.
29578 2012-10-09 14:40:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29580 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29581 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29582 decoder: drop unused functions.
29584 2012-08-26 22:29:04 -0400 Wind Yuan <feng.yuan@intel.com>
29586 * gst/vaapi/gstvaapidecode.c:
29587 vaapidecode: flush buffers when receiving EOS.
29588 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29590 2012-10-05 13:36:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29592 * debian.upstream/Makefile.am:
29593 debian: fix make dist for packaging.
29595 2012-10-05 12:06:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29597 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29598 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29599 wayland: cosmetics (remove tabs).
29601 2012-10-04 17:39:52 +0100 Rob Bradford <rob@linux.intel.com>
29603 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29604 wayland: add support for windowed mode.
29605 Rather than always making the surface fullscreen instead implement the
29606 set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
29607 fullscreen on not depending on that.
29608 Reviewed-by: Joe Konno <joe.konno@intel.com>
29609 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29611 2012-10-01 09:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29614 Bump version for development.
29616 2012-09-28 17:54:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29620 Fix and document build dependencies better.
29622 2012-09-28 17:41:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29624 * debian.upstream/control.in:
29625 debian: fix GStreamer build dependencies.
29627 2012-09-28 17:39:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29630 * debian.upstream/control.in:
29631 debian: fix Wayland build dependencies.
29633 2012-09-28 17:38:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29635 * debian.upstream/control.in:
29636 debian: fix conditional build of packages.
29637 Make it still possible to build package even if one of the build dependencies
29638 for a specific video backend is not available.
29640 2012-09-27 11:08:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29642 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29643 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29644 utils: drop unused GLX helpers.
29645 Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
29646 extensions since they are not used throughout gstreamer-vaapi.
29648 2012-09-27 11:04:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29650 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29651 utils: fix build with <GL/glext.h> version >= 85.
29652 Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
29653 This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
29654 GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
29655 GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
29656 thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
29657 Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
29658 newer versions of the <GL/glext.h> header.
29660 2012-09-26 16:33:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29663 configure: update VA-API version requirements.
29664 VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
29666 2012-09-21 16:43:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29668 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29669 h264: review and report errors accordingly.
29670 Use GST_ERROR() to report real errors instead of hiding them into
29673 2012-09-20 17:58:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29675 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29676 h264: exclusively use GstAdapter, drop sub-buffer hack.
29677 Maintaining the sub-buffer is rather suboptimal especially since we
29678 were also maintaining a GstAdapter. Now, we only use the GstAdapter
29679 thus requiring minor extra parsing when receiving avcC buffers.
29681 2012-09-20 16:18:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29686 2012-09-20 16:02:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29691 2012-09-20 14:38:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29693 * debian.upstream/gstreamer-vaapi.install.in:
29694 debian: fix packaging on recent Ubuntu platforms.
29695 Use explicit GStreamer plugins path.
29697 2012-09-17 17:55:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29699 * docs/reference/libs/libs-docs.xml.in:
29700 * docs/reference/libs/libs.core.types:
29701 docs: fix build for make dist.
29703 2012-09-14 10:30:35 -0400 Kristian Høgsberg <krh@bitplanet.net>
29705 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29706 wayland: set opaque region for YUV surface.
29707 This allows the compositor to optimize redraws and cull away changes
29708 obscured by the video surface.
29709 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29711 2012-09-14 17:30:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29714 configure: fix check for libva-glx and libva-drm.
29716 2012-09-12 13:42:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29718 * gst-libs/gst/vaapi/glibcompat.h:
29719 glibcompat: add replacement for g_cond_wait_until().
29721 2012-09-12 13:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29723 * gst/vaapi/gstvaapidecode.c:
29724 * gst/vaapi/gstvaapidownload.c:
29725 * gst/vaapi/gstvaapipostproc.c:
29726 * gst/vaapi/gstvaapisink.c:
29727 * gst/vaapi/gstvaapiupload.c:
29728 plugins: include "sysdeps.h" instead of "config.h".
29730 2012-09-12 10:40:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29732 * gst-libs/gst/codecparsers/gstjpegparser.c:
29733 codecparsers: jpeg: add missing includes.
29735 2012-09-11 17:03:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29737 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29738 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29739 * gst/vaapi/gstvaapidecode.c:
29740 vaapidecode: don't reset decoder if codec type is the same.
29741 Reset, i.e. destroy then create, the decoder in _setcaps() handler only
29742 if the underlying codec type actually changed. This makes it possible
29743 to be more tolerant with certain MPEG-2 streams that get parsed to
29744 form caps that are compatible with the previous state but minor changes
29747 2012-09-11 16:41:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29749 * gst/vaapi/gstvaapidecode.c:
29750 vaapidecode: simplify codec lookup from caps.
29751 Add new gst_vaapi_codec_from_caps() helper to determine codec type from
29752 the specified caps. Don't globally expose this function since this is
29753 really trivial and only used in the vaapidecode element.
29755 2012-09-11 15:54:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29757 * gst/vaapi/gstvaapidecode.c:
29758 * gst/vaapi/gstvaapidecode.h:
29759 vaapidecode: improve "no free surface" conditions.
29760 Previously, vaapidecode would wait up to one second until a free surface
29761 is available, or it aborts decoding. Now, vaapidecode waits until the
29762 last decoded surface was to be presented, plus one second. Besides, end
29763 times are now expressed relative to the monotonic clock.
29765 2012-09-11 10:59:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29767 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29768 * gst/vaapi/gstvaapidecode.c:
29769 decoder: propagate buffer duration downstream.
29771 2012-09-11 10:59:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29773 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29774 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29775 surfaceproxy: add "duration" property.
29777 2012-09-10 18:26:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29779 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29780 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29781 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29782 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29783 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29784 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29785 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29786 decoder: cope with new GstVaapiContextInfo based API.
29787 Update decoders to report the maximum number of reference frames to use.
29789 2012-09-10 18:17:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29791 * gst-libs/gst/vaapi/gstvaapicontext.c:
29792 context: JPEG codec does not need any reference frame.
29794 2012-09-10 18:15:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29796 * gst-libs/gst/vaapi/gstvaapicontext.c:
29797 * gst-libs/gst/vaapi/gstvaapicontext.h:
29798 context: allow number of reference frames to be set.
29799 Make it possible to specify the maximum number of references to use within
29800 a single VA context. This helps reducing GPU memory allocations to the useful
29801 number of references to be used.
29803 2012-09-07 16:41:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29805 * gst/vaapi/gstvaapipostproc.c:
29806 vaapipostproc: fix deinterlace-{mode,method} types definition.
29808 2012-09-07 16:15:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29810 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29811 mpeg4: fix debug info for unsupported profile.
29813 2012-09-07 16:14:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29815 * gst-libs/gst/vaapi/gstvaapicontext.c:
29816 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29817 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29818 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29819 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29820 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29821 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29822 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29823 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
29824 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
29825 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29826 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29827 * gst-libs/gst/vaapi/gstvaapiimage.c:
29828 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
29829 * gst-libs/gst/vaapi/gstvaapiobject.c:
29830 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29831 * gst-libs/gst/vaapi/gstvaapisurface.c:
29832 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
29833 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29834 * gst-libs/gst/vaapi/gstvaapitexture.c:
29835 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29836 * gst-libs/gst/vaapi/gstvaapivalue.c:
29837 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29838 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
29839 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
29840 * gst-libs/gst/vaapi/gstvaapivideopool.c:
29841 * gst-libs/gst/vaapi/gstvaapiwindow.c:
29842 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
29843 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
29844 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29845 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29846 libs: fix build in strict ISO C mode.
29848 2012-09-07 16:11:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29850 * gst/vaapi/gstvaapi.c:
29851 * gst/vaapi/gstvaapidecode.c:
29852 * gst/vaapi/gstvaapidownload.c:
29853 * gst/vaapi/gstvaapipostproc.c:
29854 * gst/vaapi/gstvaapisink.c:
29855 * gst/vaapi/gstvaapiupload.c:
29856 plugins: fix build in strict ISO C mode.
29858 2012-09-07 15:31:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29860 * pkgconfig/gstreamer-vaapi-glx.pc.in:
29861 * pkgconfig/gstreamer-vaapi-x11.pc.in:
29862 * pkgconfig/gstreamer-vaapi.pc.in:
29863 pkgconfig: fix dependencies and slightly improve description.
29864 Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
29865 descriptions with clearer renderer names.
29867 2012-09-04 13:54:19 +0200 Philip Lorenz <philip@bithub.de>
29869 * gst/vaapi/gstvaapidecode.c:
29870 vaapidecode: acquire lock only if the mutex exists.
29871 When playback stops the GstVaapiDecode object is reset into a clean
29872 state. However, surfaces may still be referenced by library users and
29873 unreferencing them after the reset triggers an access to an unset mutex.
29874 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29876 2012-09-07 11:58:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29878 * gst-libs/gst/vaapi/gstvaapidecoder.c:
29879 decoder: drop extraneous return for void function.
29881 2012-09-07 11:57:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29883 * gst-libs/gst/vaapi/gstvaapiimage.c:
29884 image: don't use (void *) pointer arithmetic.
29886 2012-09-04 13:40:04 +0200 Philip Lorenz <philip@bithub.de>
29888 * gst-libs/gst/vaapi/gstvaapidecoder.h:
29889 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29890 * gst-libs/gst/vaapi/gstvaapidisplay.h:
29891 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
29892 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
29893 * gst-libs/gst/vaapi/gstvaapiprofile.h:
29894 * gst-libs/gst/vaapi/gstvaapisurface.h:
29895 * gst-libs/gst/vaapi/gstvaapitypes.h:
29896 * gst/vaapi/gstvaapipostproc.h:
29897 Do not forward declare enums.
29898 Forward declaring enums is not allowed by the C standard and aborts
29899 compilation if the header file is included in a C++ project.
29900 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29902 2012-09-07 11:44:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29905 configure: fix check for VA/DRM API.
29907 2012-09-04 11:53:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29909 * gst/vaapi/gstvaapisink.c:
29910 vaapisink: fix calculation of window size.
29911 If either dimension is out-of-bounds, then scale window to fit the
29912 display size, even if the output is to be rotated. Use the standard
29913 gst_video_sink_center_rect() function to center and scale the window
29914 wrt. the outer (display) bounds.
29916 2012-08-28 02:45:22 -0400 Wind Yuan <feng.yuan@intel.com>
29918 * gst/vaapi/gstvaapisink.c:
29919 * gst/vaapi/gstvaapisink.h:
29920 vaapisink: add video rotation support.
29921 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29923 2012-09-06 11:47:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29925 * gst/vaapi/gstvaapipluginutil.h:
29926 pluginutils: add G_PRIMITIVE_SWAP() helper macro.
29927 This macro helps swapping variables while maintaining the correct underlying
29928 and primitive type.
29930 2012-09-06 11:51:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29932 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29933 display: fix display aspect ratio when display is rotated.
29935 2012-09-06 11:50:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29938 * gst-libs/gst/vaapi/Makefile.am:
29939 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29940 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
29941 display: fix physical display size when display is rotated.
29943 2012-08-30 16:27:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29945 * gst-libs/gst/vaapi/gstvaapivalue.c:
29946 display: fix GstVaapiRotation enumeration of values.
29948 2012-08-29 13:18:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29950 * docs/reference/libs/libs-docs.xml.in:
29951 * docs/reference/libs/libs-sections.txt:
29952 * gst-libs/gst/vaapi/Makefile.am:
29953 * gst-libs/gst/vaapi/gstvaapivideosink.c:
29954 * gst-libs/gst/vaapi/gstvaapivideosink.h:
29955 * gst/vaapi/gstvaapidecode.c:
29956 * gst/vaapi/gstvaapidownload.c:
29957 * gst/vaapi/gstvaapipostproc.c:
29958 * gst/vaapi/gstvaapisink.c:
29959 * gst/vaapi/gstvaapiupload.c:
29960 vaapisink: drop obsolete GstVaapiVideoSink interface.
29961 This interface was deprecated since 0.3.x series when the GstVideoContext
29962 interface was added to the main GStreamer APIs.
29964 2012-08-27 18:34:27 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29966 * gst/vaapi/gstvaapisink.c:
29967 * gst/vaapi/gstvaapisink.h:
29968 vaapisink: automatically detect overlay rendering mode.
29969 Retain the VA surface until another surface is to be displayed only
29970 if VA display rendering mode is determined to be "overlay" mode.
29972 2012-08-24 16:30:33 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29974 * gst/vaapi/gstvaapisink.c:
29975 * gst/vaapi/gstvaapisink.h:
29976 vaapisink: retain VA surface until another one is displayed.
29977 Keep VA surface proxy associated with the surface that is currently
29978 being displayed. This makes sure that surface is not released back
29979 to the pool of surfaces free to use for decoding. This is necessary
29980 with VA driver implementations that support rendering to an overlay
29981 pipe. Otherwise, there could be cases where we are decoding into a
29982 surface that is being displayed, hence some flickering.
29984 2012-08-24 14:54:16 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29986 * gst/vaapi/gstvaapisink.h:
29987 vaapisink: fix build with older toolchains.
29988 Don't re-declare GstVaapiTexture if USE_GLX mode is set.
29990 2012-08-29 10:13:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29992 * gst-libs/gst/vaapi/gstvaapidisplay.c:
29993 display: partially revert 8ebe4d6.
29994 Don't try to fix up the initial values, this could make things worse.
29995 Simply assume the driver does not support the capability in this case.
29997 2012-08-28 16:08:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29999 * tests/test-display.c:
30000 tests: dump VA display properties.
30002 2012-08-28 18:11:32 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30004 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30005 display: fix validation process of properties during discovery.
30006 Some VA drivers (e.g. EMGD) can have completely random values for initial
30007 display attributes. So, try to improve the discovery process to check the
30008 initial display attribute values actually fall within valid bounds. If not,
30009 try to reset those to some sensible values like the default value reported
30010 through vaQueryDisplayAttributes().
30012 2012-08-28 13:59:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30014 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30015 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30016 display: add color balance properties.
30017 Add support for hue, saturation, brightness and contrast attributes.
30019 2012-08-28 14:05:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30021 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30022 display: initialize default attribute values.
30023 Ensure the display attribute is actually supported by trying to retrieve
30024 its current value during GstVaapiDisplay creation.
30026 2012-08-28 11:09:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30028 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30029 display: raise "notify" for property changes.
30031 2012-08-28 10:55:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30033 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30034 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30035 display: expose display attributes as GObject properties.
30036 Expose VA display "render-mode" and "rotation" attributes as standard
30037 GObject properties.
30039 2012-08-28 16:24:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30041 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30042 display: install properties in batch.
30043 Use g_object_class_install_properties() to install GstVaapiDisplay properties.
30044 It is useful to maintain properties as GParamSpec so that to be able to raise
30045 "notify" signals by id instead of by name in the future.
30047 2012-08-27 19:00:37 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30049 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30050 display: fix gst_vaapi_display_has_property().
30051 Append the "render-mode" and "rotation" properties, should they be supported
30052 by the underlying VA driver.
30054 2012-08-22 02:18:11 -0400 Wind Yuan <feng.yuan@intel.com>
30056 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30057 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30058 * gst-libs/gst/vaapi/gstvaapitypes.h:
30059 * gst-libs/gst/vaapi/gstvaapiutils.c:
30060 * gst-libs/gst/vaapi/gstvaapiutils.h:
30061 * gst-libs/gst/vaapi/gstvaapivalue.c:
30062 * gst-libs/gst/vaapi/gstvaapivalue.h:
30063 display: add support for rotation modes.
30064 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30066 2012-08-27 18:11:37 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30068 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30069 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30070 * gst-libs/gst/vaapi/gstvaapitypes.h:
30071 * gst-libs/gst/vaapi/gstvaapivalue.c:
30072 * gst-libs/gst/vaapi/gstvaapivalue.h:
30073 display: add support for rendering modes.
30074 A rendering mode can be "overlay" or "texture"'ed blit.
30075 The former mode implies that a VA surface used for rendering can't be
30076 re-used right away for decoding, so the sink shall make provisions to
30077 retain the associated surface proxy until the next surface is to be
30079 The latter mode implies that the VA surface is implicitly copied to an
30080 intermediate backing store, or back buffer of a frame buffer, so the
30081 associated surface proxy can be disposed right away.
30083 2012-08-27 17:02:49 +0300 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30085 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30086 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30087 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30088 display: add initial support for display attributes.
30089 The VA display attributes are mapped to properties so that to maintain the
30090 GStreamer terminology. Properties are to be identified by name, but internal
30091 functions are available to lookup the property by the actual VA display
30094 2012-08-24 11:36:16 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30096 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30097 jpeg: fix end-of-image (EOI) handler.
30098 decode_current_picture() was converted to return a gboolean instead
30099 of a GstVaapiDecoderStatus, so we were not getting out of the decode
30100 loop as expected, or could cause an error instead.
30101 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30103 2012-08-24 18:41:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30105 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30106 mpeg2: include start code into VA slice data buffer.
30107 Integrate the start code prefix in the slice data buffer that is submitted
30108 to the hardware. VA-API specifies that slice_data_offset is the offset to
30109 the first byte of slice data. And, for MPEG-2, slice() data begins with
30110 the slice_start_code. Some VA driver implementations (EMGD) expect this.
30112 2012-06-28 01:08:03 +0900 Javier Jardón <jjardon@gnome.org>
30115 autogen: fix configure script generation when srcdir != builddir.
30116 This patch allows for regenerating the configure script from a build
30117 directory that is not the actual source directory.
30118 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30120 2012-06-28 00:22:03 +0900 Javier Jardón <jjardon@gnome.org>
30123 configure: use new libtool syntax.
30124 This now requires libtool >= 2.2 to regenerate the configure script.
30125 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30127 2012-08-08 12:50:41 +0900 Javier Jardón <jjardon@gnome.org>
30129 * gst-libs/gst/vaapi/gstvaapidecoder.c:
30130 decoder: use g_object_notify_by_pspec().
30131 Use g_object_notify_by_pspec() instead of g_object_notify() so that to
30132 avoid a property name lookup. i.e. this makes notifications faster to
30133 the `vaapidecode' element.
30134 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30136 2012-08-06 19:21:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30138 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30139 wayland: handle de-interlacing flags.
30140 VA/Wayland API was updated to allow flags for bob deinterlacing.
30141 More elaborated filters will require a complete VA/VPP pipeline.
30143 2012-08-02 18:27:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30145 * gst-libs/gst/codecparsers/gstjpegparser.c:
30146 jpeg: fix default quantization tables.
30147 Two elements in the luminance quantization table were wrong. So,
30148 gst_jpeg_get_default_quantization_tables() now reconstructs tables
30149 in zig-zag order from the standard ones (Tables K.1 and K.2).
30151 2012-08-02 15:17:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30153 * gst-libs/gst/codecparsers/gstjpegparser.c:
30154 jpeg: compute default Huffman tables.
30155 ... instead of having them pre-calculated. This saves around 1.5 KB
30156 of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
30157 to do more work. Though, the client application may have to call that
30158 function at most once, only.
30160 2012-08-01 18:30:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30162 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30163 display: drop VAProfileNone entries from debug messages.
30165 2012-07-31 18:24:14 +0800 Yan Yin <yan.yin@intel.com>
30167 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30168 display: query for supported display attributes.
30169 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30171 2012-07-31 18:22:48 +0800 Yan Yin <yan.yin@intel.com>
30173 * gst-libs/gst/vaapi/gstvaapiutils.c:
30174 * gst-libs/gst/vaapi/gstvaapiutils.h:
30175 utils: add string_of_VADisplayAttributeType() helper.
30176 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30178 2012-08-01 15:46:35 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30180 * gst/vaapi/gstvaapisink.c:
30181 vaapisink: handle VA/DRM API.
30182 This is not useful in practice but for raw performance evaluation when
30183 the sink is invoked with display=drm sync=false. fakesink could also be
30186 2012-08-01 15:46:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30188 * gst/vaapi/Makefile.am:
30189 * gst/vaapi/gstvaapipluginutil.c:
30190 plugins: add support for headless pipelines.
30192 2012-08-01 15:44:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30194 * tests/Makefile.am:
30196 * tests/test-display.c:
30197 * tests/test-windows.c:
30198 tests: add support for headless decoding.
30200 2012-08-01 15:44:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30204 * debian.upstream/Makefile.am:
30205 * debian.upstream/control.in:
30206 * debian.upstream/libgstvaapi-drm.install.in:
30207 * gst-libs/gst/vaapi/Makefile.am:
30208 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30209 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30210 * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30211 * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
30212 * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
30213 * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30214 * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
30215 * pkgconfig/Makefile.am:
30216 * pkgconfig/gstreamer-vaapi-drm.pc.in:
30217 Add initial support for VA/DRM.
30219 2012-07-31 17:58:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30222 * gst-libs/gst/vaapi/Makefile.am:
30223 Fix build without X11 (again).
30224 Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
30225 files list wrt. x11, glx and wayland backends.
30227 2012-07-31 11:51:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30230 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30231 * gst-libs/gst/vaapi/gstvaapicompat.h:
30232 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30233 jpeg: update to the latest VA-API changes (0.32.1+).
30235 2012-07-27 14:27:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30237 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30238 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30239 * gst/vaapi/gstvaapisink.c:
30240 wayland: implement display ::get_size*() hooks.
30242 2012-07-27 10:45:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30244 * gst/vaapi/gstvaapipluginutil.c:
30245 plugins: prefer X11 rendering over GLX.
30246 Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
30247 for rendering instead of texturing.
30249 2012-07-26 09:28:51 -0400 Kristian Høgsberg <krh@bitplanet.net>
30251 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30252 wayland: use scale fullscreen method.
30253 This makes the compositor scale the surface to fit and preserves aspect
30255 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30257 2012-07-26 09:27:47 -0400 Kristian Høgsberg <krh@bitplanet.net>
30259 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30260 wayland: respond to ping/pong protocol so we're not deemed unresponsive.
30261 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30263 2012-07-25 10:39:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30265 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30266 wayland: fix double disconnect of display.
30268 2012-07-24 19:58:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30270 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30271 wayland: mangle display name for cache lookups.
30273 2012-07-24 15:43:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30276 * debian.upstream/Makefile.am:
30277 * debian.upstream/control.in:
30278 * debian.upstream/libgstvaapi-wayland.install.in:
30279 * pkgconfig/Makefile.am:
30280 * pkgconfig/gstreamer-vaapi-wayland.pc.in:
30281 wayland: add packaging files.
30283 2012-07-24 15:07:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30285 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30286 * gst/vaapi/gstvaapipluginutil.c:
30287 * gst/vaapi/gstvaapisink.c:
30288 * pkgconfig/Makefile.am:
30289 Fix build without X11.
30291 2012-07-24 09:45:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30293 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30294 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30295 * gst/vaapi/Makefile.am:
30296 * gst/vaapi/gstvaapipluginutil.c:
30297 * gst/vaapi/gstvaapisink.c:
30298 plugins: add support for Wayland.
30300 2012-07-23 12:56:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30302 * tests/Makefile.am:
30304 * tests/test-display.c:
30305 * tests/test-windows.c:
30306 tests: add support for Wayland.
30308 2012-07-19 10:27:23 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30312 * gst-libs/gst/vaapi/Makefile.am:
30313 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30314 * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
30315 * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30316 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
30317 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30318 * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
30319 Add initial support for VA/Wayland.
30320 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30322 2012-07-25 15:11:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30324 * gst/vaapi/gstvaapipluginbuffer.c:
30325 plugins: fix creation of video buffer from surface proxy.
30326 Fix a regression introduced with commit 8ef490a.
30328 2012-07-25 14:51:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30330 * gst/vaapi/gstvaapipluginbuffer.c:
30331 * gst/vaapi/gstvaapipluginutil.c:
30332 plugins: use new display types more.
30333 In particular, simplify gst_vaapi_reply_to_query() with display types.
30334 Likewise for creating new video buffers.
30336 2012-07-25 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30338 * gst/vaapi/gstvaapidecode.c:
30339 * gst/vaapi/gstvaapidownload.c:
30340 * gst/vaapi/gstvaapipluginutil.c:
30341 * gst/vaapi/gstvaapipluginutil.h:
30342 * gst/vaapi/gstvaapipostproc.c:
30343 * gst/vaapi/gstvaapisink.c:
30344 * gst/vaapi/gstvaapiupload.c:
30345 plugins: fix display type selection and propagation.
30346 If vaapisink is in the GStreamer pipeline, then we shall allocate a
30347 unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
30348 queries from vaapidecode shall get a valid answer from vaapisink.
30350 2012-07-25 11:37:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30352 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30353 display: fix destruction of mutex.
30355 2012-07-25 09:16:02 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30357 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30358 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30359 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30360 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30361 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30362 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
30363 * gst/vaapi/gstvaapipluginutil.c:
30364 * gst/vaapi/gstvaapipluginutil.h:
30365 * gst/vaapi/gstvaapisink.c:
30366 display: add display types.
30367 Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
30368 we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
30369 type to "any", and add a "display-type" attribute.
30371 2012-07-24 19:43:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30373 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30374 display: use prefixed display names for cache lookups.
30375 This improves display name comparisons by always allocating a valid display
30376 name. This also helps to disambiguate lookups by name in the global display
30377 cache, should a new backend be implemented.
30379 2012-07-24 16:14:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30381 * gst/vaapi/gstvaapipluginutil.h:
30382 plugins: declare helper functions as internal.
30384 2012-07-24 14:31:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30386 * docs/reference/libs/libs-sections.txt:
30387 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30388 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30389 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30390 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30391 * gst/vaapi/Makefile.am:
30392 * gst/vaapi/gstvaapidecode.c:
30393 * gst/vaapi/gstvaapidownload.c:
30394 * gst/vaapi/gstvaapipluginbuffer.c:
30395 * gst/vaapi/gstvaapipluginbuffer.h:
30396 * gst/vaapi/gstvaapipostproc.c:
30397 * gst/vaapi/gstvaapiupload.c:
30398 videobuffer: drop deprecated functions.
30399 Move video buffer creation routines to plugin elements. That exclusively
30400 uses *_typed_new*() variants.
30402 2012-07-24 14:09:09 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30404 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30405 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30406 videobuffer: mark video buffer creation routines as deprecated.
30407 The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
30408 plugin elements. So deprecate any explicit creation routines that are not the
30409 new *_typed_new*() variants.
30411 2012-07-24 13:52:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30413 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30414 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30415 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
30416 videobuffer: factor out base and GLX implementations.
30417 Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
30418 This avoids duplication of code, and makes it possible to further implement
30419 generic video buffer creation routines that automatically map to base or GLX
30422 2012-07-24 10:58:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30424 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30425 utils: fix gl_create_context() with parent context set.
30426 If GLX window was created from a foreign Display, then that same Display shall
30427 be used for subsequent glXMakeCurrent(). This means that gl_create_context()
30428 will now use the same Display that the parent, if available.
30429 This fixes cluttersink with the Intel GenX VA driver.
30431 2012-07-23 18:37:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30433 * gst/vaapi/gstvaapidecode.c:
30434 * gst/vaapi/gstvaapidownload.c:
30435 * gst/vaapi/gstvaapipluginutil.c:
30436 * gst/vaapi/gstvaapipluginutil.h:
30437 * gst/vaapi/gstvaapipostproc.c:
30438 * gst/vaapi/gstvaapisink.c:
30439 * gst/vaapi/gstvaapiupload.c:
30440 pluginutils: improve automatic display type selection.
30442 2012-07-23 18:01:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30444 * gst/vaapi/gstvaapipluginutil.c:
30445 * gst/vaapi/gstvaapipluginutil.h:
30446 pluginutils: cosmetics (indentation fixes).
30448 2012-07-23 17:54:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30451 configure: simplify video outputs summary.
30453 2012-07-23 17:49:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30456 * gst/vaapi/gstvaapipluginutil.c:
30457 * gst/vaapi/gstvaapipluginutil.h:
30458 * gst/vaapi/gstvaapisink.c:
30459 * gst/vaapi/gstvaapisink.h:
30460 configure: drop check for --enable-vaapisink-glx.
30461 vaapisink is now built with support for multiple display types, whenever
30462 they are enabled. The new "display" attribute is used to select a particular
30465 2012-07-23 16:15:38 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30468 * gst-libs/gst/vaapi/gstvaapicompat.h:
30469 * gst/vaapi/Makefile.am:
30470 * gst/vaapi/gstvaapidecode.c:
30471 * gst/vaapi/gstvaapidownload.c:
30472 * gst/vaapi/gstvaapipluginutil.c:
30473 * gst/vaapi/gstvaapipostproc.c:
30474 * gst/vaapi/gstvaapiupload.c:
30475 * tests/test-display.c:
30476 configure: drop check for --enable-vaapi-glx.
30477 This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
30478 support, or fallback to TFP+FBO if this API is not found. Now, we check for
30479 the VA/GLX API by default if --enable-glx is set. If this API is not found,
30480 we now default to use TFP+FBO.
30481 Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
30482 will be removed in the future. If GLX rendering is requested, then the VA/GLX
30483 API shall be used as it covers most usages. e.g. AMD driver can't render to
30486 2012-07-23 15:20:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30489 tests: allow GLX output, if available and selected.
30491 2012-07-23 15:17:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30493 * tests/Makefile.am:
30496 * tests/test-decode.c:
30497 * tests/test-subpicture.c:
30498 * tests/test-surfaces.c:
30499 tests: use common display and window creation routines.
30500 Add new --output option to select the renderer. Use --list-outputs to
30501 print a list of supported renderers.
30503 2012-07-23 14:15:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30505 * tests/Makefile.am:
30506 tests: move encoded bitstreams to libutils.la.
30508 2012-07-23 14:11:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30510 * tests/Makefile.am:
30511 tests: build convenience library for common utilities.
30513 2012-07-20 16:37:01 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30515 * tests/Makefile.am:
30516 * tests/test-display.c:
30517 tests: simplify build with various display options.
30519 2012-07-23 13:28:42 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30522 configure: improve checks for X11.
30524 2012-07-20 15:57:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30526 * tests/Makefile.am:
30527 configure: fix previous commit for GLX deps.
30529 2012-07-20 14:44:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30532 * gst-libs/gst/vaapi/Makefile.am:
30533 configure: improve checks for GLX.
30535 2012-07-20 11:45:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30538 * gst-libs/gst/vaapi/gstvaapicompat.h:
30539 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30540 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30541 * gst-libs/gst/vaapi/gstvaapiutils.h:
30542 Drop support for obsolete VA-API versions < 0.30.4.
30544 2012-07-20 11:16:27 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30547 * gst-libs/gst/Makefile.am:
30548 * gst-libs/gst/gstutils_version.h.in:
30549 * gst/vaapi/gstvaapisink.c:
30550 vaapisink: drop checks for new APIs used by default.
30551 GStreamer -base plugins >= 0.10.31 are now required, so the checks for
30552 new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
30553 are no longer necessary.
30555 2012-07-20 14:05:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30558 configure: cosmetics and some minor changes.
30559 - Better grouping of feature checks
30560 - Sort list of config files to generate
30562 2012-07-19 17:55:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30565 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30566 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30567 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30568 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30569 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
30570 * gst-libs/gst/vaapi/gstvaapiutils.h:
30571 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30572 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
30573 Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
30575 2012-07-19 17:41:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30577 * gst-libs/gst/vaapi/Makefile.am:
30578 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
30579 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
30580 Drop obsolete GstVaapiTSB.
30581 It has been replaced with a GstAdapter and gst_adapter_prev_pts().
30583 2012-07-19 17:27:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30585 * docs/reference/libs/libs-sections.txt:
30586 docs: add missing entries for the JPEG decoder.
30588 2012-07-19 17:16:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30591 * gst-libs/gst/vaapi/Makefile.am:
30592 * gst/vaapi/gstvaapidecode.c:
30593 * tests/test-decode.c:
30594 * tests/test-subpicture.c:
30595 Drop all references to USE_CODEC_PARSERS.
30597 2012-07-19 17:00:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30601 * docs/reference/libs/libs-sections.txt:
30602 * docs/reference/libs/libs.core.types:
30603 * gst-libs/gst/vaapi/Makefile.am:
30604 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
30605 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30606 * gst/vaapi/gstvaapidecode.c:
30607 * gst/vaapi/gstvaapidecode.h:
30608 * tests/test-decode.c:
30609 * tests/test-subpicture.c:
30610 Drop FFmpeg-based decoders.
30611 GStreamer codecparsers-based decoders are the only supported decoders now.
30612 Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
30614 2012-07-01 05:55:05 +0900 Javier Jardón <jjardon@gnome.org>
30617 * debian.upstream/control.in:
30618 configure: bump glib required version to 2.28.
30619 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30621 2012-06-29 08:45:47 +0900 Javier Jardón <jjardon@gnome.org>
30623 * gst/vaapi/gstvaapidecode.h:
30624 * gst/vaapi/gstvaapidownload.h:
30625 * gst/vaapi/gstvaapipostproc.h:
30626 * gst/vaapi/gstvaapisink.h:
30627 * gst/vaapi/gstvaapiupload.h:
30628 plugins: declare _get_type() functions as const.
30629 Declaring a function as const enables better optimization of calls to
30631 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30633 2012-07-01 05:50:17 +0900 Javier Jardón <jjardon@gnome.org>
30635 * gst/vaapi/gstvaapidecode.c:
30636 * gst/vaapi/gstvaapidownload.c:
30637 * gst/vaapi/gstvaapipostproc.c:
30638 * gst/vaapi/gstvaapisink.c:
30639 * gst/vaapi/gstvaapiupload.c:
30640 plugins: use g_clear_object() wherever applicable.
30641 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30643 2012-06-29 15:19:51 +0900 Javier Jardón <jjardon@gnome.org>
30645 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30646 * gst-libs/gst/vaapi/gstvaapicontext.h:
30647 * gst-libs/gst/vaapi/gstvaapidecoder.h:
30648 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30649 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30650 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
30651 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
30652 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
30653 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
30654 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30655 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
30656 * gst-libs/gst/vaapi/gstvaapidisplay.h:
30657 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
30658 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30659 * gst-libs/gst/vaapi/gstvaapiimage.h:
30660 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
30661 * gst-libs/gst/vaapi/gstvaapiobject.h:
30662 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
30663 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
30664 * gst-libs/gst/vaapi/gstvaapisurface.h:
30665 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
30666 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30667 * gst-libs/gst/vaapi/gstvaapitexture.h:
30668 * gst-libs/gst/vaapi/gstvaapivalue.h:
30669 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30670 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30671 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
30672 * gst-libs/gst/vaapi/gstvaapivideopool.h:
30673 * gst-libs/gst/vaapi/gstvaapivideosink.h:
30674 * gst-libs/gst/vaapi/gstvaapiwindow.h:
30675 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
30676 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
30677 libs: declare _get_type() functions as const.
30678 Declaring a function as const enables better optimization of calls
30680 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30682 2012-07-01 05:34:15 +0900 Javier Jardón <jjardon@gnome.org>
30684 * gst-libs/gst/vaapi/glibcompat.h:
30685 * gst-libs/gst/vaapi/gstvaapicontext.c:
30686 * gst-libs/gst/vaapi/gstvaapidisplay.c:
30687 * gst-libs/gst/vaapi/gstvaapiobject.c:
30688 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30689 * gst-libs/gst/vaapi/gstvaapisurface.c:
30690 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30691 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30692 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30693 * gst-libs/gst/vaapi/gstvaapivideopool.c:
30694 libs: use g_clear_object() wherever applicable.
30695 This is a preferred thread-safe version. Also add an inline version of
30696 g_clear_object() if compiling with glib < 2.28.
30697 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30699 2012-07-01 06:02:22 +0900 Javier Jardón <jjardon@gnome.org>
30703 * docs/reference/libs/Makefile.am:
30704 * gst-libs/gst/vaapi/Makefile.am:
30705 * gst-libs/gst/vaapi/gstvaapimarshal.list:
30706 * gst-libs/gst/vaapi/gstvaapiobject.c:
30707 libs: use generic g_cclosure_marshal_VOID__VOID().
30708 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30710 2012-07-19 14:29:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30713 * gst-libs/gst/vaapi/glibcompat.h:
30714 glibcompat: drop explicit check for g_list_free_full().
30716 2012-07-19 13:58:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30719 Bump version for development.
30721 2012-07-19 13:57:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30723 * gst-libs/gst/codecparsers/Makefile.am:
30724 jpeg: fix make dist.
30726 2012-06-28 00:39:10 +0900 Javier Jardón <jjardon@gnome.org>
30730 * docs/Makefile.am:
30731 configure: fix build without gtk-doc support.
30732 Also do not generate tamplate files as all the documentation is inline.
30733 Drop un-needed code in autogen.sh as well.
30734 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30736 2012-06-28 00:27:31 +0900 Javier Jardón <jjardon@gnome.org>
30741 configure: put m4 macros and autogenerated files into m4/ directory.
30742 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30744 2012-06-28 00:20:12 +0900 Javier Jardón <jjardon@gnome.org>
30747 configure: drop deprecated autoconf macros.
30748 Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
30749 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30751 2012-06-28 00:04:19 +0900 Javier Jardón <jjardon@gnome.org>
30754 configure: don't use AC_SUBST for some variables.
30755 PKG_CHECK_MODULES already does this for us.
30756 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30758 2012-07-19 11:43:03 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30760 * gst/vaapi/gstvaapidecode.c:
30761 * gst/vaapi/gstvaapidownload.c:
30762 * gst/vaapi/gstvaapipostproc.c:
30763 * gst/vaapi/gstvaapiupload.c:
30764 plugins: add support for GstImplementsInterface.
30766 2012-07-01 02:58:36 +0900 Javier Jardón <jjardon@gnome.org>
30769 * gst/vaapi/gstvaapidecode.c:
30770 * gst/vaapi/gstvaapidownload.c:
30771 * gst/vaapi/gstvaapipostproc.c:
30772 * gst/vaapi/gstvaapisink.c:
30773 * gst/vaapi/gstvaapiupload.c:
30774 plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
30775 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30777 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
30780 * gst/vaapi/gstvaapisink.c:
30781 plugins: do not use deprecated GStreamer -base symbols.
30782 Bump GStreamer plugins -base required version to 0.10.31, needed for
30783 gst_x_overlay_got_window_handle().
30784 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30786 2012-07-01 03:57:13 +0900 Javier Jardón <jjardon@gnome.org>
30789 * gst/vaapi/gstvaapidecode.c:
30790 * gst/vaapi/gstvaapidownload.c:
30791 * gst/vaapi/gstvaapipostproc.c:
30792 * gst/vaapi/gstvaapisink.c:
30793 * gst/vaapi/gstvaapiupload.c:
30794 plugins: do not use deprecated core GStreamer symbols.
30795 Bump GStreamer required version to 0.10.14, needed for
30796 gst_element_class_set_details_simple().
30797 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30799 2012-07-19 10:54:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30801 * tests/test-decode.c:
30802 tests: fix build without JPEG decoder support.
30804 2012-07-17 13:44:45 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30806 * tests/Makefile.am:
30807 * tests/test-decode.c:
30808 * tests/test-jpeg.c:
30809 * tests/test-jpeg.h:
30810 tests: add test for JPEG decoding.
30812 2012-07-17 13:43:32 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30814 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30815 jpeg: update to match latest parser API.
30817 2012-07-16 17:35:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30819 * gst-libs/gst/codecparsers/gstjpegparser.c:
30820 * gst-libs/gst/codecparsers/gstjpegparser.h:
30821 codecparsers: jpeg: tweak parser API.
30822 ... to allow for more consistent parsing API among various codec parsers.
30823 In particular, drop use of GList.
30825 2012-07-16 16:24:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30828 jpeg: fix configure check for VA/JPEG decoding API.
30830 2012-06-26 15:18:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30832 * gst-libs/gst/vaapi/gstvaapiprofile.c:
30833 jpeg: fix build with VA-API < 0.32.0.
30835 2012-06-26 15:04:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30840 2012-06-26 15:02:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30843 Bump version for development.
30845 2012-06-26 14:46:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30851 2012-06-26 13:34:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30856 2012-06-25 16:07:55 +0800 Yan Yin <yan.yin@intel.com>
30858 * gst/vaapi/gstvaapipluginutil.c:
30859 vaapiplugin: fix build when compiling without GLX.
30860 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30862 2012-06-26 11:03:25 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30865 configure: disable FFmpeg-based decoders.
30866 FFmpeg decoders are still available through the --enable-ffmpeg option
30867 but are no longer maintained.
30869 2012-06-25 17:25:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30871 * gst-libs/gst/vaapi/Makefile.am:
30872 Fix build with recent GStreamer stack.
30874 2012-06-25 17:10:49 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30877 * gst-libs/gst/vaapi/gstvaapicompat.h:
30878 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30879 jpeg: update to current VA/JPEG decoding API.
30881 2012-06-21 16:06:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30883 * gst-libs/gst/codecparsers/gstjpegparser.c:
30884 * gst-libs/gst/codecparsers/gstjpegparser.h:
30885 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30886 codecparsers: jpeg: track valid quantization and Huffman tables.
30887 Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
30888 to determine whether a table actually changed since the last user
30889 synchronization point. That way, this makes it possible for some
30890 hardware accelerated decoding solution to upload only those tables
30893 2012-06-05 10:10:22 +0800 Wind Yuan <feng.yuan@intel.com>
30895 * gst-libs/gst/codecparsers/gstjpegparser.c:
30896 codecparsers: jpeg: use U_READ_UINT*() wherever possible.
30897 Use GstByteReader *_unchecked() variants as much as possible.
30898 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30900 2012-06-04 16:20:13 +0800 Wind Yuan <feng.yuan@intel.com>
30902 * gst-libs/gst/codecparsers/gstjpegparser.c:
30903 * gst-libs/gst/codecparsers/gstjpegparser.h:
30904 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30905 jpeg: add new GstJpegHuffmanTables structure.
30906 Add new GstJpegHuffmanTables helper structure to hold all possible
30907 AC/DC Huffman tables available to all components.
30908 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30910 2012-06-04 15:52:19 +0800 Wind Yuan <feng.yuan@intel.com>
30912 * gst-libs/gst/codecparsers/gstjpegparser.c:
30913 * gst-libs/gst/codecparsers/gstjpegparser.h:
30914 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30915 jpeg: make gst_jpeg_parse() support multiple scans.
30916 gst_jpeg_parse() now gathers all scans available in the supplied
30917 buffer. A scan comprises of the scan header and any entropy-coded
30918 segments or restart marker following it. The size and offset to
30919 the associated data (ECS + RST segments) are append to a new
30920 GstJpegScanOffsetSize structure.
30921 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30923 2012-04-19 23:50:14 +0800 Wind Yuan <feng.yuan@intel.com>
30925 * gst-libs/gst/codecparsers/gstjpegparser.c:
30926 * gst-libs/gst/codecparsers/gstjpegparser.h:
30927 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30928 jpeg: update to match latest parser API.
30929 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30931 2012-04-13 01:58:39 -0400 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30933 * gst-libs/gst/codecparsers/gstjpegparser.h:
30934 jpeg: simplify and optimize parser API.
30936 2012-04-18 22:30:45 -0400 Wind Yuan <feng.yuan@intel.com>
30938 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30939 mpeg: fix picture used to determine backward_reference_vop_coding_type.
30940 Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
30941 but Gwenole did not apply all the bits.
30942 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30944 2012-04-27 04:13:00 -0400 Wind Yuan <feng.yuan@intel.com>
30946 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30947 mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
30948 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30950 2012-04-27 04:10:17 -0400 Wind Yuan <feng.yuan@intel.com>
30952 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30953 mpeg4: handle skipped frames (vop_hdr->coded = 0).
30954 Gracefully skip non VOP coded frames.
30955 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30957 2012-04-26 04:00:41 -0400 Wind Yuan <feng.yuan@intel.com>
30959 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30960 mpeg4: fix timestamp issues on too fast playback.
30961 Improve generation of presentation timestamps to be less sensitive
30962 to input stream errors. In practise, GOP is also a synchronization
30963 point for PTS calculation.
30964 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30966 2012-04-16 10:02:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30968 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
30969 Fix build without JPEG decoder.
30971 2012-04-12 11:48:24 +0200 Wind Yuan <feng.yuan@intel.com>
30973 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30974 mpeg4: fix VOP coding type of backward reference pictures.
30975 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30977 2012-04-11 23:02:45 -0400 Wind Yuan <feng.yuan@intel.com>
30979 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30980 mpeg4: fix handling of temporal reference distances.
30981 TRD and TRB fields are not large enough to hold the difference of PTS
30982 expressed with nanosecond resolution. So, compute them from the original
30984 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30986 2012-04-12 11:00:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30988 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
30989 dpb: mpeg2: cosmetics.
30990 Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
30992 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
30995 * gst-libs/gst/vaapi/Makefile.am:
30996 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
30997 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30998 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30999 * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
31000 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31001 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31002 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31003 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31004 * gst/vaapi/gstvaapidecode.c:
31005 Add initial JPEG decoder.
31006 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31008 2012-02-10 00:21:04 +0800 Wind Yuan <feng.yuan@intel.com>
31011 * gst-libs/gst/Makefile.am:
31012 * gst-libs/gst/codecparsers/Makefile.am:
31013 * gst-libs/gst/codecparsers/gstjpegparser.c:
31014 * gst-libs/gst/codecparsers/gstjpegparser.h:
31015 * gst-libs/gst/vaapi/Makefile.am:
31016 codecparsers: add JPEG parser.
31017 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31019 2012-04-10 13:29:10 +0200 Wind Yuan <feng.yuan@intel.com>
31021 * gst/vaapi/gstvaapidecode.c:
31022 vaapidecode: fix VA display type.
31023 Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
31025 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31027 2012-04-10 14:28:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31029 * gst/vaapi/gstvaapidecode.c:
31030 vaapidecode: fix includes when compiling for a single API.
31032 2012-04-02 18:42:12 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31035 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31036 mpeg2: fix calculation of macroblock_offset.
31037 Fix decoding of streams with extra slice() information before the first
31038 macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
31040 2012-04-02 18:09:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31042 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31043 mpeg2: fix interpolation of GOP TSN from new PTS.
31044 New GOP TSN base could be mis-calculated. In particular, this fixes
31045 decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
31047 2012-04-02 16:07:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31050 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31051 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31052 mpeg2: fix decoding of high profile streams.
31053 Allow MPEG-2 High profile streams only if the HW supports that profile
31054 or no High profile specific bits are used, and thus Main profile could
31055 be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
31056 set to 11 and no sequence_scalable_extension() was parsed.
31058 2012-04-02 14:51:06 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31061 * gst/vaapi/gstvaapidecode.c:
31062 vaapidecode: report unsupported codec profiles.
31063 Try to gracefully abort when the HW does not support the requested
31064 profile. There is no fallback unless profiles are correctly parsed
31065 and matched through caps beforehand.
31067 2012-02-07 15:23:22 +0100 Holger Kaelberer <holger.k@elberer.de>
31070 * gst/vaapi/gstvaapisink.c:
31071 vaapisink: don't resize a 'foreign' X-window.
31072 Don't forcibly resize foreign X windows. The user is responsible for
31073 their size and vaapisink shall not change this.
31074 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31076 2012-02-07 15:21:05 +0100 Holger Kaelberer <holger.k@elberer.de>
31079 * gst/vaapi/gstvaapisink.c:
31080 * gst/vaapi/gstvaapisink.h:
31081 vaapisink: recalculate render rect only if caps are negotiated.
31082 Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
31083 caps got negotiated. Besides, when a foreign window is provided by the
31084 user, so should the render rect.
31085 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31087 2012-04-02 13:07:34 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31090 Bump version for development.
31092 2012-04-02 10:07:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31097 2012-04-02 12:52:54 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31099 * docs/reference/libs/libs-docs.xml.in:
31100 * docs/reference/libs/libs-sections.txt:
31101 * docs/reference/plugins/plugins-docs.xml.in:
31102 * docs/reference/plugins/plugins-sections.txt:
31103 * docs/reference/plugins/plugins.types:
31104 * gst-libs/gst/vaapi/gstvaapiimage.c:
31105 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31106 * gst/vaapi/gstvaapipostproc.c:
31107 Fix a few documentation issues.
31109 2012-04-02 10:05:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31113 Update introduction and changelog.
31115 2012-04-02 11:29:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31117 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31118 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31119 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31120 mpeg2: allocate dummy picture for first field based I-frame.
31121 In P-pictures, prediction shall be made from the two most recently
31122 decoded reference fields. However, when the first I-frame is a field,
31123 the next field of the current picture could be a P-picture but only a
31124 single field was decoded so far. In this case, create a dummy picture
31125 with POC = -1 that will be used as reference.
31126 Some VA drivers would error out if P-pictures don't have a forward
31127 reference picture. This is true in general but not in this very specific
31130 2012-04-02 10:43:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31132 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31133 mpeg2: fix simple to main profile fallback.
31134 Allow fallback from simple to main profile when the HW decoder does
31135 not support the former profile and that no sequence_header_extension()
31136 is available to point out this.
31138 2012-03-30 03:04:40 -0400 Wind Yuan <feng.yuan@intel.com>
31140 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31141 mpeg4: improve error checking while decoding packets.
31142 decode_picture() could return an error when an MPEG-4 profile is not
31143 supported for example. In this case, the underlying VA context is not
31144 allocated and no other proper action can be taken. Likewise on exit
31145 from decode_slice().
31146 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31148 2012-03-30 17:03:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31150 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31151 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31152 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31153 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31154 decoder: use POC to maintain the DPB.
31155 Introduce a POC field in GstVaapiPicture so that to store simpler sequential
31156 numbers. A signed 32-bit integer should be enough for 1 year of continuous
31157 video streaming at 60 Hz.
31158 Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
31159 This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
31161 2012-03-30 16:23:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31163 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31164 mpeg2: rework generation of presentation timestamps.
31165 Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
31166 i.e. demuxer could not determine the PTS or the generated PTS is lower than
31167 max PTS from past pictures, then try to fix it up based on the duration of
31169 For picture PTS, simply use the GOP PTS formerly computed then use TSN to
31170 reconstruct a current time. Also now handle wrapped TSN correctly.
31172 2012-03-30 17:07:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31174 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31175 mpeg2: ignore empty user-data packets.
31176 Fix tcela-8.bits conformance test.
31178 2012-03-29 11:13:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31180 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31181 mpeg2: review and report errors accordingly.
31182 Use GST_ERROR() to report real errors instead of hiding them into
31185 2012-03-28 19:15:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31187 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31188 mpeg2: fix invalid interlaced frame in progressive sequence.
31189 Some streams, badly constructed, could have signaled an interlaced
31190 frame while the sequence was meant to be progressive. Warn and force
31191 frame to be progressive in this case.
31193 2012-03-28 16:08:29 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31195 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31196 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31197 mpeg2: add support for interlaced streams.
31198 Pictures are submitted to the HW for rendering only when both fields
31199 are decoded or current picture is a full frame.
31201 2012-03-28 14:36:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31203 * gst-libs/gst/vaapi/Makefile.am:
31204 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31205 * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31206 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31207 mpeg2: add new decoded picture buffer infrastructure.
31208 Decoded pictures are now maintained into DPB, similarly to H.264.
31209 The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
31211 2012-03-28 17:50:28 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31213 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31214 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31215 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31216 decoder: add first-field flag to picture.
31217 Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
31218 member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
31219 as the first field. Any subsequent allocated field will become the second field.
31221 2012-03-28 16:05:58 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31223 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31224 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31225 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31226 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31227 decoder: allow pictures to be cloned for field decoding.
31228 Add gst_vaapi_picture_new_field() function that clones a picture, while
31229 preserving the parent picture surface. i.e. the surface proxy reference
31230 count is increased and other fields copied as is. Besides, the picture
31231 is reset into a "non-output" mode.
31233 2012-03-28 16:07:44 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31235 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31236 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31237 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31238 decoder: rework picture field flags.
31239 Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
31240 could be propagated to the surface proxy when it is pushed for rendering.
31241 Besides, top and bottom fields are now expressed with picture structure flags
31242 from GstVaapiSurfaceRenderFlags.
31244 2012-03-28 14:28:26 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31246 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31247 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31248 decoder: add OUTPUT flag to pictures.
31249 Allow pictures to be marked as output gst_vaapi_picture_output().
31251 2012-03-28 14:24:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31253 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31254 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31255 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31256 decoder: fix semantics of SKIPPED pictures.
31257 If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
31258 will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
31259 has nothing to do with rendering. This only means that the currently decoded
31260 picture is just a copy of its reference picture.
31262 2012-03-28 15:16:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31264 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31265 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31266 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31267 * gst/vaapi/gstvaapipostproc.c:
31268 vaapipostproc: get "interlaced" attribute from surface proxy.
31269 Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
31270 vaapipostproc so that to handles cases where bitstream is interlaced
31271 but almost only frame pictures are generated. In this case, we should
31272 not be alternating between top/bottom fields.
31274 2012-03-26 14:37:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31277 * debian.upstream/control.in:
31278 * gst/vaapi/Makefile.am:
31279 * gst/vaapi/gstvaapi.c:
31280 * gst/vaapi/gstvaapipostproc.c:
31281 * gst/vaapi/gstvaapipostproc.h:
31282 vaapipostproc: add new element for video postprocessing.
31283 Add vaapipostproc element for video postprocessing. So far, only basic
31284 bob deinterlacing is implemented. Interlaced mode is automatically
31285 detected based on sink caps ("interlaced" field).
31287 2012-03-26 12:01:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31289 * docs/reference/libs/libs-sections.txt:
31290 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31291 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31292 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31293 * gst/vaapi/gstvaapisink.c:
31294 videobuffer: add surface render flags.
31295 Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
31296 to be set to the video buffer. In particular, this is mostly useful for
31297 basic deinterlacing.
31299 2012-03-23 17:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31301 * gst-libs/gst/vaapi/gstvaapicompat.h:
31302 compat: add compatibility glue with VA-API 0.34+ (WIP).
31304 2012-03-23 17:11:18 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31306 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31307 h264: skip all Filler Data NALs.
31309 2012-03-22 03:28:22 -0400 Wind Yuan <feng.yuan@intel.com>
31311 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31312 mpeg4: check for decoder status prior to decoding packet.
31313 Make sure there is a VA surface free prior to decoding the current frame.
31314 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31316 2012-03-15 04:58:04 -0400 Wind Yuan <feng.yuan@intel.com>
31318 * gst/vaapi/gstvaapidecode.c:
31319 * gst/vaapi/gstvaapidecode.h:
31320 decode: delay NEWSEGMENT event if vaapidecode element was not linked.
31321 Rationale: playbin2 links all elements at run-time. Once vaapidecode
31322 is created and a NEWSEGMENT event arrives, downstream element may not
31323 be ready yet. So, delay this event until next element is chained in,
31324 otherwise basesink could output "Received buffer without a new-segment.
31325 Assuming timestamps start from 0".
31326 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31328 2012-03-13 20:33:41 -0400 Wind Yuan <feng.yuan@intel.com>
31330 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31331 mpeg2: fix GOP timestamps when incorrect data is received.
31332 Some streams have incorrect GOP timestamps, or nothing set at all.
31333 i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
31334 from demuxer timestamps, which are monotonic.
31335 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31337 2012-03-13 02:03:31 -0400 Wind Yuan <feng.yuan@intel.com>
31339 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31340 mpeg2: don't decode anything before the first sequence_header().
31341 Skip all pictures prior to the first sequence_header(). Besides,
31342 skip all picture_data() if there was no prior picture_header().
31343 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31345 2012-02-07 15:57:14 +0100 Holger Kaelberer <holger.k@elberer.de>
31347 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31348 ffmpeg: add support for interlaced streams.
31349 Evaluate interlaced stream properties.
31350 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31352 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31354 * gst/vaapi/gstvaapidecode.c:
31355 vaapidecode: propagate interlaced and TFF properties downstream.
31356 Propagate "interlaced" caps downstream and set "tff" buffer flag
31357 appropriately to output buffers for interlaced pictures.
31358 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31360 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31362 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31363 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31364 decoder: maintain caps for interlaced streams.
31365 Extend GstVaapiDecoder base object to maintain caps with "interlaced"
31367 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31369 2012-02-07 15:54:15 +0100 Holger Kaelberer <holger.k@elberer.de>
31371 * docs/reference/libs/libs-sections.txt:
31372 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31373 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31374 surfaceproxy: add TFF property.
31375 Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
31376 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31378 2012-03-16 14:21:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31381 AUTHORS: update to match current authors.
31383 2012-02-28 11:58:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31385 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31386 mpeg2: fix is_first_field calculation.
31387 Reset is_first_field for frame pictures. Factor out locations where
31388 the flag is updated.
31390 2012-02-24 12:56:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31392 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31393 mpeg2: catch incorrect picture_structure from bitstreams.
31394 Assume "frame" picture structure if the syntax element was zero or if
31395 progressive_frame is set.
31397 2012-02-24 12:53:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31399 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31400 mpeg2: fix slice_vertical_position calculation (again).
31401 VA-API expects slice_vertical_position as the initial position from the
31402 bitstream. i.e. the direct slice() information. VA drivers will be fixed
31405 2012-03-02 15:03:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31407 * gst/vaapi/gstvaapidecode.c:
31408 Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
31409 This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
31410 For gst_element_class_get_pad_template(), no unreferencing is necessary
31411 according to the GStreamer documentation.
31413 2012-03-02 13:41:16 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31416 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31417 h264: fix slice_data_bit_offset calculation.
31418 Unlike what VA-API documentation defines, the slice_data_bit_offset
31419 represents the offset to the first macroblock in the slice data, minus
31420 any emulation prevention bytes in the slice_header().
31421 This fix copes with binary-only VA drivers that won't be fixed any
31422 time soon. Besides, this aligns with the current FFmpeg behaviour
31423 that was based on those proprietary drivers implementing the API
31426 2012-02-21 02:11:20 -0500 Wind Yuan <feng.yuan@intel.com>
31428 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31429 h264: skip all Access Unit (AU) NALs.
31430 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31432 2012-02-29 03:08:46 -0500 Wind Yuan <feng.yuan@intel.com>
31434 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31435 h264: fix modification process of reference picture lists.
31436 Construction of RefPicList0/1 could be off by one element.
31437 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31439 2012-02-12 11:21:52 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31441 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31442 mpeg2: fix size calculation from sequence_extension().
31443 Original values from sequence_header() are 12-bit and the remaining
31444 2 most significant bits are coming from sequence_extension().
31445 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31447 2012-02-23 16:39:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31449 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31450 mpeg2: fix slice_vertical_position calculation.
31451 Make sure to adjust slice_vertical_position if picture structure
31452 is a top or bottom field.
31454 2012-02-23 16:23:27 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31456 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31457 decoder: add picture structure flags.
31459 2012-02-23 14:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31461 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31462 mpeg2: fix decoding at end-of-sequence.
31464 2012-02-23 14:17:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31466 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31467 mpeg2: fix slice_horizontal_position calculation.
31469 2012-02-23 16:14:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31471 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31472 mpeg2: drop useless mb_y and mb_height members.
31474 2012-02-23 11:19:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31476 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31477 mpeg2: fix decoding of multiple slices with same slice_vertical_position.
31478 6.3.15 says that "some slices may have the same slice_vertical_position,
31479 since slices may start and finish anywhere". So, we can't submit the current
31480 picture to the HW right away since subsequent slices would be missing.
31482 2012-02-15 14:08:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31484 * gst-libs/gst/vaapi/gstvaapiimage.c:
31485 image: fix source stride in picture copy.
31487 2012-02-13 10:10:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31489 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31490 decoder: fix double buffer free with some VA drivers.
31491 vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
31492 push the VA buffer object into a list of free buffers to be re-used. However,
31493 reference pictures (and data) that was kept would explicitly release the VA
31494 buffer object later on, thus possibly destroying a valid (re-used) object.
31495 Besides, some other VA drivers don't support correctly the vaRenderPicture()
31496 semantics for VA buffers disposal and would leak memory if there is no explicit
31497 vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
31498 right after vaRenderPicture(). All VA drivers need to be aligned.
31500 2012-02-08 18:08:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31502 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31503 h264: complete any current picture decoder before SPS / PPS change.
31504 This ensures the VA context is clear when the encoded resolution
31505 changes. i.e. make sure older picture is decoded with the older
31506 VA context before it changes.
31508 2012-02-08 18:07:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31510 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31511 h264: create VA context earlier when SPS is parsed.
31513 2012-02-08 17:57:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31515 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31516 h264: don't allocate too big data structures on stack.
31518 2012-02-07 11:07:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31520 * gst-libs/gst/vaapi/glibcompat.h:
31521 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31522 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31523 glib: map deprecated API to glib >= 2.32 equivalents.
31524 GStaticMutex and GStaticRecMutex are now replaced with GMutex and
31525 GRecMutex, which no longer require any prior call to g_thread_init().
31527 2012-02-07 10:01:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31529 * gst-libs/gst/vaapi/gstvaapiutils.h:
31530 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31531 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
31532 glib: fix includes.
31534 2012-02-07 10:05:53 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31536 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31537 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31538 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31539 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31540 cosmetics: fix warnings (drop unused variables).
31542 2012-02-06 16:11:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31544 * gst/vaapi/gstvaapidecode.c:
31545 vaapidecode: fix another pad template ref leak.
31547 2012-02-06 15:54:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31549 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31550 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31551 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31552 mpeg2: fix crash when there is no free surface to decode into.
31554 2012-01-31 16:38:58 +0800 Zhao Halley <halley.zhao@intel.com>
31556 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31557 display: skip profiles which have no entrypoints.
31558 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31560 2012-02-05 18:28:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31562 * gst/vaapi/gstvaapiupload.c:
31563 vaapiupload: use g_object_unref() for GstVaapiImage.
31565 2012-02-05 18:24:08 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31567 * gst/vaapi/gstvaapidecode.c:
31568 * gst/vaapi/gstvaapidownload.c:
31569 * gst/vaapi/gstvaapisink.c:
31570 * gst/vaapi/gstvaapiupload.c:
31571 plugins: fix pad template ref leaks.
31573 2012-02-02 09:23:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31576 Bump version for development.
31578 2012-02-01 23:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31584 2012-02-01 23:32:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31588 Mention codecparsers-based decoders, FFmpeg is now optional. Update
31589 list of support HW.
31591 2012-02-01 23:28:23 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31596 2012-01-31 11:34:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31598 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31599 decoder: allocate proxy surface earlier.
31600 This simplifies gst_vaapi_picture_output() to only update the presentation
31601 timestamp and submit the proxy to the decoder for output.
31603 2012-01-31 11:26:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31605 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31606 decoder: fix memory leak of VA objects on exit.
31607 On sequence end, if the last decoded picture is not output for rendering,
31608 then the proxy surface is not created. In this case, the original surface
31609 must be released explicitly to the context.
31611 2012-01-31 10:47:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31613 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31614 mpeg2: use GstAdapter to track input sequence.
31615 This fixes possible memory leaks and improves performance by removing
31618 2012-01-30 18:25:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31621 * gst-libs/gst/vaapi/Makefile.am:
31622 * gst-libs/gst/vaapi/glibcompat.h:
31623 * gst-libs/gst/vaapi/sysdeps.h:
31624 Add glib compatibility glue for older versions.
31626 2012-01-30 18:12:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31628 * gst-libs/gst/vaapi/Makefile.am:
31629 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31630 * gst-libs/gst/vaapi/gstvaapicontext.c:
31631 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31632 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31633 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31634 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31635 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31636 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31637 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31638 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31639 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31640 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31641 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31642 * gst-libs/gst/vaapi/gstvaapiimage.c:
31643 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
31644 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
31645 * gst-libs/gst/vaapi/gstvaapiobject.c:
31646 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
31647 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31648 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31649 * gst-libs/gst/vaapi/gstvaapisurface.c:
31650 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
31651 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31652 * gst-libs/gst/vaapi/gstvaapitexture.c:
31653 * gst-libs/gst/vaapi/gstvaapiutils.c:
31654 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31655 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31656 * gst-libs/gst/vaapi/gstvaapivalue.c:
31657 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31658 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
31659 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31660 * gst-libs/gst/vaapi/gstvaapivideopool.c:
31661 * gst-libs/gst/vaapi/gstvaapivideosink.c:
31662 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31663 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
31664 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
31665 * gst-libs/gst/vaapi/sysdeps.h:
31666 Add header for system-dependent definitions.
31668 2012-01-30 10:15:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31670 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31671 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31672 * gst-libs/gst/vaapi/gstvaapiutils.c:
31673 * gst-libs/gst/vaapi/gstvaapiutils.h:
31674 decoder: optimize slice data buffers initialization.
31675 VA drivers may have a faster means to transfer user buffers to GPU
31676 buffers than using memcpy(). In particular, on Intel Gen graphics, we
31677 can use pwrite(). This provides for faster upload of bitstream and can
31678 help higher bitrates.
31679 vaapi_create_buffer() helper function was also updated to allow for
31680 un-mapped buffers and pre-initialized data for buffers.
31682 2012-01-27 17:28:50 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31684 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31685 h264: simplify RefPicList reconstruction.
31687 2012-01-27 16:08:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31689 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31690 h264: flush DPB when the end of the sequence is reached.
31692 2012-01-24 15:38:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31694 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31695 h264: handle Decoded Picture Buffer (DPB).
31697 2012-01-24 09:20:25 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31699 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31700 h264: fix pred_weight_table() reconstruction.
31701 Only the explicit pred_weight_table(), possibly with the inferred default
31702 values, shall be required. e.g. don't fill in the table if weighted_pred_flag
31703 is not set for P/SP slices.
31705 2012-01-23 15:03:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31707 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31708 h264: execute reference picture marking process (MMCO).
31710 2012-01-23 15:20:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31712 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31713 h264: fix presentation timestamps.
31715 2012-01-18 13:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31717 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31718 h264: execute reference picture marking process (sliding window).
31720 2012-01-17 10:42:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31722 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31723 h264: handle avcC format for decoding buffers.
31725 2011-11-25 14:37:00 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31727 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31728 h264: handle codec-data.
31729 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31731 2011-08-12 17:43:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31733 * gst-libs/gst/vaapi/Makefile.am:
31734 * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31735 * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
31736 * gst/vaapi/gstvaapidecode.c:
31737 * tests/test-decode.c:
31738 Add initial H.264 decoder.
31740 2012-01-26 15:28:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31742 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31743 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31744 decoder: retain proxy surface until the GstVaapiPicture is destroyed.
31745 Keep a valid reference to the proxy in GstVaapiPicture so that frames
31746 marked as "used for reference" could be kept during the lifetime of the
31747 picture. i.e. don't release them too soon as they could be re-used right
31750 2012-01-26 15:19:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31752 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31753 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31754 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31755 decoder: properly reference count pictures.
31756 This fixes cases where a GstVaapiPicture would be destroyed whereas
31757 there is still a valid instance of it in either prev, current or
31760 2012-01-26 14:54:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31762 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31763 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31764 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31765 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31766 decoder: simplify output of decoded frames.
31767 Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
31768 Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
31769 is already set correctly and reference count increased, if necessary.
31771 2012-01-26 09:48:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31773 * gst-libs/gst/vaapi/Makefile.am:
31774 * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31775 * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31776 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31777 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31778 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31779 * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31780 * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31781 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31782 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31783 decoder: rework the internal VA objects API.
31784 The new API simplifies a lot reference counting and makes it more
31785 flexible for future additions/changes. The GstVaapiCodecInfo is
31786 also gone. Rather, new helper macros are provided to allocate
31787 picture, slice and quantization matrix parameter buffers.
31789 2012-01-24 10:21:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31791 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31792 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31793 decoder: allow slices to be attached to pictures later.
31795 2011-11-21 18:39:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31797 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31798 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31799 decoder: add ref_count to GstVaapiPicture.
31801 2012-01-23 11:48:42 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31803 * gst/vaapi/gstvaapisink.c:
31804 vaapisink: cap window size to the maximum display size.
31806 2012-01-18 10:23:41 +0100 Zhao Halley <halley.zhao@intel.com>
31808 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31809 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31810 profile: match video/x-h263 as H.263 Baseline profile.
31811 HACK: qtdemux does not report profiles for H.263. So, assume plain
31812 "video/x-h263" is H.263 Baseline profile.
31813 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31815 2012-01-18 10:22:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31817 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31818 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31819 display: report H.263 Baseline profile.
31820 HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
31821 profile (VAProfileMPEG4Simple) is supported.
31823 2012-01-24 10:06:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31825 * gst-libs/gst/vaapi/Makefile.am:
31826 * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31827 Add template for workarounds.
31829 2012-01-18 10:47:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31831 * tests/test-decode.c:
31832 tests: error out if FFmpeg|codecparsers are not supported.
31834 2012-01-18 10:42:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31836 * docs/reference/libs/libs-sections.txt:
31837 * gst-libs/gst/vaapi/gstvaapisurface.h:
31838 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
31839 surface: don't expose gst_vaapi_surface_get_parent_context().
31840 gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
31841 It's just an internal helper function. However, it's still possible to get
31842 the parent context through the "parent-context" property.
31844 2012-01-16 14:19:00 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31846 * tests/Makefile.am:
31847 * tests/test-subpicture.c:
31848 tests: fix build without FFmpeg.
31850 2012-01-16 14:09:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31853 Bump version for development.
31855 2012-01-16 11:05:31 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31861 2012-01-16 11:03:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31864 * debian.upstream/copyright:
31865 * gst-libs/gst/vaapi/gstvaapicontext.c:
31866 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31867 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31868 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31869 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31870 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31871 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31872 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
31873 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31874 * gst-libs/gst/vaapi/gstvaapiimage.c:
31875 * gst-libs/gst/vaapi/gstvaapiimage.h:
31876 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31877 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31878 * gst-libs/gst/vaapi/gstvaapiutils.c:
31879 * gst-libs/gst/vaapi/gstvaapiutils.h:
31880 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31881 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31882 * gst/vaapi/gstvaapi.c:
31883 * gst/vaapi/gstvaapidecode.c:
31884 * gst/vaapi/gstvaapidownload.c:
31885 * gst/vaapi/gstvaapidownload.h:
31886 * gst/vaapi/gstvaapipluginutil.c:
31887 * gst/vaapi/gstvaapipluginutil.h:
31888 * gst/vaapi/gstvaapisink.c:
31889 * gst/vaapi/gstvaapiupload.c:
31890 * gst/vaapi/gstvaapiupload.h:
31891 * tests/test-decode.c:
31892 legal: fix year for some copyright notices.
31894 2012-01-16 10:42:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31896 * gst-libs/gst/vaapi/gstvaapicontext.c:
31897 * gst-libs/gst/vaapi/gstvaapicontext.h:
31898 * gst-libs/gst/vaapi/gstvaapidecoder.h:
31899 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31900 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31901 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31902 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31903 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
31904 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31905 * gst-libs/gst/vaapi/gstvaapiimage.c:
31906 * gst-libs/gst/vaapi/gstvaapiimage.h:
31907 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
31908 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
31909 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31910 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
31911 * gst-libs/gst/vaapi/gstvaapisurface.c:
31912 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31913 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31914 * gst-libs/gst/vaapi/gstvaapiutils.c:
31915 * gst-libs/gst/vaapi/gstvaapiutils.h:
31916 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31917 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31918 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31919 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31920 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31921 * gst/vaapi/gstvaapidownload.h:
31922 * gst/vaapi/gstvaapisink.h:
31923 * gst/vaapi/gstvaapiupload.h:
31924 * tests/test-decode.c:
31925 legal: add Intel copyright on modified files.
31927 2012-01-16 10:41:10 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31929 * gst-libs/gst/vaapi/gstvaapi_priv.h:
31930 * gst-libs/gst/vaapi/gstvaapicompat.h:
31931 * gst-libs/gst/vaapi/gstvaapicontext.c:
31932 * gst-libs/gst/vaapi/gstvaapicontext.h:
31933 * gst-libs/gst/vaapi/gstvaapidebug.h:
31934 * gst-libs/gst/vaapi/gstvaapidecoder.c:
31935 * gst-libs/gst/vaapi/gstvaapidecoder.h:
31936 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31937 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
31938 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31939 * gst-libs/gst/vaapi/gstvaapidisplay.c:
31940 * gst-libs/gst/vaapi/gstvaapidisplay.h:
31941 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31942 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
31943 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
31944 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
31945 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31946 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
31947 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
31948 * gst-libs/gst/vaapi/gstvaapiimage.c:
31949 * gst-libs/gst/vaapi/gstvaapiimage.h:
31950 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
31951 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
31952 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
31953 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
31954 * gst-libs/gst/vaapi/gstvaapiobject.c:
31955 * gst-libs/gst/vaapi/gstvaapiobject.h:
31956 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
31957 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
31958 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
31959 * gst-libs/gst/vaapi/gstvaapiprofile.c:
31960 * gst-libs/gst/vaapi/gstvaapiprofile.h:
31961 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31962 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
31963 * gst-libs/gst/vaapi/gstvaapisurface.c:
31964 * gst-libs/gst/vaapi/gstvaapisurface.h:
31965 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
31966 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
31967 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31968 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31969 * gst-libs/gst/vaapi/gstvaapitexture.c:
31970 * gst-libs/gst/vaapi/gstvaapitexture.h:
31971 * gst-libs/gst/vaapi/gstvaapitypes.h:
31972 * gst-libs/gst/vaapi/gstvaapiutils.c:
31973 * gst-libs/gst/vaapi/gstvaapiutils.h:
31974 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31975 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31976 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31977 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
31978 * gst-libs/gst/vaapi/gstvaapivalue.c:
31979 * gst-libs/gst/vaapi/gstvaapivalue.h:
31980 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31981 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31982 * gst-libs/gst/vaapi/gstvaapivideopool.c:
31983 * gst-libs/gst/vaapi/gstvaapivideopool.h:
31984 * gst-libs/gst/vaapi/gstvaapivideosink.c:
31985 * gst-libs/gst/vaapi/gstvaapivideosink.h:
31986 * gst-libs/gst/vaapi/gstvaapiwindow.c:
31987 * gst-libs/gst/vaapi/gstvaapiwindow.h:
31988 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
31989 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
31990 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
31991 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
31992 * gst/vaapi/gstvaapidecode.c:
31993 * gst/vaapi/gstvaapidecode.h:
31994 * gst/vaapi/gstvaapidownload.c:
31995 * gst/vaapi/gstvaapidownload.h:
31996 * gst/vaapi/gstvaapisink.c:
31997 * gst/vaapi/gstvaapisink.h:
31998 * gst/vaapi/gstvaapiupload.c:
31999 * gst/vaapi/gstvaapiupload.h:
32002 * tests/test-decode.c:
32003 * tests/test-decode.h:
32004 * tests/test-display.c:
32005 * tests/test-h264.c:
32006 * tests/test-h264.h:
32007 * tests/test-mpeg2.c:
32008 * tests/test-mpeg2.h:
32009 * tests/test-surfaces.c:
32010 * tests/test-textures.c:
32011 * tests/test-vc1.c:
32012 * tests/test-vc1.h:
32013 * tests/test-windows.c:
32014 legal: fix copyright notices to include "Copyright" term.
32016 2011-12-09 16:44:03 +0800 Zhao Halley <halley.zhao@intel.com>
32018 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32019 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32020 mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32021 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32023 2011-12-09 16:28:11 +0800 Zhao Halley <halley.zhao@intel.com>
32025 * gst-libs/gst/vaapi/Makefile.am:
32026 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32027 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32028 * gst/vaapi/gstvaapidecode.c:
32029 Add initial MPEG-4 decoder.
32030 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32032 2011-11-18 15:41:40 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32034 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32035 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32036 vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32037 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32039 2011-10-07 11:50:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32041 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32042 vc1: fix codec-data decoding for WMV3 format.
32044 2011-10-07 11:12:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32046 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32047 vc1: fix presentation timestamps.
32049 2011-10-06 15:59:22 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32051 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32052 vc1: fix MV mode packing.
32054 2011-10-05 16:41:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32056 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32057 vc1: handle codec-data.
32059 2011-10-05 15:56:36 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32061 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32062 vc1: handle encapsulated bitstreams.
32064 2011-10-04 17:51:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32066 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32067 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32068 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32069 vc1: fix bitplanes decoding.
32071 2011-10-04 14:15:55 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32073 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32074 vc1: fix BFRACTION reconstruction.
32076 2011-09-30 17:16:23 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32078 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32079 vc1: fix framerate calculation.
32081 2011-09-30 13:40:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32083 * gst-libs/gst/vaapi/Makefile.am:
32084 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32085 * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32086 * gst/vaapi/gstvaapidecode.c:
32087 * tests/test-decode.c:
32088 Add initial VC-1 decoder.
32090 2012-01-09 17:37:34 +0100 Zhao Halley <halley.zhao@intel.com>
32092 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32093 mpeg2: fix first field detection.
32094 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32096 2012-01-06 16:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32098 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32099 mpeg2: fix quantisation matrix construction.
32101 2011-11-18 15:06:07 +0200 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32103 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32104 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32105 mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
32106 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32108 2011-09-14 18:11:57 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32110 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32111 mpeg2: fix packets spanning over two buffers.
32113 2011-09-12 18:20:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32115 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32116 mpeg2: ignore system start codes (PES headers).
32118 2011-09-12 18:02:53 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32120 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32121 mpeg2: handle closed_gop.
32123 2011-08-05 11:55:11 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32125 * gst-libs/gst/vaapi/Makefile.am:
32126 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32127 * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32128 * gst/vaapi/gstvaapidecode.c:
32129 * tests/test-decode.c:
32130 Add initial MPEG-2 decoder.
32132 2011-08-12 10:21:19 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32135 * gst-libs/gst/vaapi/Makefile.am:
32136 * gst/vaapi/gstvaapidecode.c:
32137 * tests/test-decode.c:
32138 Allow conditional build of GStreamer/FFmpeg bitstream parsers.
32140 2011-08-05 11:53:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32142 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32143 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32144 Add VA decoder helpers.
32146 2011-08-05 11:52:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32148 * gst-libs/gst/vaapi/gstvaapidecoder.h:
32149 decoder: add new error codes.
32150 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
32151 GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
32153 2011-09-12 13:00:59 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32155 * gst-libs/gst/vaapi/Makefile.am:
32156 * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
32157 * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
32158 Add timestamp buffer store helper utils.
32160 2011-08-04 17:29:41 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32162 * gst-libs/gst/vaapi/gstvaapiutils.c:
32163 * gst-libs/gst/vaapi/gstvaapiutils.h:
32164 Add VA buffer helpers.
32166 2012-01-13 15:03:38 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32168 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32169 utils: slight improvements to gl_bind_texture().
32171 2012-01-13 14:13:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32173 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32174 utils: pretty-print output of gl_get_error_string().
32176 2012-01-13 14:03:29 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32178 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32179 utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
32181 2012-01-13 12:09:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32183 * gst-libs/gst/vaapi/gstvaapiutils.c:
32184 utils: simplify string of VAProfile/VAEntrypoint.
32186 2012-01-13 11:46:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32188 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32189 * gst-libs/gst/vaapi/gstvaapiutils.c:
32190 * gst-libs/gst/vaapi/gstvaapiutils.h:
32191 utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
32193 2012-01-12 17:18:47 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32198 2012-01-12 15:34:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32200 * tests/test-decode.c:
32201 tests: check for shared VA displays (display cache).
32203 2012-01-12 15:30:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32205 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32206 display: always free VA display cache if it is empty.
32208 2012-01-12 15:03:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32210 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32211 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32212 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32213 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32214 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32215 display: use VA display cache for X11 and GLX winsys.
32217 2012-01-12 12:46:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32219 * gst-libs/gst/vaapi/Makefile.am:
32220 * gst-libs/gst/vaapi/gstvaapidisplay.h:
32221 * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32222 * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
32223 display: implement a VA display cache.
32225 2012-01-11 14:13:06 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32227 * gst/vaapi/gstvaapipluginutil.c:
32228 vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
32229 This ensures the display name provided to gst_vaapi_display_*_new()
32230 maps to the system defaults, instead of forcing "" that could be different
32231 from the current DISPLAY name.
32233 2011-08-26 15:44:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32235 * gst/vaapi/gstvaapiupload.c:
32236 vaapiupload: only set caps on newly created buffers.
32237 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32239 2012-01-11 14:11:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32241 * gst/vaapi/gstvaapisink.c:
32242 vaapisink: ensure VA display in GstBaseSink::start() hook.
32243 This ensures a VA display is ready by the time upstream elements request
32246 2011-08-26 15:44:46 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32248 * gst/vaapi/gstvaapisink.c:
32249 vaapisink: don't leak GL texture.
32250 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32252 2012-01-09 16:51:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32254 * gst/vaapi/gstvaapisink.c:
32255 vaapisink: fix calculation of render region.
32257 2012-01-09 11:23:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32259 * gst/vaapi/gstvaapisink.c:
32260 vaapisink: automatically fit video to window.
32262 2012-01-09 10:37:30 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32264 * gst/vaapi/gstvaapisink.c:
32265 vaapisink: implement GstXOverlay::set_render_rectangle().
32267 2012-01-09 11:04:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32269 * gst-libs/gst/vaapi/gstvaapiwindow.c:
32270 window: always check geometry when the window is mapped.
32272 2012-01-06 17:51:59 +0100 Zhao Halley <halley.zhao@intel.com>
32274 * gst-libs/gst/vaapi/gstvaapiutils.c:
32275 Add missing profiles from VA-API 0.32.0.
32276 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32278 2012-01-06 16:48:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32281 .gitignore: add test-subpicture.
32283 2012-01-06 11:23:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32286 Bump version for development.
32288 2012-01-06 11:20:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32294 2012-01-06 11:18:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32296 * tests/Makefile.am:
32297 tests: fix make dist (ship with test-subpicture-data.h).
32299 2012-01-05 17:35:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32304 2012-01-05 17:09:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32306 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32307 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32308 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32309 decoder: fix possible leak of VA surfaces.
32310 Under some circumstances, we could have leaked a surface, thus not
32311 releasing it to the pool of available surfaces in the VA context.
32312 The strategy is now to use a proxy earlier and automatically ref/unref
32313 whenever necessary. In particular, during the lifetime needed for FFmpeg.
32315 2012-01-05 16:59:57 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32317 * docs/reference/libs/libs-sections.txt:
32318 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32319 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32320 surfaceproxy: add helper to retrieve the VA surface ID.
32322 2012-01-05 16:44:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32324 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32325 surfaceproxy: simplify destruction.
32326 Also make sure to always make sure to release the surface back to the
32327 pool of surfaces in the associated VA context, if any.
32329 2012-01-05 16:26:49 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32331 * gst/vaapi/gstvaapidecode.c:
32332 vaapidecode: fix deinitialization order.
32334 2012-01-05 14:50:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32336 * gst-libs/gst/vaapi/gstvaapicontext.c:
32337 context: avoid self reference loops with surfaces.
32339 2012-01-05 11:23:01 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32341 * debian.upstream/control.in:
32342 debian: update control.in description for new plugins.
32344 2012-01-05 11:01:56 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32346 * gst/vaapi/gstvaapiupload.c:
32347 vaapiupload: use new gst_vaapi_append_surface_caps() helper.
32348 This also fixes extra structures, beyond the one at index 0, to hold
32349 the right additional values.
32351 2012-01-05 10:55:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32353 * gst/vaapi/gstvaapiupload.c:
32354 vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
32356 2012-01-05 10:50:59 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32359 * docs/reference/plugins/plugins-docs.xml.in:
32360 * docs/reference/plugins/plugins-sections.txt:
32361 * docs/reference/plugins/plugins.types:
32362 * gst/vaapi/Makefile.am:
32363 * gst/vaapi/gstvaapi.c:
32364 * gst/vaapi/gstvaapidownload.c:
32365 * gst/vaapi/gstvaapidownload.h:
32366 vaapidownload: add new plugin to download pixels from VA surfaces.
32368 2012-01-05 11:00:39 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32370 * gst/vaapi/gstvaapipluginutil.c:
32371 * gst/vaapi/gstvaapipluginutil.h:
32372 vaapipluingutils: add helper to append surface caps to YUV caps.
32374 2012-01-05 10:29:48 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32376 * docs/reference/libs/libs-sections.txt:
32377 * gst-libs/gst/vaapi/gstvaapiimage.c:
32378 * gst-libs/gst/vaapi/gstvaapiimage.h:
32379 image: add helpers to extract pixels to user buffers.
32381 2012-01-04 11:34:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32383 * gst-libs/gst/vaapi/gstvaapiimage.c:
32384 image: simplify initialization of raw images from video buffers.
32386 2012-01-04 11:29:11 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32388 * gst-libs/gst/vaapi/gstvaapiimage.c:
32389 image: fix update from NV12 buffers.
32391 2012-01-03 18:16:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32393 * gst/vaapi/gstvaapiupload.c:
32394 vaapiupload: fix memory leak in _init() function.
32396 2012-01-03 14:34:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32400 * debian.upstream/control.in:
32401 * docs/reference/plugins/plugins-docs.xml.in:
32402 * docs/reference/plugins/plugins-sections.txt:
32403 * docs/reference/plugins/plugins.types:
32404 * gst/vaapi/Makefile.am:
32405 * gst/vaapi/gstvaapi.c:
32406 * gst/vaapi/gstvaapiupload.c:
32407 * gst/vaapi/gstvaapiupload.h:
32408 Rename vaapiconvert element to vaapiupload.
32410 2012-01-03 13:54:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32413 Bump version for development.
32415 2012-01-03 13:42:12 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32421 2011-12-14 15:22:24 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32426 2011-12-14 14:40:37 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32428 * gst-libs/gst/vaapi/gstvaapisurface.c:
32429 * gst-libs/gst/vaapi/gstvaapisurface.h:
32430 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32431 * gst/vaapi/gstvaapisink.c:
32432 surface: apply composition to the parent context, if requested.
32434 2011-12-14 14:35:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32436 * docs/reference/libs/libs-sections.txt:
32437 * gst-libs/gst/vaapi/gstvaapicontext.c:
32438 * gst-libs/gst/vaapi/gstvaapicontext.h:
32439 context: make it possible to apply composition globally.
32441 2011-12-14 14:13:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32443 * gst-libs/gst/vaapi/gstvaapisurface.c:
32444 surface: fix associate subpicture to not report deassociation errors.
32446 2011-12-14 13:46:26 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32448 * gst-libs/gst/vaapi/gstvaapisurface.c:
32449 surface: fix typo in debug message.
32451 2011-12-14 13:16:21 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32453 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32454 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32455 * gst-libs/gst/vaapi/gstvaapisurface.c:
32456 subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
32458 2011-12-13 16:53:15 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32460 * docs/reference/libs/libs-sections.txt:
32461 * gst-libs/gst/vaapi/Makefile.am:
32462 * gst-libs/gst/vaapi/gstvaapicontext.c:
32463 * gst-libs/gst/vaapi/gstvaapisurface.c:
32464 * gst-libs/gst/vaapi/gstvaapisurface.h:
32465 * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32466 surface: record parent context.
32468 2011-12-13 15:59:02 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32470 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32471 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32472 * gst/vaapi/gstvaapidecode.c:
32473 * gst/vaapi/gstvaapisink.c:
32476 2011-12-13 15:51:58 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32478 * gst-libs/gst/vaapi/gstvaapisurface.c:
32479 * gst-libs/gst/vaapi/gstvaapisurface.h:
32480 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32481 * gst/vaapi/gstvaapisink.c:
32482 Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
32484 2011-12-13 13:40:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32487 configure: check for GstVideoOverlayComposition.
32489 2011-12-12 18:42:44 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32494 2011-11-25 15:00:25 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32496 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32497 converter: add support for GstVideoOverlayComposition planes.
32498 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32500 2011-11-23 16:45:46 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32502 * gst/vaapi/gstvaapisink.c:
32503 vaapisink: handle GstVideoOverlayComposition planes.
32504 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32506 2011-12-12 18:27:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32508 * gst-libs/gst/vaapi/gstvaapisurface.c:
32509 surface: use unscaled overlay rectangle for blending.
32511 2011-12-12 18:37:13 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32513 * gst-libs/gst/vaapi/gstvaapisurface.c:
32514 surface: fix VA image leak when an error occurred.
32516 2011-11-25 14:59:56 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32518 * gst-libs/gst/vaapi/gstvaapisurface.c:
32519 * gst-libs/gst/vaapi/gstvaapisurface.h:
32520 surface: add helper to handle GstVideoOverlayComposition.
32521 This helper resets the subpictures to reflect the current composition
32522 layers provided with the buffers.
32523 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32525 2011-12-12 18:13:19 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32527 * docs/reference/libs/libs-sections.txt:
32528 * gst-libs/gst/vaapi/Makefile.am:
32529 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32530 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32531 * gst/vaapi/gstvaapiconvert.c:
32532 image: add gst_vaapi_image_format_from_video() helper.
32534 2011-12-12 16:34:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32536 * gst-libs/gst/vaapi/gstvaapiimage.c:
32537 * gst-libs/gst/vaapi/gstvaapiimage.h:
32538 image: allow updates from GstVaapiImageRaw.
32540 2011-12-12 14:34:03 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32542 * gst-libs/gst/vaapi/gstvaapiimage.c:
32543 * gst-libs/gst/vaapi/gstvaapiimage.h:
32544 * gst/vaapi/gstvaapiconvert.c:
32545 * tests/test-subpicture.c:
32546 image: allow partial updates.
32548 2011-12-12 15:31:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32550 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32551 subpicture: fix doc for gst_vaapi_subpicture_set_image().
32553 2011-12-12 13:39:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32555 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32556 display: fix has_image_format() to check against subpicture formats.
32558 2011-10-17 18:43:15 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32560 * tests/test-subpicture.c:
32561 tests: fix subpicture test.
32563 2011-10-14 13:00:12 -0300 Thibault Saunier <thibault.saunier@collabora.com>
32565 * tests/Makefile.am:
32566 * tests/test-subpicture-data.c:
32567 * tests/test-subpicture-data.h:
32568 * tests/test-subpicture.c:
32569 tests: add test for subpictures.
32570 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32572 2011-11-25 12:28:04 -0500 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32574 * gst/vaapi/gstvaapiconvert.c:
32575 * gst/vaapi/gstvaapidecode.c:
32576 Add missing video context queries.
32577 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32579 2011-12-12 13:22:07 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32582 Bump version for development.
32584 2011-12-12 10:04:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32586 * gst-libs/gst/video/Makefile.am:
32587 * gst-libs/gst/video/gstbasevideocodec.c:
32588 * gst-libs/gst/video/gstbasevideocodec.h:
32589 * gst-libs/gst/video/gstbasevideodecoder.c:
32590 * gst-libs/gst/video/gstbasevideodecoder.h:
32591 * gst-libs/gst/video/gstbasevideoutils.c:
32592 * gst-libs/gst/video/gstbasevideoutils.h:
32593 Drop unused copy of GstBaseVideoDecoder.
32595 2011-12-09 11:46:45 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32601 2011-12-09 11:38:43 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32604 README: update dependencies.
32606 2011-12-09 11:38:34 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32611 2011-12-09 11:20:04 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32614 configure: check for GstBaseSink 'query' vfunc.
32616 2011-12-09 10:45:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32618 * gst/vaapi/Makefile.am:
32619 vaapiplugin: include local build dir to CFLAGS for generated files.
32621 2011-12-09 10:44:52 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32624 autogen: don't configure if NO_CONFIGURE variable is set.
32626 2011-12-08 11:54:59 +0100 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32628 * gst/vaapi/gstvaapidecode.c:
32629 * gst/vaapi/gstvaapidecode.h:
32630 vaapidecode: return sink caps template if decoder is in NULL state.
32631 Otherwise, the decoder would always create its own X display instead
32632 of probing it from the downstream element, which is not reliable.
32633 e.g. DISPLAY is not :0 or when running on Wayland.
32634 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32636 2011-12-08 15:44:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32638 * gst/vaapi/gstvaapiconvert.c:
32639 * gst/vaapi/gstvaapidecode.c:
32640 vaapiplugin: properly set surface type to "vaapi" in caps.
32642 2011-12-08 15:16:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32644 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32645 decoder: drop unused headers.
32647 2011-11-04 19:47:25 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32649 * gst/vaapi/gstvaapiconvert.c:
32650 * gst/vaapi/gstvaapidecode.c:
32651 vaapiplugin: properly set opengl support in caps.
32652 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32654 2011-11-04 20:07:52 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32656 * gst/vaapi/gstvaapiconvert.c:
32657 * gst/vaapi/gstvaapidecode.c:
32658 vaapiplugin: allocate GLX buffers when supported.
32659 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32661 2011-11-04 19:47:09 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32663 * gst-libs/gst/vaapi/Makefile.am:
32664 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32665 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
32666 * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
32667 * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
32668 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32669 * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
32670 videobuffer: add GLX buffer support.
32671 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32673 2011-10-06 16:06:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32675 * gst-libs/gst/vaapi/Makefile.am:
32676 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32677 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32678 Port to GstSurfaceBuffer interface.
32679 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32681 2011-10-06 16:04:37 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32683 * gst/vaapi/gstvaapidecode.c:
32684 * gst/vaapi/gstvaapisink.c:
32685 Don't use downstream buffer allocation.
32686 With the new video/x-surface abstraction, we can't rely on having a VA
32687 specific sink downstream. Also, there was no particular reason to do that.
32688 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32690 2011-11-04 17:16:23 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32692 * gst-libs/gst/vaapi/Makefile.am:
32693 * gst-libs/gst/vaapi/gstvaapicontext.c:
32694 * gst-libs/gst/vaapi/gstvaapisurface.h:
32695 * gst/vaapi/gstvaapiconvert.c:
32696 * gst/vaapi/gstvaapisink.c:
32697 * tests/Makefile.am:
32698 * tests/test-surfaces.c:
32699 Change caps to use new video/x-surface generic type.
32700 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32702 2011-11-04 16:50:15 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32705 * gst-libs/gst/vaapi/Makefile.am:
32706 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
32707 * gst/vaapi/Makefile.am:
32708 * gst/vaapi/gstvaapiconvert.c:
32709 * gst/vaapi/gstvaapidecode.c:
32710 * gst/vaapi/gstvaapipluginutil.c:
32711 * gst/vaapi/gstvaapipluginutil.h:
32712 * gst/vaapi/gstvaapisink.c:
32713 * gst/vaapi/gstvaapisink.h:
32714 Port to GstVideoContext interface.
32715 This new interface allows for upstream and downstream display sharing
32716 that works in both static and dynamic pipelines.
32717 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32719 2011-12-08 14:57:36 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32721 * gst/vaapi/gstvaapisink.c:
32722 vaapisink: use GST_ERROR to print error messages.
32724 2011-12-08 13:30:51 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32726 * gst/vaapi/Makefile.am:
32727 vaapiplugin: link against VA/GLX when enabled.
32729 2011-12-07 19:09:55 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32731 * gst/vaapi/gstvaapiconvert.c:
32732 * gst/vaapi/gstvaapisink.c:
32733 Add Intel copyright information.
32735 2011-12-07 19:04:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32737 * gst/vaapi/gstvaapisink.c:
32738 vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
32740 2011-12-07 18:40:35 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32744 * gst-libs/gst/Makefile.am:
32745 * gst-libs/gst/gstutils_version.h.in:
32746 Add new GStreamer version check utilities.
32748 2011-07-28 11:14:49 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32750 * gst/vaapi/gstvaapisink.c:
32751 vaapisink: replace the deprecated xoverlay API with the new one.
32752 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32754 2011-12-07 17:31:09 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32757 configure: allow for pre-releases.
32759 2011-10-13 17:08:13 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32761 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32762 display: destroy display on creation failure.
32763 This allows element to detect that the display creation has actually
32765 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32767 2011-10-13 17:07:35 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32769 * gst-libs/gst/vaapi/gstvaapidisplay.c:
32770 display: don't crash when config is empty.
32771 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32773 2011-12-07 14:42:14 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32776 * debian.upstream/copyright:
32777 doc: mention Collabora copyrights.
32779 2011-12-07 14:40:20 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32782 .gitignore: refine for generated docs.
32784 2011-09-14 15:12:41 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32787 * docs/reference/plugins/Makefile.am:
32789 * gst/vaapi/Makefile.am:
32790 * gst/vaapi/gstvaapi.c:
32791 * gst/vaapi/gstvaapiconvert.c:
32792 * gst/vaapi/gstvaapiconvert.h:
32793 * gst/vaapi/gstvaapidecode.c:
32794 * gst/vaapi/gstvaapidecode.h:
32795 * gst/vaapi/gstvaapisink.c:
32796 * gst/vaapi/gstvaapisink.h:
32797 * gst/vaapiconvert/Makefile.am:
32798 * gst/vaapidecode/Makefile.am:
32799 Group all plugins into the same bundle
32800 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32802 2011-07-21 14:31:30 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32805 Bump version for development.
32807 2011-12-07 14:17:32 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32810 * debian.upstream/control.in:
32811 debian: build against upstream libva packages.
32813 2011-12-07 13:52:17 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32815 * docs/reference/libs/Makefile.am:
32816 * docs/reference/plugins/Makefile.am:
32817 * tests/Makefile.am:
32818 Fix build on Ubuntu 11.10 (Oneric).
32820 2011-12-07 13:14:28 +0100 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32825 2011-09-12 16:20:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32829 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32831 2011-10-24 16:18:16 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
32833 * gst/vaapiconvert/gstvaapiconvert.c:
32834 * gst/vaapidecode/gstvaapidecode.c:
32835 * gst/vaapisink/gstvaapisink.c:
32836 Update license in plugin definition
32837 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32839 2011-10-12 14:00:50 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32842 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32843 decoder: fix use of invalid data at the end-of-stream.
32845 2011-10-19 14:47:31 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32847 * gst/vaapiconvert/gstvaapiconvert.c:
32848 vaapiconvert: fix some warnings.
32850 2011-10-19 14:43:56 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32853 * debian.upstream/changelog.in:
32854 * debian.upstream/control.in:
32855 * debian.upstream/copyright:
32856 * gst/vaapiconvert/gstvaapiconvert.c:
32857 * gst/vaapidecode/gstvaapidecode.c:
32858 * gst/vaapisink/gstvaapisink.c:
32859 Update with my current e-mail address.
32861 2011-10-19 14:39:21 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32865 Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
32867 2011-10-18 09:18:20 +0200 warly <warly@warly.org>
32871 * tests/test-decode.c:
32872 * tests/test-decode.h:
32873 * tests/test-display.c:
32874 * tests/test-h264.c:
32875 * tests/test-h264.h:
32876 * tests/test-mpeg2.c:
32877 * tests/test-mpeg2.h:
32878 * tests/test-surfaces.c:
32879 * tests/test-textures.c:
32880 * tests/test-vc1.c:
32881 * tests/test-vc1.h:
32882 * tests/test-windows.c:
32883 switch tests licence to LGPL v2.1+
32885 2011-10-18 09:06:52 +0200 warly <warly@warly.org>
32889 * debian.upstream/copyright:
32890 * gst/vaapiconvert/gstvaapiconvert.c:
32891 * gst/vaapiconvert/gstvaapiconvert.h:
32892 * gst/vaapidecode/gstvaapidecode.c:
32893 * gst/vaapidecode/gstvaapidecode.h:
32894 * gst/vaapisink/gstvaapisink.c:
32895 * gst/vaapisink/gstvaapisink.h:
32896 move plugins to LGPL v2.1+
32898 2011-09-14 13:07:18 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32900 * gst/vaapidecode/gstvaapidecode.c:
32901 vaapidecode: fix sink caps to not expose size information.
32902 This fixes this particular issue:
32903 GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
32904 a real subset of its template caps
32906 2011-09-14 11:34:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32909 * gst/vaapidecode/gstvaapidecode.c:
32910 vaapidecode: fix decoding of MPEG-2 PS files.
32912 2011-09-12 13:00:04 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32914 * gst-libs/gst/vaapi/Makefile.am:
32915 Cosmetics (sort source files).
32917 2011-09-08 14:50:24 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32919 * gst/vaapiconvert/gstvaapiconvert.c:
32920 * gst/vaapiconvert/gstvaapiconvert.h:
32921 vaapiconvert: fix direct-rendering caps detection.
32923 2011-09-08 14:40:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32925 * gst-libs/gst/vaapi/gstvaapiimage.c:
32926 Fix gst_vaapi_image_new_with_image().
32928 2011-09-08 13:09:17 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32930 * gst/vaapiconvert/gstvaapiconvert.c:
32931 vaapiconvert: warn when surface failed to be updated with image.
32933 2011-09-06 18:34:33 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32935 * gst/vaapiconvert/gstvaapiconvert.c:
32936 vaapiconvert: fix autodetection for vaDeriveImage() support.
32938 2011-09-06 17:47:10 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32940 * gst/vaapiconvert/gstvaapiconvert.c:
32941 vaapiconvert: fix memory leak (VA surface image).
32943 2011-09-05 16:20:20 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32946 * gst/vaapiconvert/gstvaapiconvert.c:
32947 vaapiconvert: fix direct-rendering mode.
32949 2011-09-06 16:49:43 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32951 * docs/reference/libs/libs-sections.txt:
32952 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32953 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32954 Add gst_vaapi_video_buffer_new_from_buffer().
32955 Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
32956 Any image, surface or surface proxy will be inherited from the source buffer
32957 if it is a GstVaapiVideoBuffer.
32959 2011-09-05 17:23:05 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32961 * gst/vaapiconvert/gstvaapiconvert.c:
32962 vaapiconvert: protect access to direct_rendering.
32964 2011-09-05 16:18:14 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32966 * gst/vaapiconvert/gstvaapiconvert.c:
32967 vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
32969 2011-08-01 14:15:39 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32973 * debian.upstream/copyright:
32974 * gst-libs/gst/vaapi/gstvaapidecoder.c:
32975 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32976 * gst-libs/gst/vaapi/gstvaapisurface.h:
32977 * gst/vaapidecode/gstvaapidecode.c:
32978 * gst/vaapidecode/gstvaapidecode.h:
32979 Add Intel copyright information.
32981 2011-07-22 15:59:00 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32986 2011-07-22 15:55:47 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32988 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32989 Fix build with newer FFmpeg versions.
32991 2011-07-22 15:39:51 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32993 * gst/vaapidecode/gstvaapidecode.c:
32994 * gst/vaapidecode/gstvaapidecode.h:
32995 Fix decoding of MPEG-2 TS files.
32997 2011-07-22 15:34:48 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32999 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33000 Report caps update only once per video resolution change.
33002 2011-07-22 15:33:13 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33004 * gst-libs/gst/vaapi/gstvaapisurface.h:
33005 Add canonical form (type name) of VA surface caps.
33007 2011-07-22 15:42:16 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33010 Bump version for development.
33012 2011-07-19 17:38:40 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33015 Use pretty build output with automake >= 1.11.
33017 2011-07-15 16:08:08 +0200 Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33019 * gst/vaapiconvert/Makefile.am:
33020 * gst/vaapidecode/Makefile.am:
33021 * gst/vaapisink/Makefile.am:
33022 * tests/Makefile.am:
33023 Fix build with libva headers not in a standard include dir.
33025 2011-06-14 15:59:08 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33030 2011-06-14 13:52:56 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33032 * gst-libs/gst/vaapi/gstvaapi_priv.h:
33033 * gst-libs/gst/vaapi/gstvaapicompat.h:
33034 * gst-libs/gst/vaapi/gstvaapicontext.c:
33035 * gst-libs/gst/vaapi/gstvaapicontext.h:
33036 * gst-libs/gst/vaapi/gstvaapidebug.h:
33037 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33038 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33039 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33040 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33041 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33042 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33043 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33044 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33045 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33046 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33047 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33048 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33049 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33050 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33051 * gst-libs/gst/vaapi/gstvaapiimage.c:
33052 * gst-libs/gst/vaapi/gstvaapiimage.h:
33053 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33054 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33055 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33056 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33057 * gst-libs/gst/vaapi/gstvaapiobject.c:
33058 * gst-libs/gst/vaapi/gstvaapiobject.h:
33059 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33060 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33061 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33062 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33063 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33064 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33065 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33066 * gst-libs/gst/vaapi/gstvaapisurface.c:
33067 * gst-libs/gst/vaapi/gstvaapisurface.h:
33068 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33069 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33070 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33071 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33072 * gst-libs/gst/vaapi/gstvaapitexture.c:
33073 * gst-libs/gst/vaapi/gstvaapitexture.h:
33074 * gst-libs/gst/vaapi/gstvaapitypes.h:
33075 * gst-libs/gst/vaapi/gstvaapiutils.c:
33076 * gst-libs/gst/vaapi/gstvaapiutils.h:
33077 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33078 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33079 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33080 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33081 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33082 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33083 * gst-libs/gst/vaapi/gstvaapivalue.c:
33084 * gst-libs/gst/vaapi/gstvaapivalue.h:
33085 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33086 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33087 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33088 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33089 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33090 * gst-libs/gst/vaapi/gstvaapivideosink.h:
33091 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33092 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33093 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33094 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33095 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33096 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33097 * gst/vaapiconvert/gstvaapiconvert.c:
33098 * gst/vaapiconvert/gstvaapiconvert.h:
33099 * gst/vaapidecode/gstvaapidecode.c:
33100 * gst/vaapidecode/gstvaapidecode.h:
33101 * gst/vaapisink/gstvaapisink.c:
33102 * gst/vaapisink/gstvaapisink.h:
33105 * tests/test-decode.c:
33106 * tests/test-decode.h:
33107 * tests/test-display.c:
33108 * tests/test-h264.c:
33109 * tests/test-h264.h:
33110 * tests/test-mpeg2.c:
33111 * tests/test-mpeg2.h:
33112 * tests/test-surfaces.c:
33113 * tests/test-textures.c:
33114 * tests/test-vc1.c:
33115 * tests/test-vc1.h:
33116 * tests/test-windows.c:
33117 Update copyright notice.
33119 2011-06-14 13:51:41 +0200 Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33122 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33123 * gst-libs/gst/vaapi/gstvaapisurface.c:
33124 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33125 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33126 * gst-libs/gst/vaapi/gstvaapitexture.c:
33127 * gst-libs/gst/vaapi/gstvaapiutils.c:
33128 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33129 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33130 * gst-libs/gst/vaapi/gstvaapivalue.c:
33131 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33132 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33133 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33134 * gst-libs/gst/vaapi/gstvaapiwindow.c:
33135 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33136 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33137 Fix licensing terms.
33139 2010-07-20 11:23:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33144 2010-07-20 11:21:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33146 * debian.upstream/copyright:
33147 Fix license terms...
33149 2010-07-01 13:19:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33151 * gst/vaapisink/gstvaapisink.c:
33152 Render pretty background only in use-reflection=true mode.
33154 2010-07-01 11:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33159 2010-07-01 11:41:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33161 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33162 Drop the GLX 1.3 requirement.
33164 2010-07-01 11:38:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33166 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33167 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33168 Call the GLX/Pixmap related functions through the vtable.
33170 2010-07-01 11:11:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33174 * gst-libs/gst/vaapi/Makefile.am:
33175 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33176 Drop dependency on libavformat.
33178 2010-06-22 15:15:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33180 * gst-libs/gst/video/gstbasevideodecoder.c:
33181 * gst-libs/gst/video/gstbasevideodecoder.h:
33182 Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
33184 2010-06-22 14:06:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33186 * gst-libs/gst/video/gstbasevideodecoder.c:
33187 * gst-libs/gst/video/gstbasevideoutils.c:
33188 * gst-libs/gst/video/gstbasevideoutils.h:
33189 Drop superfluous functions.
33191 2010-06-22 13:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33193 * gst-libs/gst/video/gstbasevideodecoder.c:
33194 Really drop any dependency on libgstvideo. i.e. inline the helpers.
33196 2010-06-22 13:48:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33198 * gst-libs/gst/video/gstbasevideodecoder.c:
33199 Further drop dependency on libgstvideo.
33201 2010-06-22 12:57:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33203 * gst-libs/gst/video/Makefile.am:
33204 * gst-libs/gst/video/gstbasevideocodec.c:
33205 * gst-libs/gst/video/gstbasevideocodec.h:
33206 * gst-libs/gst/video/gstbasevideodecoder.c:
33207 * gst-libs/gst/video/gstbasevideodecoder.h:
33208 * gst-libs/gst/video/gstbasevideoutils.c:
33209 * gst-libs/gst/video/gstbasevideoutils.h:
33210 Add GstBaseVideoDecoder from gst-plugins-bad git.
33212 2010-06-15 12:36:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33214 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33215 Fix GLX version check.
33217 2010-06-14 14:46:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33221 Bump version for development.
33223 2010-06-14 14:14:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33226 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33227 Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
33229 2010-06-14 12:58:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33234 2010-06-14 09:20:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33236 * gst-libs/gst/vaapi/gstvaapicompat.h:
33237 Fix build with older VA-API 0.29-sds.
33239 2010-05-18 11:22:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33241 * gst/vaapisink/gstvaapisink.c:
33242 * gst/vaapisink/gstvaapisink.h:
33243 Fix upscaling in foreign window (Totem).
33245 2010-05-17 12:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33247 * gst/vaapisink/gstvaapisink.c:
33248 Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
33250 2010-05-17 08:55:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33253 * gst/vaapisink/gstvaapisink.c:
33254 Fix video rendering rect within an embedder window (Totem).
33256 2010-05-17 08:28:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33259 * gst/vaapisink/gstvaapisink.c:
33260 Disable GLX rendering when vaapisink uses a foreign X window.
33262 2010-05-17 08:24:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33264 * gst/vaapisink/gstvaapisink.c:
33265 Simplify GLX rendering code.
33267 2010-05-17 07:32:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33270 Bump version for development.
33272 2010-05-16 21:44:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33277 2010-05-16 21:35:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33279 * gst/vaapidecode/gstvaapidecode.c:
33280 Wait for at most one second for a VA surface to become available.
33282 2010-05-16 21:18:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33286 Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
33288 2010-05-16 21:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33292 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33293 Fix decoder caps to report codec aliases.
33295 2010-05-16 21:04:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33298 * gst/vaapidecode/gstvaapidecode.c:
33299 * gst/vaapidecode/gstvaapidecode.h:
33300 Fix VC-1 decoding through the playbin2 pipeline.
33302 2010-05-15 15:33:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33304 * docs/reference/libs/libs-sections.txt:
33305 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33306 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33307 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33308 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33309 Regularly update and expose decoder caps.
33311 2010-05-15 09:43:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33313 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33314 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33315 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33316 Add mechanism to reinsert buffer leftovers into the queue.
33318 2010-05-15 06:59:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33321 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33322 Fix memory leak of encoded buffers.
33324 2010-05-15 05:36:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33326 * docs/reference/libs/libs-sections.txt:
33327 * gst-libs/gst/vaapi/gstvaapicontext.c:
33328 * gst-libs/gst/vaapi/gstvaapicontext.h:
33329 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33330 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33331 Check for out-of-free-surfaces condition.
33333 2010-05-15 04:35:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33335 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33336 Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
33338 2010-05-15 04:25:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33340 * gst/vaapisink/gstvaapisink.c:
33341 Improve debug info for gst_vaapisink_ensure_render_rect().
33343 2010-05-14 05:02:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33346 Bump version for development.
33348 2010-05-13 21:52:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33353 2010-05-13 21:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33355 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33356 Improve previous fix.
33358 2010-05-13 21:27:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33361 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33362 Fix a crash in the FFmpeg decoder on close.
33364 2010-05-13 16:41:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33367 Sort platforms by name.
33369 2010-05-13 09:40:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33373 Bump version for development.
33375 2010-05-13 09:38:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33377 * gst/vaapisink/gstvaapisink.c:
33378 Add debug info for _show_frame().
33380 2010-05-13 07:19:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33383 Nuke older build dir.
33385 2010-05-13 07:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33387 * debian.upstream/control.in:
33388 Fix packaging deps.
33390 2010-05-13 06:12:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33395 2010-05-13 06:11:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33398 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33399 Fix OpenGL texture internal format (Clutter).
33401 2010-05-13 04:40:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33406 2010-05-13 04:27:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33408 * gst/vaapisink/gstvaapisink.c:
33409 Debug video & display PARs.
33411 2010-05-13 04:22:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33413 * gst/vaapisink/gstvaapisink.c:
33414 Use XGetGeometry() to retrieve the window size.
33416 2010-05-12 19:40:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33418 * gst/vaapisink/gstvaapisink.c:
33421 2010-05-12 19:35:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33423 * gst/vaapisink/gstvaapisink.c:
33424 Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
33426 2010-05-12 19:18:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33429 Drop obsolete comment.
33431 2010-05-12 19:14:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33436 2010-05-12 19:14:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33438 * gst/vaapidecode/gstvaapidecode.c:
33439 Fix GstVaapiDisplay refcounting in vaapidecode.
33441 2010-05-12 14:10:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33443 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33446 2010-05-12 12:58:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33448 * gst/vaapisink/gstvaapisink.c:
33449 * gst/vaapisink/gstvaapisink.h:
33450 Fix render rect when the foreign window size changes.
33452 2010-05-12 11:43:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33456 * gst/vaapisink/Makefile.am:
33457 * gst/vaapisink/gstvaapisink.c:
33458 Add GstXOverlay interface to vaapisink (e.g. for Totem).
33460 2010-05-12 10:51:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33463 Update deps to match configure.ac versions.
33465 2010-05-12 09:34:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33467 * gst/vaapiconvert/gstvaapiconvert.c:
33468 * gst/vaapidecode/gstvaapidecode.c:
33469 * gst/vaapisink/gstvaapisink.c:
33472 2010-05-12 09:22:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33475 * gst/vaapidecode/Makefile.am:
33476 * gst/vaapidecode/gstvaapidecode.c:
33477 * gst/vaapidecode/gstvaapidecode.h:
33478 Fix vaapidecode to expose the HW supported caps only.
33480 2010-05-12 08:32:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33482 * gst/vaapidecode/gstvaapidecode.c:
33483 Initialize decoder earlier.
33485 2010-05-12 08:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33489 * gst/vaapidecode/gstvaapidecode.c:
33490 Fix integration within the playbin2 pipeline.
33492 2010-05-12 08:02:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33494 * docs/reference/libs/Makefile.am:
33495 Exclude gstvaapiutils_gst.h from docs for now.
33497 2010-05-12 08:00:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33499 * gst/vaapiconvert/gstvaapiconvert.c:
33500 * gst/vaapidecode/gstvaapidecode.c:
33501 * gst/vaapisink/gstvaapisink.c:
33502 Raise VA-API plugins ranks.
33504 2010-05-12 07:57:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33506 * gst-libs/gst/vaapi/Makefile.am:
33507 * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33508 * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33509 Add gst_vaapi_display_lookup_downstream() helper.
33511 2010-05-11 16:23:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33513 * gst/vaapidecode/gstvaapidecode.c:
33514 Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
33516 2010-05-11 16:19:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33518 * docs/reference/libs/libs-sections.txt:
33519 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33520 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33521 * gst/vaapisink/gstvaapisink.c:
33522 Expose VA display through GstVaapiVideoBuffer.
33524 2010-05-11 16:09:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33526 * gst/vaapidecode/gstvaapidecode.c:
33527 Simplify gst_vaapidecode_set_caps() and fix memory leak.
33529 2010-05-11 12:06:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33531 * docs/reference/libs/libs-sections.txt:
33532 * gst-libs/gst/vaapi/gstvaapivideopool.c:
33533 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33534 Expose video pool display.
33536 2010-05-11 12:03:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33538 * gst-libs/gst/vaapi/gstvaapivideosink.c:
33539 Stop iteration if there is no more element to examine.
33541 2010-05-10 09:32:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33543 * gst/vaapiconvert/gstvaapiconvert.c:
33544 * gst/vaapidecode/gstvaapidecode.c:
33545 * gst/vaapisink/gstvaapisink.c:
33546 Improve plugin details.
33548 2010-05-07 06:35:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33550 * gst-libs/gst/vaapi/gstvaapisurface.h:
33551 * gst/vaapiconvert/gstvaapiconvert.c:
33552 * gst/vaapidecode/gstvaapidecode.c:
33553 * gst/vaapisink/gstvaapisink.c:
33554 Factor out VA surface caps.
33556 2010-05-05 15:36:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33558 * gst/vaapidecode/gstvaapidecode.c:
33559 Add gst_vaapidecode_ensure_display() helper for set-caps.
33561 2010-05-05 12:57:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33564 Bump version for development.
33566 2010-05-05 12:29:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33569 Really make it 0.2.0.
33571 2010-05-05 12:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33576 2010-05-05 11:48:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33578 * docs/reference/libs/Makefile.am:
33579 Don't exclude GstVaapiParamSpecs.
33581 2010-05-05 11:44:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33583 * docs/reference/libs/Makefile.am:
33584 * docs/reference/libs/libs-sections.txt:
33585 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33586 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33589 2010-05-05 06:06:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33591 * gst/vaapiconvert/gstvaapiconvert.c:
33592 * gst/vaapidecode/gstvaapidecode.c:
33593 * gst/vaapisink/gstvaapisink.c:
33594 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.
33596 2010-05-04 15:03:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33598 * gst-libs/gst/vaapi/Makefile.am:
33599 Really link all helper libraries with libtool -no-undefined.
33601 2010-05-04 15:02:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33603 * gst-libs/gst/vaapi/Makefile.am:
33604 Link helper libraries with libtool -no-undefined.
33606 2010-05-04 14:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33609 * debian.upstream/gstreamer-vaapi.install.in:
33610 * gst/vaapiconvert/Makefile.am:
33611 * gst/vaapidecode/Makefile.am:
33612 * gst/vaapisink/Makefile.am:
33613 Don't build plugins with SONAME. Make them plain *.so.
33615 2010-05-04 08:59:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33618 Improve documentation for release.
33620 2010-05-03 22:50:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33622 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33623 Fix build with older VA-API 0.29.
33625 2010-05-03 22:43:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33630 2010-05-03 22:42:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33632 * tests/Makefile.am:
33635 2010-05-03 22:36:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33637 * docs/reference/libs/Makefile.am:
33638 * docs/reference/libs/libs-docs.xml.in:
33639 * docs/reference/libs/libs-sections.txt:
33640 * docs/reference/libs/libs.core.types:
33641 * docs/reference/plugins/Makefile.am:
33642 * docs/reference/plugins/plugins-docs.xml.in:
33643 * docs/reference/plugins/plugins-sections.txt:
33644 * docs/reference/plugins/plugins.types:
33647 2010-05-03 22:34:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33649 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33652 2010-05-03 22:28:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33654 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33655 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33656 * gst/vaapidecode/gstvaapidecode.c:
33657 * tests/test-decode.c:
33658 Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
33660 2010-05-03 22:02:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33662 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33663 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33664 Extract framerate information from caps.
33666 2010-05-03 21:49:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33668 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33669 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33670 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33671 Move caps initialization to parent class.
33673 2010-05-03 21:25:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33675 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33678 2010-05-03 21:25:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33680 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33683 2010-05-03 21:14:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33685 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33686 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33687 More simplifications.
33689 2010-05-03 20:55:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33691 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33692 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33693 * tests/test-decode.c:
33694 Simplify GstVaapiDecoder API.
33696 2010-05-03 20:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33698 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33699 Drop obsolete defs.
33701 2010-05-03 20:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33703 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33704 Drop obsolete decls.
33706 2010-05-03 17:36:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33708 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33709 * gst/vaapidecode/gstvaapidecode.c:
33710 Add more aliases for MPEG-4 decoding.
33712 2010-05-03 17:04:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33714 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33715 Use avctx->coded_{width,height} info to create the VA context.
33717 2010-05-03 16:54:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33719 * tests/test-decode.c:
33720 * tests/test-decode.h:
33721 Use gst_vaapi_decoder_ffmpeg_new_from_caps().
33723 2010-05-03 16:41:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33725 * tests/test-decode.c:
33726 * tests/test-decode.h:
33727 * tests/test-h264.c:
33728 * tests/test-h264.h:
33729 * tests/test-mpeg2.c:
33730 * tests/test-mpeg2.h:
33731 * tests/test-vc1.c:
33732 * tests/test-vc1.h:
33733 Simplify tests info.
33735 2010-05-03 16:17:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33737 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33738 Try to improve heuristics to use an AVCodecContextParser.
33740 2010-05-03 15:35:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33742 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33743 Fix VC-1 decoding, it does not require any specific parser.
33745 2010-05-03 15:34:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33747 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33748 Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
33750 2010-05-03 15:29:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33752 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33753 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33754 Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
33756 2010-05-03 15:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33758 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33759 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33760 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33761 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33762 * gst/vaapidecode/gstvaapidecode.c:
33763 * gst/vaapidecode/gstvaapidecode.h:
33764 Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
33766 2010-05-03 14:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33768 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33769 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33770 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33771 Improve WMV3 detection yet further.
33773 2010-05-03 13:44:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33775 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33776 Fix detection of plain old WMV3 contents.
33778 2010-05-03 12:25:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33780 * tests/test-vc1.c:
33781 Add End-of-Sequence start code.
33783 2010-05-03 11:44:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33785 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33786 * gst/vaapidecode/gstvaapidecode.c:
33787 Fix VC-1 detection.
33789 2010-05-03 08:51:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33791 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33792 Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
33794 2010-05-03 08:34:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33796 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33797 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33798 Drop obsolete (and wrong) code.
33800 2010-05-03 08:33:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33802 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33803 Cosmetics (spelling).
33805 2010-05-03 08:32:46 +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_priv.h:
33810 Try to fix timestamps (step 1). Looks OK on H55.
33812 2010-05-03 07:10:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33814 * debian.upstream/Makefile.am:
33815 Ship with COPYING.LIB.
33817 2010-05-03 07:07:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33822 * gst-libs/gst/vaapi/gstvaapi_priv.h:
33823 * gst-libs/gst/vaapi/gstvaapicompat.h:
33824 * gst-libs/gst/vaapi/gstvaapicontext.c:
33825 * gst-libs/gst/vaapi/gstvaapicontext.h:
33826 * gst-libs/gst/vaapi/gstvaapidebug.h:
33827 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33828 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33829 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33830 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33831 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33832 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33833 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33834 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33835 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33836 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33837 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33838 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33839 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33840 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33841 * gst-libs/gst/vaapi/gstvaapiimage.c:
33842 * gst-libs/gst/vaapi/gstvaapiimage.h:
33843 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33844 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33845 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33846 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33847 * gst-libs/gst/vaapi/gstvaapiobject.c:
33848 * gst-libs/gst/vaapi/gstvaapiobject.h:
33849 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33850 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33851 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33852 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33853 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33854 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33855 * gst-libs/gst/vaapi/gstvaapisurface.h:
33856 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33857 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33858 * gst-libs/gst/vaapi/gstvaapitexture.h:
33859 * gst-libs/gst/vaapi/gstvaapitypes.h:
33860 * gst-libs/gst/vaapi/gstvaapiutils.h:
33861 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33862 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33863 * gst-libs/gst/vaapi/gstvaapivalue.h:
33864 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33865 * gst-libs/gst/vaapi/gstvaapivideopool.h:
33866 * gst-libs/gst/vaapi/gstvaapivideosink.h:
33867 * gst-libs/gst/vaapi/gstvaapiwindow.h:
33868 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33869 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33870 Relicense gst-libs/ code to LGPL v2.1+.
33872 2010-05-03 06:49:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33874 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33875 Drop extraneous comma.
33877 2010-05-03 06:49:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33879 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33880 Drop variant=itu field to help codec detection.
33882 2010-04-30 15:50:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33884 * gst/vaapidecode/gstvaapidecode.c:
33885 Decode as many surfaces as possible in gst_vaapidecode_step().
33887 2010-04-30 15:37:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33889 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33890 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33891 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33892 * gst/vaapidecode/gstvaapidecode.c:
33893 * gst/vaapidecode/gstvaapidecode.h:
33894 * tests/test-decode.c:
33895 Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
33897 2010-04-30 13:13:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33902 2010-04-30 12:04:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33904 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33905 Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
33907 2010-04-30 09:52:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33909 * gst-libs/gst/vaapi/gstvaapidisplay.c:
33910 * gst-libs/gst/vaapi/gstvaapidisplay.h:
33911 Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
33913 2010-04-30 09:48:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33915 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33916 * gst-libs/gst/vaapi/gstvaapiprofile.h:
33917 Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
33919 2010-04-30 08:18:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33921 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33922 Document H.264 / AVC1 format case better.
33924 2010-04-29 23:09:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33926 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33927 Fix H.264 decoding with AVC1 format bitstreams.
33929 2010-04-29 22:00:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33931 * gst/vaapidecode/gstvaapidecode.c:
33932 Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
33934 2010-04-29 21:59:14 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33936 * gst/vaapisink/gstvaapisink.c:
33937 Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
33939 2010-04-29 21:56:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33941 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33942 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33943 Export gst_vaapi_video_buffer_new().
33945 2010-04-29 21:12:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33947 * gst-libs/gst/vaapi/gstvaapiprofile.c:
33948 Fix gst_vaapi_profile_get_caps() to include the "profile" field.
33950 2010-04-29 17:56:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33955 2010-04-29 17:55:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33960 * gst/vaapidecode/Makefile.am:
33961 * gst/vaapidecode/gstvaapidecode.c:
33962 * gst/vaapidecode/gstvaapidecode.h:
33963 Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
33965 2010-04-29 17:51:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33967 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33968 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33969 Add gst_vaapi_decoder_pause().
33971 2010-04-29 17:11:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33973 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33974 * gst-libs/gst/vaapi/gstvaapidecoder.h:
33975 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33976 Use a GstTask with start/stop semantics for the decoder thread.
33978 2010-04-29 16:08:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33980 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33981 Drop extraneous var.
33983 2010-04-29 15:45:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33985 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33986 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33987 Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
33989 2010-04-29 14:58:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33991 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33992 Fix gst_vaapi_decoder_get_surface() status.
33994 2010-04-29 14:28:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33996 * gst-libs/gst/vaapi/gstvaapidecoder.c:
33997 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33998 Try to set correct timestamps to the decoded surface proxy.
34000 2010-04-29 12:52:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34002 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34003 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34004 * tests/test-decode.c:
34005 Add timestamps to GstVaapiSurfaceProxy.
34007 2010-04-29 09:43:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34009 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34010 Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
34012 2010-04-29 09:40:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34014 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34015 Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
34017 2010-04-29 09:35:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34019 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34020 Prefer profile from codec-data if any was found there.
34022 2010-04-29 09:34:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34024 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34025 Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
34027 2010-04-28 23:09:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34029 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34030 Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
34032 2010-04-28 22:30:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34034 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34035 Fix VC-1 codec initialization, it really needs an extradata buffer.
34037 2010-04-28 22:16:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34039 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34040 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34041 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.
34043 2010-04-28 21:58:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34045 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34046 Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
34048 2010-04-28 21:50:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34050 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34051 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34052 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34053 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34054 * tests/test-decode.c:
34055 Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
34057 2010-04-28 21:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34059 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34060 Cosmetics (weird indentation).
34062 2010-04-28 21:15:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34064 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34065 Cosmetics (extraneous variable, debug message).
34067 2010-04-28 09:07:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34070 Fix check for VA-API enabled FFmpeg.
34072 2010-04-27 15:26:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34074 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34075 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34076 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34077 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34078 - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
34080 2010-04-27 11:59:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34082 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34083 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34084 Add more error codes. Fix documentation.
34086 2010-04-26 13:30:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34088 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34089 Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
34091 2010-04-26 11:44:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34093 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34094 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34095 * tests/test-decode.c:
34096 Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
34098 2010-04-26 11:36:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34100 * tests/test-vc1.c:
34101 Drop useless End-of-Sequence marker.
34103 2010-04-26 08:53:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34105 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34106 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.
34108 2010-04-26 08:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34110 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34111 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34112 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.
34114 2010-04-26 08:15:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34116 * tests/test-h264.c:
34117 * tests/test-vc1.c:
34118 Regenerate correct clips.
34120 2010-04-23 16:11:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34122 * tests/Makefile.am:
34123 * tests/test-decode.c:
34124 * tests/test-h264.c:
34125 * tests/test-h264.h:
34126 * tests/test-mpeg2.c:
34127 * tests/test-mpeg2.h:
34128 * tests/test-vc1.c:
34129 * tests/test-vc1.h:
34130 Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
34131 XXX: only VC-1 decoding works at this time because of awful
34132 bugs left in GstVaapiDecoderFfmpeg et al.
34134 2010-04-23 16:05:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34137 * gst-libs/gst/vaapi/Makefile.am:
34138 * gst-libs/gst/vaapi/gstvaapidecoder.c:
34139 * gst-libs/gst/vaapi/gstvaapidecoder.h:
34140 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34141 * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34142 * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34143 Add initial (multithreaded) decoder based on FFmpeg.
34144 There are tons of bugs left:
34145 - Decoder API not nice enough with error conditions
34146 - FFmpeg parser is sometimes broken
34147 - Packets queue can be lost
34149 2010-04-23 16:00:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34151 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34152 * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34153 Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
34155 2010-04-23 15:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34157 * gst-libs/gst/vaapi/gstvaapicontext.c:
34158 * gst-libs/gst/vaapi/gstvaapicontext.h:
34159 Add VA context abstraction.
34161 2010-04-23 10:58:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34163 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34164 Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
34166 2010-04-21 15:03:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34168 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34169 * gst-libs/gst/vaapi/gstvaapivideopool.h:
34170 Add a means to cap the number of objects allocated in the pool.
34172 2010-04-21 15:02:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34174 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34175 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34176 Add VA entrypoint abstraction.
34178 2010-04-20 13:36:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34180 * docs/reference/libs/libs-docs.xml.in:
34181 * docs/reference/libs/libs-sections.txt:
34182 * gst-libs/gst/vaapi/Makefile.am:
34183 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34184 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34185 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34186 * gst-libs/gst/vaapi/gstvaapiprofile.c:
34187 * gst-libs/gst/vaapi/gstvaapiprofile.h:
34188 * tests/test-display.c:
34189 Add VA profile abstraction.
34191 2010-04-20 07:51:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34193 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34194 Fix OpenGL rendering on G45 systems.
34196 2010-04-16 13:47:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34198 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34199 Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
34201 2010-04-02 11:27:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34203 * gst-libs/gst/vaapi/gstvaapitexture.c:
34204 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34205 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34206 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.
34208 2010-04-01 16:11:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34210 * gst-libs/gst/vaapi/gstvaapitexture.c:
34211 Fix get-out conditions.
34213 2010-04-01 15:38:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34215 * gst-libs/gst/vaapi/gstvaapitexture.c:
34216 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34217 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.
34219 2010-04-01 13:55:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34221 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34224 2010-04-01 13:41:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34226 * docs/reference/libs/libs-sections.txt:
34227 * gst-libs/gst/vaapi/Makefile.am:
34228 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34229 * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34230 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34231 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34232 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34233 * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34234 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34235 * gst-libs/gst/vaapi/gstvaapitexture.c:
34236 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34237 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34238 * tests/test-windows.c:
34239 Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
34241 2010-04-01 09:47:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34243 * gst-libs/gst/vaapi/Makefile.am:
34244 * gst-libs/gst/vaapi/gstvaapi_priv.h:
34245 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34246 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34247 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34248 * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34249 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34250 * gst-libs/gst/vaapi/gstvaapiimage.c:
34251 * gst-libs/gst/vaapi/gstvaapiobject.c:
34252 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34253 * gst-libs/gst/vaapi/gstvaapisurface.c:
34254 * gst-libs/gst/vaapi/gstvaapitexture.c:
34255 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34256 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34257 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34258 Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
34260 2010-03-31 15:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34262 * gst-libs/gst/vaapi/gstvaapitexture.c:
34263 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34264 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34265 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34266 Improve handling of GL contexts.
34268 2010-03-30 16:41:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34273 2010-03-30 13:33:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34276 Bump version for development.
34278 2010-03-30 13:29:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34281 * debian.upstream/Makefile.am:
34282 * debian.upstream/control.in:
34283 Rename -dev package to libgstvaapi-dev.
34285 2010-03-30 13:17:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34291 2010-03-30 13:05:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34293 * gst-libs/gst/vaapi/gstvaapiutils.c:
34294 Fix build with VA-API < 0.30.
34296 2010-03-30 13:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34299 * gst-libs/gst/vaapi/gstvaapicompat.h:
34300 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34301 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34302 * gst-libs/gst/vaapi/gstvaapitexture.c:
34303 * tests/test-display.c:
34304 Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
34306 2010-03-30 12:59:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34308 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34309 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34310 Add TFP and FBO helpers.
34312 2010-03-30 12:55:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34314 * gst-libs/gst/vaapi/gstvaapiutils.c:
34315 * gst-libs/gst/vaapi/gstvaapiutils.h:
34316 Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
34318 2010-03-30 08:13:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34320 * gst-libs/gst/vaapi/gstvaapitexture.c:
34321 * gst-libs/gst/vaapi/gstvaapiutils.c:
34322 * gst-libs/gst/vaapi/gstvaapiutils.h:
34323 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34324 Use a shorter function name.
34326 2010-03-30 08:11:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34328 * docs/reference/libs/libs-sections.txt:
34329 * gst-libs/gst/vaapi/gstvaapisurface.c:
34330 * gst-libs/gst/vaapi/gstvaapisurface.h:
34331 * gst-libs/gst/vaapi/gstvaapiutils.c:
34332 * gst-libs/gst/vaapi/gstvaapiutils.h:
34333 Add gst_vaapi_surface_query_status() wrapper.
34335 2010-03-30 07:50:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34337 * docs/reference/plugins/Makefile.am:
34338 Fix leftover during migration.
34340 2010-03-30 07:46:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34344 * docs/reference/plugins/Makefile.am:
34346 * gst/vaapiconvert/Makefile.am:
34347 * gst/vaapiconvert/gstvaapiconvert.c:
34348 * gst/vaapiconvert/gstvaapiconvert.h:
34349 * gst/vaapisink/Makefile.am:
34350 * gst/vaapisink/gstvaapisink.c:
34351 * gst/vaapisink/gstvaapisink.h:
34352 Rename to gst/ as sys/ was too vague.
34354 2010-03-30 07:39:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34356 * gst-libs/gst/vaapi/gstvaapiimage.c:
34357 * gst-libs/gst/vaapi/gstvaapiimage.h:
34358 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34359 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34360 * gst-libs/gst/vaapi/gstvaapisurface.c:
34361 * gst-libs/gst/vaapi/gstvaapisurface.h:
34362 Try to not reference VA-API types directly.
34364 2010-03-29 16:24:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34366 * sys/vaapisink/gstvaapisink.c:
34367 Fix reflection code to preserve aspect ratio.
34369 2010-03-29 16:17:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34371 * sys/vaapisink/gstvaapisink.c:
34372 * sys/vaapisink/gstvaapisink.h:
34373 Fix fullscreen mode.
34375 2010-03-29 15:59:44 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34377 * sys/vaapisink/gstvaapisink.c:
34378 * sys/vaapisink/gstvaapisink.h:
34379 Add OpenGL reflection effect ("use-reflection").
34381 2010-03-29 15:51:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34384 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34385 Use a projection suitable for rotation around the Y axis.
34387 2010-03-29 15:03:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34390 * sys/vaapisink/Makefile.am:
34391 * sys/vaapisink/gstvaapisink.c:
34392 * sys/vaapisink/gstvaapisink.h:
34393 Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
34395 2010-03-29 14:50:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34398 * debian.upstream/Makefile.am:
34399 * debian.upstream/control.in:
34400 * debian.upstream/libgstvaapi-glx.install.in:
34401 Add libgstvaapi-glx-0 package.
34403 2010-03-29 14:47:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34405 * pkgconfig/Makefile.am:
34406 Really fix make distclean.
34408 2010-03-29 14:43:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34410 * docs/reference/libs/Makefile.am:
34413 2010-03-29 14:42:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34415 * pkgconfig/Makefile.am:
34416 Fix make distclean.
34418 2010-03-29 14:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34420 * tests/Makefile.am:
34423 2010-03-29 14:31:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34425 * docs/reference/libs/Makefile.am:
34426 * docs/reference/libs/libs.core.types:
34427 * docs/reference/libs/libs.glx.types:
34428 * docs/reference/libs/libs.x11.types:
34431 2010-03-29 14:21:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34433 * sys/vaapisink/gstvaapisink.h:
34434 Fix build without GLX.
34436 2010-03-29 14:13:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34441 2010-03-29 14:13:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34443 * sys/vaapisink/Makefile.am:
34444 * sys/vaapisink/gstvaapisink.c:
34445 * sys/vaapisink/gstvaapisink.h:
34446 Add VA/GLX support to vaapisink.
34448 2010-03-29 13:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34450 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34451 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34452 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34453 Add glXSwapBuffers() workaround for NVIDIA.
34455 2010-03-29 13:27:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34457 * tests/Makefile.am:
34458 * tests/test-textures.c:
34459 Improve VA/GLX textures test.
34461 2010-03-29 12:51:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34463 * gst-libs/gst/vaapi/gstvaapitexture.c:
34464 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34465 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34466 Fix texture rendering.
34468 2010-03-29 11:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34470 * docs/reference/libs/libs-docs.xml.in:
34471 * docs/reference/libs/libs-sections.txt:
34472 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34473 * gst-libs/gst/vaapi/gstvaapitexture.c:
34476 2010-03-29 10:40:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34478 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34479 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34480 Add gst_vaapi_window_glx_put_texture() helper.
34482 2010-03-29 09:09:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34484 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34487 2010-03-26 17:00:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34491 * tests/test-windows.c:
34494 2010-03-26 16:52:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34496 * gst-libs/gst/vaapi/Makefile.am:
34497 * gst-libs/gst/vaapi/gstvaapitexture.c:
34498 * gst-libs/gst/vaapi/gstvaapitexture.h:
34499 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34500 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34501 Add initial VA/GLX texture abstraction though the API is not good enough yet.
34503 2010-03-26 15:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34505 * docs/reference/libs/libs-sections.txt:
34506 * gst-libs/gst/vaapi/gstvaapiobject.c:
34507 * gst-libs/gst/vaapi/gstvaapiobject.h:
34508 Add gst_vaapi_object_{,un}lock_display() helpers.
34510 2010-03-26 15:16:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34512 * tests/Makefile.am:
34515 * tests/test-windows.c:
34516 Factor out image utilities.
34518 2010-03-26 11:54:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34520 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34521 MT-Safe: lock display.
34523 2010-03-26 11:50:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34525 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34526 Make sure window resize completed prior to resizing the GL viewport.
34528 2010-03-26 11:39:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34530 * gst-libs/gst/vaapi/Makefile.am:
34531 gstvaapicompat.h is a private header, don't install it.
34533 2010-03-26 11:35:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34535 * docs/reference/libs/libs-sections.txt:
34536 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34537 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34538 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34539 Add gst_vaapi_display_{sync,flush}() helpers.
34541 2010-03-26 11:30:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34543 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34544 * sys/vaapisink/gstvaapisink.c:
34545 * sys/vaapisink/gstvaapisink.h:
34546 Add "synchronous" mode.
34548 2010-03-26 11:02:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34550 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34551 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34552 Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
34554 2010-03-26 10:09:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34556 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34557 Restore GLX context only if there is one.
34559 2010-03-26 09:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34561 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34562 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34563 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34564 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34565 Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
34567 2010-03-26 08:35:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34569 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34570 Check GstVaapiWindow::render() is available prior to calling it.
34572 2010-03-26 08:10:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34574 * tests/Makefile.am:
34575 * tests/test-display.c:
34576 * tests/test-textures.c:
34577 Add VA/GLX display tests.
34579 2010-03-26 08:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34582 * gst-libs/gst/vaapi/Makefile.am:
34585 2010-03-25 17:39:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34587 * docs/reference/libs/Makefile.am:
34588 * docs/reference/libs/libs-docs.xml.in:
34589 * docs/reference/libs/libs-sections.txt:
34590 * docs/reference/libs/libs.types:
34591 Add missing API documentation.
34593 2010-03-25 17:28:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34596 * gst-libs/gst/vaapi/Makefile.am:
34597 * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34598 * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34599 * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34600 * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34601 * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34602 * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34603 * pkgconfig/Makefile.am:
34604 * pkgconfig/gstreamer-vaapi-glx.pc.in:
34605 * tests/Makefile.am:
34606 * tests/test-textures.c:
34607 Add initial VA/GLX support.
34609 2010-03-25 17:21:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34611 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34612 Add missing includes (for vaapi_check_status()).
34614 2010-03-25 17:21:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34616 * gst-libs/gst/vaapi/gstvaapidebug.h:
34617 Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
34619 2010-03-25 17:18:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34621 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34622 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34623 Add gst_vaapi_window_x11_is_foreign_xid() helper.
34625 2010-03-25 17:18:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34627 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34628 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34629 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34630 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34631 Allow derived classes to specify custom Visual and Colormap.
34633 2010-03-25 13:54:06 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34635 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34636 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34637 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34638 Allow window creation with a specific visual (e.g. for GLX support).
34640 2010-03-25 13:21:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34642 * gst-libs/gst/vaapi/gstvaapiimage.c:
34643 Fix return value on error (though it's the same in the end).
34645 2010-03-25 12:39:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34647 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34648 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34649 Simplify initialization of VADisplay.
34651 2010-03-25 10:04:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34654 Move __attribute__((visibility("hidden"))) check down.
34656 2010-03-25 09:49:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34658 * docs/reference/libs/libs-sections.txt:
34659 * gst-libs/gst/vaapi/gstvaapiimage.c:
34660 * gst-libs/gst/vaapi/gstvaapiimage.h:
34661 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34662 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34663 * gst-libs/gst/vaapi/gstvaapisurface.c:
34664 * gst-libs/gst/vaapi/gstvaapisurface.h:
34665 * tests/test-surfaces.c:
34666 Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
34668 2010-03-25 09:39:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34670 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34671 Use the parent display object, no need to maintain another one.
34672 In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
34674 2010-03-25 09:37:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34676 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34677 Add more internal helpers.
34679 2010-03-24 17:40:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34681 * gst-libs/gst/vaapi/gstvaapiimage.c:
34682 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34683 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34684 * gst-libs/gst/vaapi/gstvaapisurface.c:
34685 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34686 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34687 Rename to GST_VAAPI_OBJECT_DISPLAY().
34689 2010-03-24 17:38:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34691 * docs/reference/libs/libs-sections.txt:
34692 * gst-libs/gst/vaapi/gstvaapiimage.c:
34693 * gst-libs/gst/vaapi/gstvaapiobject.c:
34694 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34695 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34696 * gst-libs/gst/vaapi/gstvaapisurface.c:
34697 * gst-libs/gst/vaapi/gstvaapitypes.h:
34698 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34699 All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
34701 2010-03-24 17:22:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34703 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34704 * gst-libs/gst/vaapi/gstvaapiwindow.h:
34705 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34706 Make GstVaapiWindow* derive from GstVaapiObject.
34708 2010-03-24 16:37:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34711 Factor out use gstreamer-vaapi (PACKAGE name).
34713 2010-03-24 16:35:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34716 Improve versioning summary.
34718 2010-03-24 16:27:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34720 * gst-libs/gst/vaapi/Makefile.am:
34721 gstvaapicompat.h is now a private header (not installed).
34723 2010-03-24 16:25:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34725 * gst-libs/gst/vaapi/gstvaapiimage.c:
34726 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34727 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34728 * gst-libs/gst/vaapi/gstvaapiobject.c:
34729 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34730 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34731 Include gstvaapicompat.h in source files only, not headers.
34733 2010-03-24 16:21:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34736 * gst-libs/gst/vaapi/Makefile.am:
34737 * sys/vaapiconvert/Makefile.am:
34738 * sys/vaapisink/Makefile.am:
34739 * tests/Makefile.am:
34740 Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
34742 2010-03-24 16:17:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34746 * gst-libs/gst/vaapi/Makefile.am:
34747 * gst-libs/gst/vaapi/gstvaapicompat.h:
34748 * gst-libs/gst/vaapi/gstvaapidisplay.h:
34749 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34750 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34751 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34752 * gst-libs/gst/vaapi/gstvaapisurface.c:
34753 * gst-libs/gst/vaapi/gstvaapiutils.c:
34754 * gst-libs/gst/vaapi/gstvaapiutils.h:
34755 * pkgconfig/gstreamer-vaapi-x11.pc.in:
34756 * pkgconfig/gstreamer-vaapi.pc.in:
34757 * sys/vaapiconvert/Makefile.am:
34758 * sys/vaapisink/Makefile.am:
34759 * tests/Makefile.am:
34760 Add compatibility with the original VA-API 0.29.
34762 2010-03-24 15:18:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34764 * gst-libs/gst/vaapi/gstvaapivalue.h:
34765 Add missing file (gstvaapivalue.h).
34767 2010-03-24 15:12:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34769 * gst-libs/gst/vaapi/gstvaapiimage.c:
34770 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34771 * gst-libs/gst/vaapi/gstvaapisurface.c:
34772 Fix g_warning() invocation.
34774 2010-03-24 15:11:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34776 * gst-libs/gst/vaapi/gstvaapisurface.c:
34777 Deassociate subpictures while destroying the surface.
34779 2010-03-24 14:57:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34781 * gst-libs/gst/vaapi/gstvaapisurface.c:
34782 Fix destruction order of subpictures. They should be destroyed first.
34784 2010-03-24 14:46:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34787 * gst-libs/gst/vaapi/gstvaapiimage.c:
34788 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34789 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34790 * tests/test-windows.c:
34791 Add support for AYUV format.
34793 2010-03-24 14:36:39 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34795 * tests/test-windows.c:
34796 Simplify upload process and fallback to subpictures.
34798 2010-03-24 13:44:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34800 * docs/reference/libs/libs-docs.xml.in:
34801 * docs/reference/libs/libs-sections.txt:
34802 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34805 2010-03-24 13:37:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34807 * gst-libs/gst/vaapi/Makefile.am:
34808 * gst-libs/gst/vaapi/gstvaapiobject.c:
34809 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34810 * gst-libs/gst/vaapi/gstvaapitypes.h:
34811 * gst-libs/gst/vaapi/gstvaapivalue.c:
34812 Move GValue specific stuff to a dedicated file.
34814 2010-03-24 13:22:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34816 * tests/test-surfaces.c:
34817 Cosmetics (lowercase for consistency).
34819 2010-03-24 13:21:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34821 * gst-libs/gst/vaapi/gstvaapiobject.c:
34822 Cosmetics (vertical alignment).
34824 2010-03-24 13:20:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34826 * gst-libs/gst/vaapi/gstvaapiobject.c:
34827 Fix return value on error.
34829 2010-03-24 13:19:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34831 * docs/reference/libs/libs-sections.txt:
34832 * gst-libs/gst/vaapi/gstvaapiimage.c:
34833 * gst-libs/gst/vaapi/gstvaapiimage.h:
34834 * gst-libs/gst/vaapi/gstvaapiobject.c:
34835 * gst-libs/gst/vaapi/gstvaapiobject.h:
34836 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34837 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34838 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34839 * gst-libs/gst/vaapi/gstvaapisurface.c:
34840 * gst-libs/gst/vaapi/gstvaapisurface.h:
34841 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34842 * tests/test-surfaces.c:
34843 Move "id" down to the GstVaapiObject base.
34845 2010-03-24 12:59:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34847 * gst-libs/gst/vaapi/gstvaapitypes.c:
34848 Cosmetics (drop extraneous empty line).
34850 2010-03-24 12:57:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34852 * gst-libs/gst/vaapi/Makefile.am:
34853 * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34854 * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
34855 Add GParamSpecs for GstVaapiID.
34857 2010-03-24 12:54:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34859 * docs/reference/libs/libs.types:
34860 Drop gst_vaapi_id_get_type().
34862 2010-03-24 12:38:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34864 * docs/reference/libs/libs-sections.txt:
34865 * gst-libs/gst/vaapi/gstvaapitypes.h:
34866 Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
34868 2010-03-24 09:52:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34870 * docs/reference/libs/libs-sections.txt:
34871 * docs/reference/libs/libs.types:
34872 * gst-libs/gst/vaapi/Makefile.am:
34873 * gst-libs/gst/vaapi/gstvaapitypes.c:
34874 * gst-libs/gst/vaapi/gstvaapitypes.h:
34875 Add GstVaapiID abstraction.
34877 2010-03-24 09:22:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34879 * docs/reference/libs/libs.types:
34882 2010-03-24 08:35:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34884 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34885 * gst-libs/gst/vaapi/gstvaapiimage.c:
34886 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34887 * gst-libs/gst/vaapi/gstvaapisurface.c:
34888 Drop useless include (<va/va_backend.h>).
34890 2010-03-24 08:34:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34892 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34893 Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
34895 2010-03-24 08:32:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34897 * gst-libs/gst/vaapi/Makefile.am:
34898 * gst-libs/gst/vaapi/gstvaapiimage.c:
34899 * gst-libs/gst/vaapi/gstvaapiobject.c:
34900 * gst-libs/gst/vaapi/gstvaapiobject.h:
34901 * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34902 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34903 * gst-libs/gst/vaapi/gstvaapisurface.c:
34904 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34905 Move private definitions and accessors to gstvaapiobject_priv.h.
34907 2010-03-24 08:16:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34909 * gst-libs/gst/vaapi/gstvaapidisplay.c:
34910 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34911 * gst-libs/gst/vaapi/gstvaapiimage.c:
34912 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34913 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
34914 * gst-libs/gst/vaapi/gstvaapiobject.c:
34915 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34916 * gst-libs/gst/vaapi/gstvaapisurface.c:
34917 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
34918 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34919 * gst-libs/gst/vaapi/gstvaapivideopool.c:
34920 * gst-libs/gst/vaapi/gstvaapivideosink.c:
34921 * gst-libs/gst/vaapi/gstvaapiwindow.c:
34922 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34923 Fix short descriptions.
34925 2010-03-23 18:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34929 * debian.upstream/Makefile.am:
34930 * debian.upstream/changelog.in:
34931 * debian.upstream/compat:
34932 * debian.upstream/control.in:
34933 * debian.upstream/copyright:
34934 * debian.upstream/gstreamer-vaapi-doc.install.in:
34935 * debian.upstream/gstreamer-vaapi.install.in:
34936 * debian.upstream/libgstvaapi-dev.install.in:
34937 * debian.upstream/libgstvaapi-x11.install.in:
34938 * debian.upstream/libgstvaapi.install.in:
34939 * debian.upstream/rules:
34940 Generate upstream packages through make deb.upstream.
34942 2010-03-23 17:40:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34945 Bump version for development.
34947 2010-03-23 17:29:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34949 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34950 Use a black background for new windows.
34952 2010-03-23 17:18:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34957 2010-03-23 17:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34960 * docs/reference/libs/libs.types:
34961 * gst-libs/gst/vaapi/Makefile.am:
34962 * gst-libs/gst/vaapi/gstvaapimarshal.list:
34963 * gst-libs/gst/vaapi/gstvaapiobject.c:
34964 * gst-libs/gst/vaapi/gstvaapiobject.h:
34965 * tests/test-surfaces.c:
34966 Add "destroy" signal.
34968 2010-03-23 16:25:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34970 * docs/reference/libs/libs-docs.xml.in:
34971 Improve gst-plugins-vaapi Library reference template.
34973 2010-03-23 16:21:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34975 * docs/reference/libs/libs-docs.xml.in:
34976 * docs/reference/libs/libs-sections.txt:
34977 * gst-libs/gst/vaapi/Makefile.am:
34978 * gst-libs/gst/vaapi/gstvaapiimage.c:
34979 * gst-libs/gst/vaapi/gstvaapiimage.h:
34980 * gst-libs/gst/vaapi/gstvaapiobject.c:
34981 * gst-libs/gst/vaapi/gstvaapiobject.h:
34982 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34983 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34984 * gst-libs/gst/vaapi/gstvaapisurface.c:
34985 * gst-libs/gst/vaapi/gstvaapisurface.h:
34986 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34987 Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
34989 2010-03-23 16:11:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34991 * sys/vaapisink/gstvaapisink.c:
34994 2010-03-23 15:34:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34996 * sys/vaapisink/gstvaapisink.c:
34997 Make sure VA display is valid when created with an explicit "display" name.
34999 2010-03-23 15:28:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35001 * sys/vaapisink/gstvaapisink.c:
35002 Use plain "display" property for the X11 display name.
35004 2010-03-23 15:22:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35006 * sys/vaapiconvert/gstvaapiconvert.c:
35007 * sys/vaapisink/gstvaapisink.c:
35008 Document vaapiconvert & vaapisink plugins.
35010 2010-03-23 14:19:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35013 * docs/reference/Makefile.am:
35014 * docs/reference/plugins/Makefile.am:
35015 * docs/reference/plugins/plugins-docs.xml.in:
35016 * docs/reference/plugins/plugins-overrides.txt:
35017 * docs/reference/plugins/plugins-sections.txt:
35018 * docs/reference/plugins/plugins.types:
35019 Add plugins documentation template.
35021 2010-03-23 14:06:42 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35023 * sys/vaapisink/gstvaapisink.c:
35024 * sys/vaapisink/gstvaapisink.h:
35025 Don't export gst_vaapisink_get_display().
35027 2010-03-23 13:32:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35030 * docs/reference/libs/libs-docs.xml.in:
35031 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35032 * gst-libs/gst/vaapi/gstvaapiimage.c:
35033 * gst-libs/gst/vaapi/gstvaapisurface.c:
35034 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35035 Drop introspection annotations since they require gtk-doc >= 1.12.
35037 2010-03-23 10:51:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35039 * gst-libs/gst/vaapi/gstvaapisurface.c:
35040 Add note about the fact that the surface holds an extra reference to the subpicture.
35042 2010-03-23 10:49:33 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35044 * gst-libs/gst/vaapi/gstvaapiimage.c:
35045 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35046 * gst-libs/gst/vaapi/gstvaapisurface.c:
35047 Improve debugging messages.
35049 2010-03-23 10:48:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35051 * tests/test-windows.c:
35052 Unref subpicture earlier as the surface is supposed to hold a reference to it.
35054 2010-03-23 10:36:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35056 * docs/reference/libs/libs-sections.txt:
35057 * gst-libs/gst/vaapi/gstvaapisurface.c:
35058 * gst-libs/gst/vaapi/gstvaapisurface.h:
35059 * tests/test-windows.c:
35060 Add gst_vaapi_surface_{,de}associate_subpicture() API.
35062 2010-03-23 08:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35064 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35065 Wait for MapNotify or UnmapNotify events on foreign windows too.
35067 2010-03-23 07:42:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35069 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35070 Check whether the foreign XID is mapped at binding time.
35072 2010-03-23 07:34:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35074 * sys/vaapisink/gstvaapisink.c:
35075 Add missing includes.
35077 2010-03-23 07:31:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35080 * debian/Makefile.am:
35081 * debian/control.in:
35082 * debian/gstreamer-vaapi-doc.install.in:
35086 2010-03-23 06:41:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35088 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35089 Fix warnings (drop extraneous var).
35091 2010-03-23 06:40:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35093 * docs/reference/libs/libs-sections.txt:
35094 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35095 Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
35097 2010-03-22 16:59:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35099 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35102 2010-03-22 16:57:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35104 * gst-libs/gst/vaapi/Makefile.am:
35105 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35106 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35107 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35108 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35109 Try to improve switch to fullscreen mode.
35111 2010-03-22 16:01:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35113 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35114 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35115 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35116 Improve display locking and rework X event wait functions.
35118 2010-03-22 13:06:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35120 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35121 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35122 Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
35124 2010-03-22 13:05:05 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35126 * gst-libs/gst/vaapi/Makefile.am:
35127 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35128 * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35129 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.
35131 2010-03-22 12:47:13 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35133 * docs/reference/libs/libs-sections.txt:
35134 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35135 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35136 Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
35138 2010-03-22 12:39:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35140 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35141 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35142 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35143 Add gst_vaapi_window_get_display() to base.
35145 2010-03-22 12:16:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35147 * docs/reference/libs/libs-docs.xml.in:
35148 * docs/reference/libs/libs-sections.txt:
35149 * gst-libs/gst/vaapi/Makefile.am:
35150 * gst-libs/gst/vaapi/gstvaapitypes.h:
35151 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35152 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35153 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35154 * sys/vaapisink/gstvaapisink.c:
35155 * sys/vaapisink/gstvaapisink.h:
35156 Add GstVaapiPoint & GstVaapiRectangle data structures.
35158 2010-03-22 12:05:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35163 2010-03-22 12:03:26 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35166 * sys/vaapisink/gstvaapisink.c:
35167 * sys/vaapisink/gstvaapisink.h:
35168 Allow `vaapisink` to render videos in fullscreen mode.
35170 2010-03-22 10:51:49 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35172 * docs/reference/libs/libs-sections.txt:
35173 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35174 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35175 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35176 Add gst_vaapi_window_set_fullscreen() API.
35178 2010-03-22 10:03:24 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35180 * sys/vaapisink/gstvaapisink.c:
35181 Size window so that to respect the video and pixel aspect ratio.
35183 2010-03-22 09:32:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35185 * docs/reference/libs/libs-sections.txt:
35186 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35187 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35188 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35189 * tests/test-display.c:
35190 Add gst_vaapi_display_get_pixel_aspect_ratio().
35192 2010-03-22 08:45:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35194 * docs/reference/libs/libs-sections.txt:
35197 2010-03-22 08:44:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35199 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35200 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35201 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35202 * tests/test-display.c:
35203 Add display size accessors.
35205 2010-03-22 08:03:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35208 * debian/control.in:
35209 Build-Requires: gstreamer-plugins-base >= 0.10.16.
35211 2010-03-21 08:45:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35213 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35214 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35215 * gst-libs/gst/vaapi/gstvaapiimage.h:
35216 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35217 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35218 * gst-libs/gst/vaapi/gstvaapisurface.h:
35219 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35220 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35221 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35222 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35223 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35224 Fix documentation of *Class'es.
35226 2010-03-21 08:38:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35228 * gst-libs/gst/vaapi/gstvaapiutils.c:
35229 * gst-libs/gst/vaapi/gstvaapiutils.h:
35230 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35231 Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
35233 2010-03-21 08:22:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35235 * docs/reference/libs/libs-sections.txt:
35236 * gst-libs/gst/vaapi/gstvaapisurface.h:
35237 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35238 Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
35240 2010-03-21 08:12:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35242 * docs/reference/libs/libs-sections.txt:
35243 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35244 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35245 * sys/vaapisink/gstvaapisink.c:
35246 * tests/test-windows.c:
35247 Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
35249 2010-03-19 17:15:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35251 * docs/reference/libs/Makefile.am:
35252 Fix make dist for --enable-gtk-doc builds.
35254 2010-03-19 17:13:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35257 Improve autogen.sh.
35259 2010-03-19 17:11:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35263 Generate gtk-doc.make from gtkdocize.
35265 2010-03-19 17:04:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35270 * docs/Makefile.am:
35271 * docs/reference/Makefile.am:
35272 * docs/reference/libs/Makefile.am:
35273 * docs/reference/libs/libs-docs.xml.in:
35274 * docs/reference/libs/libs-overrides.txt:
35275 * docs/reference/libs/libs-sections.txt:
35276 * docs/reference/libs/libs.types:
35277 Document public API for libgstvaapi-*.so.*.
35279 2010-03-19 16:41:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35281 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35282 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35283 Document GstVaapiVideoBuffer.
35285 2010-03-19 16:08:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35287 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35288 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35289 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35290 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35291 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35292 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35293 Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
35295 2010-03-19 15:45:21 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35297 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35298 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35299 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35300 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35301 * gst-libs/gst/vaapi/gstvaapiimage.c:
35302 * gst-libs/gst/vaapi/gstvaapiimage.h:
35303 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35304 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35305 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35306 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35307 * gst-libs/gst/vaapi/gstvaapisurface.c:
35308 * gst-libs/gst/vaapi/gstvaapisurface.h:
35309 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35310 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35311 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35312 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35313 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35314 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35315 Add tedious documentation.
35317 2010-03-19 10:42:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35319 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35320 Beautify append_formats().
35322 2010-03-19 10:38:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35324 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35325 Simplify GstVaapiDisplay (use GArray).
35327 2010-03-19 08:42:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35330 * sys/vaapiconvert/gstvaapiconvert.c:
35331 * sys/vaapiconvert/gstvaapiconvert.h:
35332 Factor out direct-rendering infrastructure.
35334 2010-03-18 16:18:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35336 * sys/vaapiconvert/gstvaapiconvert.c:
35337 * sys/vaapiconvert/gstvaapiconvert.h:
35338 Allow user to specify inout-buffers & derive-image optimizations.
35340 2010-03-18 15:58:28 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35342 * sys/vaapiconvert/gstvaapiconvert.c:
35343 Reduce number of debug messaged printed out.
35345 2010-03-18 15:53:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35347 * sys/vaapiconvert/gstvaapiconvert.c:
35348 * sys/vaapiconvert/gstvaapiconvert.h:
35349 Add vaDeriveImage() optimization.
35351 2010-03-18 15:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35353 * gst-libs/gst/vaapi/gstvaapiimage.c:
35354 Fix gst_vaapi_image_create() from a foreign VA image.
35356 2010-03-18 15:28:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35358 * gst-libs/gst/vaapi/gstvaapiimage.c:
35359 * gst-libs/gst/vaapi/gstvaapiimage.h:
35360 * gst-libs/gst/vaapi/gstvaapisurface.c:
35361 * gst-libs/gst/vaapi/gstvaapisurface.h:
35362 Add gst_vaapi_surface_derive_image() API.
35364 2010-03-18 13:49:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35366 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35367 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35368 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35369 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().
35371 2010-03-18 13:08:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35373 * tests/test-windows.c:
35374 Try YV12 & I420 image formats too.
35376 2010-03-18 12:59:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35378 * gst-libs/gst/vaapi/gstvaapiimage.c:
35379 Split map/unmap functions into internal functions that don't check preconditions.
35381 2010-03-18 12:56:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35383 * gst-libs/gst/vaapi/gstvaapiimage.c:
35384 Improve gst_vaapi_image_new() sanity checks.
35386 2010-03-18 12:52:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35388 * tests/test-windows.c:
35391 2010-03-18 08:45:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35393 * sys/vaapiconvert/gstvaapiconvert.c:
35394 Check if our inout buffer is still alive or default to a separate output buffer.
35396 2010-03-18 08:16:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35398 * sys/vaapiconvert/gstvaapiconvert.c:
35399 * sys/vaapiconvert/gstvaapiconvert.h:
35400 Factor out buffers negotiation and optimization checks.
35402 2010-03-18 08:02:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35404 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35405 * gst-libs/gst/vaapi/gstvaapiimage.c:
35406 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35407 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35408 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35409 * sys/vaapiconvert/gstvaapiconvert.h:
35412 2010-03-17 10:43:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35414 * gst-libs/gst/vaapi/gstvaapiimage.c:
35415 Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
35417 2010-03-17 07:59:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35419 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35420 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35421 * gst-libs/gst/vaapi/gstvaapiimage.c:
35422 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35423 * gst-libs/gst/vaapi/gstvaapisurface.c:
35424 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35425 Add VA display locking utilities.
35427 2010-03-17 07:20:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35429 * sys/vaapisink/gstvaapisink.c:
35430 Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
35432 2010-03-17 07:17:17 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35434 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35435 * tests/test-windows.c:
35436 Don't show window by default during creation.
35438 2010-03-17 06:49:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35440 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35441 Fix gst_vaapi_window_x11_destroy().
35443 2010-03-16 17:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35445 * sys/vaapiconvert/gstvaapiconvert.c:
35446 * sys/vaapiconvert/gstvaapiconvert.h:
35447 Alias sink & src pad buffers whenever possible.
35449 2010-03-16 17:57:23 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35451 * gst-libs/gst/vaapi/gstvaapiimage.c:
35452 * gst-libs/gst/vaapi/gstvaapiimage.h:
35453 Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
35455 2010-03-16 17:10:02 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35457 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35458 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35459 Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
35461 2010-03-16 14:37:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35463 * sys/vaapiconvert/gstvaapiconvert.c:
35464 Fix image & surface size cache.
35466 2010-03-16 14:12:40 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35469 Move gstreamer-vaapi package versioning to the top.
35471 2010-03-16 14:11:46 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35474 Bump version for development.
35476 2010-03-16 14:07:53 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35479 Cosmetics (shorten lines).
35481 2010-03-16 13:58:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35487 2010-03-16 13:53:54 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35489 * debian/Makefile.am:
35490 * debian/changelog.in:
35492 * debian/control.in:
35493 * debian/copyright:
35494 * debian/gstreamer-vaapi.install.in:
35495 * debian/libgstvaapi-dev.install.in:
35496 * debian/libgstvaapi-x11.install.in:
35497 * debian/libgstvaapi.install.in:
35499 Add debian packaging.
35501 2010-03-16 13:53:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35505 Add debian packaging.
35507 2010-03-16 10:13:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35509 * pkgconfig/Makefile.am:
35510 Silence GNU make extensions warning.
35512 2010-03-16 09:59:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35515 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'
35517 2010-03-16 09:57:25 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35521 * pkgconfig/Makefile.am:
35522 * pkgconfig/gstreamer-vaapi-x11.pc.in:
35523 * pkgconfig/gstreamer-vaapi.pc.in:
35524 Add pkgconfig files.
35526 2010-03-16 09:39:07 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35529 * gst-libs/gst/vaapi/Makefile.am:
35530 * sys/vaapisink/Makefile.am:
35531 * tests/Makefile.am:
35532 Split X11 support to libgstvaapi-x11-*.so.*
35534 2010-03-16 09:21:15 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35536 * gst-libs/gst/vaapi/Makefile.am:
35537 Don't install private headers.
35539 2010-03-16 09:18:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35541 * gst-libs/gst/vaapi/gstvaapidebug.h:
35542 * gst-libs/gst/vaapi/gstvaapiutils.c:
35543 * gst-libs/gst/vaapi/gstvaapiutils.h:
35546 2010-03-16 09:17:41 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35548 * gst-libs/gst/vaapi/Makefile.am:
35549 * gst-libs/gst/vaapi/gstvaapidebug.h:
35550 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35551 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35552 * gst-libs/gst/vaapi/gstvaapiimage.c:
35553 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35554 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35555 * gst-libs/gst/vaapi/gstvaapisurface.c:
35556 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35557 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35558 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35559 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35560 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35561 Rename vaapi_debug.h to gstvaapidebug.h.
35563 2010-03-16 09:15:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35565 * gst-libs/gst/vaapi/Makefile.am:
35566 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35567 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35568 * gst-libs/gst/vaapi/gstvaapiimage.c:
35569 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35570 * gst-libs/gst/vaapi/gstvaapisurface.c:
35571 * gst-libs/gst/vaapi/gstvaapiutils.c:
35572 * gst-libs/gst/vaapi/gstvaapiutils.h:
35573 * gst-libs/gst/vaapi/vaapi_debug.h:
35574 Move vaapi_utils.* to gstvaapiutils.*
35576 2010-03-16 09:13:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35578 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35579 Cosmetics (remove an extra line).
35581 2010-03-16 09:12:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35583 * gst-libs/gst/vaapi/Makefile.am:
35584 * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35585 * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35586 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35587 Move X11 utilties to gstvaapiutils_x11.[ch].
35589 2010-03-16 09:03:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35591 * gst-libs/gst/vaapi/Makefile.am:
35592 * gst-libs/gst/vaapi/gstvaapivideosink.c:
35593 * gst-libs/gst/vaapi/gstvaapivideosink.h:
35594 * sys/vaapiconvert/gstvaapiconvert.c:
35595 * sys/vaapisink/gstvaapisink.c:
35596 Rename GstVaapiSinkBase to GstVaapiVideoSink.
35598 2010-03-16 08:49:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35601 * tests/Makefile.am:
35602 * tests/examples/Makefile.am:
35603 * tests/examples/generic/Makefile.am:
35604 * tests/test-display.c:
35605 * tests/test-surfaces.c:
35606 * tests/test-windows.c:
35607 Move tests to top-level tests/ directory.
35609 2010-03-16 08:43:16 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35611 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35612 * gst-libs/gst/vaapi/gstvaapiimage.c:
35613 * sys/vaapiconvert/gstvaapiconvert.c:
35614 * sys/vaapiconvert/gstvaapiconvert.h:
35615 Handle I420 formats internally in GstVaapiImage.
35617 2010-03-15 17:44:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35619 * sys/vaapiconvert/gstvaapiconvert.c:
35620 * sys/vaapiconvert/gstvaapiconvert.h:
35621 Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
35623 2010-03-15 17:43:29 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35625 * gst-libs/gst/vaapi/gstvaapiimage.c:
35626 Implement I420 and YV12 if the underlying implementation does not.
35628 2010-03-15 17:10:56 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35630 * sys/vaapiconvert/Makefile.am:
35631 * sys/vaapiconvert/gstvaapiconvert.c:
35632 * sys/vaapiconvert/gstvaapiconvert.h:
35633 Add initial vaapiconvert plugin.
35635 2010-03-15 17:09:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35637 * sys/vaapisink/gstvaapisink.c:
35638 * sys/vaapisink/gstvaapisink.h:
35641 2010-03-15 16:57:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35643 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35646 2010-03-15 16:57:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35648 * tests/examples/generic/test-windows.c:
35649 Generate R/G/B rects.
35651 2010-03-15 16:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35653 * gst-libs/gst/vaapi/gstvaapisurface.c:
35654 * gst-libs/gst/vaapi/gstvaapisurface.h:
35655 Add gst_vaapi_surface_sync().
35657 2010-03-15 16:13:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35659 * gst-libs/gst/vaapi/gstvaapiimage.c:
35660 Cosmetics (reverse args order).
35662 2010-03-15 15:55:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35664 * gst-libs/gst/vaapi/gstvaapiimage.c:
35665 * gst-libs/gst/vaapi/gstvaapiimage.h:
35666 * gst-libs/gst/vaapi/gstvaapisurface.c:
35669 2010-03-15 15:12:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35671 * gst-libs/gst/vaapi/Makefile.am:
35672 * gst-libs/gst/vaapi/gstvaapiwindow.c:
35673 * gst-libs/gst/vaapi/gstvaapiwindow.h:
35674 * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35675 * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35676 * tests/examples/generic/Makefile.am:
35677 * tests/examples/generic/test-windows.c:
35678 Add VA/X11 window abstraction.
35680 2010-03-15 14:57:57 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35682 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35683 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35684 Add VA and X11 display accessors.
35686 2010-03-15 14:57:30 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35688 * gst-libs/gst/vaapi/gstvaapiimage.c:
35691 2010-03-15 13:32:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35693 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35696 2010-03-15 11:49:03 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35698 * gst-libs/gst/vaapi/gstvaapiimage.c:
35699 * gst-libs/gst/vaapi/gstvaapiimage.h:
35700 * gst-libs/gst/vaapi/gstvaapisurface.c:
35701 * gst-libs/gst/vaapi/gstvaapisurface.h:
35702 Add gst_vaapi_{get,put}_image() API.
35704 2010-03-15 10:27:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35706 * gst-libs/gst/vaapi/gstvaapiimage.c:
35707 * gst-libs/gst/vaapi/gstvaapiimage.h:
35708 Add gst_vaapi_image_update_from_buffer() helper.
35710 2010-03-12 23:53:48 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35712 * sys/vaapisink/Makefile.am:
35713 * sys/vaapisink/gstvaapisink.c:
35714 * sys/vaapisink/gstvaapisink.h:
35715 Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
35717 2010-03-12 23:50:09 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35719 * tests/examples/generic/Makefile.am:
35720 * tests/examples/generic/test-surfaces.c:
35723 2010-03-12 23:48:50 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35725 * gst-libs/gst/vaapi/Makefile.am:
35726 * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35727 * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35728 Add basic GstVaapiVideoBuffer.
35730 2010-03-12 23:47:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35732 * gst-libs/gst/vaapi/Makefile.am:
35733 * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35734 * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35735 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35736 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35737 * gst-libs/gst/vaapi/gstvaapivideopool.c:
35738 * gst-libs/gst/vaapi/gstvaapivideopool.h:
35739 Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
35741 2010-03-12 22:32:35 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35743 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35744 Simplify format conversion code.
35746 2010-03-12 22:28:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35748 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35749 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35750 Add gst_vaapi_image_format_from_caps() helper.
35752 2010-03-12 17:45:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35754 * gst-libs/gst/vaapi/Makefile.am:
35755 * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35756 * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35757 Add VA surface pool (lazy allocator).
35759 2010-03-12 17:39:11 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35761 * gst-libs/gst/vaapi/gstvaapisurface.c:
35762 * gst-libs/gst/vaapi/gstvaapisurface.h:
35763 Add gst_vaapi_surface_get_size() helper.
35765 2010-03-12 10:52:08 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35767 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35768 Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
35770 2010-03-11 15:35:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35772 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35773 Reset display-name if the user provided his own X11 display.
35775 2010-03-11 15:21:43 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35777 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35778 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35779 * tests/examples/generic/test-display.c:
35780 Add gst_vaapi_display_x11_new_with_display() API.
35782 2010-03-11 15:04:18 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35784 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35785 * gst-libs/gst/vaapi/gstvaapiimage.h:
35786 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35787 * gst-libs/gst/vaapi/gstvaapisurface.h:
35788 Fix *_GET_CLASS() definitions...
35790 2010-03-11 15:01:00 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35792 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35793 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35794 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35795 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35796 * tests/examples/generic/test-display.c:
35797 API change: gst_vaapi_display_x11_new() now takes an X11 display name.
35799 2010-03-11 13:58:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35801 * gst-libs/gst/vaapi/gstvaapisurface.c:
35802 * gst-libs/gst/vaapi/gstvaapisurface.h:
35803 Use GstVaapiChromaType abstraction.
35805 2010-03-11 12:30:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35807 * gst-libs/gst/vaapi/gstvaapiimage.c:
35808 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35809 * gst-libs/gst/vaapi/gstvaapisurface.c:
35810 New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
35812 2010-03-11 12:14:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35814 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35815 Don't warn on failure, just return an appropriate error or value.
35817 2010-03-11 12:11:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35819 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35820 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35821 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35822 Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
35824 2010-03-11 10:50:27 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35826 * gst-libs/gst/vaapi/Makefile.am:
35827 * gst-libs/gst/vaapi/gstvaapisinkbase.c:
35828 * gst-libs/gst/vaapi/gstvaapisinkbase.h:
35829 Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
35831 2010-03-10 13:13:51 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35833 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35834 * gst-libs/gst/vaapi/gstvaapiimage.c:
35835 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35836 * gst-libs/gst/vaapi/gstvaapisurface.c:
35837 * gst-libs/gst/vaapi/vaapi_debug.h:
35840 2010-03-10 13:10:59 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35842 * gst-libs/gst/vaapi/gstvaapiimage.c:
35843 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35844 Fix GstVaapiImage and GstVaapiSubpicture initialization.
35846 2010-03-10 13:02:45 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35848 * gst-libs/gst/vaapi/gstvaapisurface.c:
35849 Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
35851 2010-03-10 12:25:38 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35853 * tests/examples/generic/test-display.c:
35856 2010-03-10 12:25:19 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35858 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35859 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35860 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35861 Fix GstVaapiDisplay initialization.
35863 2010-03-10 10:43:31 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35865 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35866 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35867 Get VA image & subpicture formats as GstCaps.
35869 2010-03-10 10:41:12 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35871 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35872 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35873 Add helper to convert from GstVaapiImageFormat to GstCaps.
35875 2010-03-09 12:00:32 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35877 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35878 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35879 * gst-libs/gst/vaapi/gstvaapisurface.c:
35880 Cosmetics (drop unused variables).
35882 2010-03-05 17:11:52 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35885 * sys/vaapiconvert/Makefile.am:
35886 * sys/vaapiconvert/gstvaapiconvert.c:
35887 * sys/vaapiconvert/gstvaapiconvert.h:
35888 * sys/vaapisink/Makefile.am:
35889 * sys/vaapisink/gstvaapisink.c:
35890 * sys/vaapisink/gstvaapisink.h:
35891 Add boilerplate for vaapiconvert and vaapisink elements.
35893 2010-03-05 15:29:04 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35897 * sys/vaapiconvert/Makefile.am:
35898 Add vaapiconvert element hierarchy.
35900 2010-03-05 15:26:36 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35902 * sys/vaapisink/Makefile.am:
35903 Rename to vaapisink.
35905 2010-03-05 10:07:22 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35907 * gst-libs/gst/vaapi/gstvaapisurface.c:
35908 Shorter code (and more correct).
35910 2010-03-05 10:04:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35912 * gst-libs/gst/vaapi/gstvaapisurface.c:
35913 * gst-libs/gst/vaapi/gstvaapisurface.h:
35914 Add helper to get GstVaapiDisplay from a surface.
35916 2010-03-05 08:52:20 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35918 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35919 Fix subpicture formats list length.
35921 2010-03-04 17:41:34 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35923 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35924 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35925 Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
35927 2010-03-04 17:40:47 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35929 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35930 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35931 Cosmetics (more checks, includes).
35933 2010-03-04 17:39:58 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35935 * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35936 * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35937 Really add VA subpicture abstraction.
35939 2010-03-04 17:39:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35941 * gst-libs/gst/vaapi/Makefile.am:
35942 * gst-libs/gst/vaapi/gstvaapiimage.c:
35943 * gst-libs/gst/vaapi/gstvaapiimage.h:
35944 * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35945 * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35946 * gst-libs/gst/vaapi/gstvaapisurface.c:
35947 * gst-libs/gst/vaapi/gstvaapisurface.h:
35948 Add VA surface, image, subpicture abstractions. Ported over from Gnash.
35950 2010-01-25 16:15:01 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35953 * gst-libs/gst/vaapi/Makefile.am:
35954 * gst-libs/gst/vaapi/gstvaapidisplay.c:
35955 * gst-libs/gst/vaapi/gstvaapidisplay.h:
35956 * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35957 * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35958 * gst-libs/gst/vaapi/vaapi_debug.h:
35959 * gst-libs/gst/vaapi/vaapi_utils.c:
35960 * gst-libs/gst/vaapi/vaapi_utils.h:
35961 * tests/examples/generic/Makefile.am:
35962 * tests/examples/generic/test-display.c:
35963 Add initial VA display abstraction.
35965 2010-01-25 15:04:10 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35969 * tests/Makefile.am:
35970 * tests/examples/Makefile.am:
35971 * tests/examples/generic/Makefile.am:
35972 Add tests infrastructure.
35974 2010-01-25 14:59:37 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35977 Clean up VA-API checks.
35979 2010-01-25 13:49:55 +0000 gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35982 Check for __attribute__((visibility("hidden"))).