Release 1.20.0
[platform/upstream/gstreamer.git] / subprojects / gstreamer-vaapi / ChangeLog
1 === release 1.20.0 ===
2
3 2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
4
5         * NEWS:
6         * RELEASE:
7         * gstreamer-vaapi.doap:
8         * meson.build:
9           Release 1.20.0
10
11 2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>
12
13         * ChangeLog:
14           Update ChangeLogs for 1.20.0
15
16 2022-01-30 09:38:48 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17
18         * gst/vaapi/gstvaapipluginutil.c:
19         * meson.build:
20           vaapi: Disable Wayland if no libdrm
21           Platform wise, is not possible, as far as I known, to have Wayland
22           without kernel's DRM. Though, it's possible to configure
23           gstreamer-vaapi without DRM but Wayland support, with the enhanced
24           handling of dmabuf in vaapisink for Wayland, vaapisink will always
25           fail. Given both issues, configuration with no DRM but Wayland, makes
26           things more complex, and a simpler approach is to refuse that
27           configuration.
28           This patch disables Wayland support if there isn't DRM support. Also,
29           it disables the display test for Wayland, relying only on DRM and
30           X11.
31           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1606>
32
33 2022-01-30 07:10:09 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
34
35         * gst-libs/gst/vaapi/video-format.c:
36           vaapi: libs: video-format: Check if formats map is not NULL.
37           Formats map is instantiated at the end of the display
38           instantiation. The problem is the Wayland display which looks for a
39           format in a callback, before the map is populated.
40           If user compiles gstreamer-vaapi with DRM support, the map is
41           populated with a DRM display at GStreamer plugin registration. But if
42           not, or a VA driver is not available, the plugin will try with a
43           Wayland driver, which cause the NULL de-reference.
44           Nevertheless, in the case of no DRM support, and if the Wayland
45           display doesn't get a reply from the format conversion is not a
46           problem.
47           So the solution is the trivial one, check if the format map is already
48           populated before de-reference it.
49           Fixes: #977
50           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1606>
51
52 === release 1.19.90 ===
53
54 2022-01-28 14:28:35 +0000  Tim-Philipp Müller <tim@centricular.com>
55
56         * ChangeLog:
57         * NEWS:
58         * RELEASE:
59         * gstreamer-vaapi.doap:
60         * meson.build:
61           Release 1.19.90
62
63 2022-01-28 14:28:28 +0000  Tim-Philipp Müller <tim@centricular.com>
64
65         * ChangeLog:
66           Update ChangeLogs for 1.19.90
67
68 2022-01-05 02:07:59 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
69
70         * docs/meson.build:
71         * meson.build:
72           meson: Add explicit check: kwarg to all run_command() calls
73           This is required since Meson 0.61.0, and causes a warning to be
74           emitted otherwise:
75           https://github.com/mesonbuild/meson/commit/2c079d855ed87488bdcc6c5c06f59abdb9b85b6c
76           https://github.com/mesonbuild/meson/issues/9300
77           This exposed a bunch of places where we had broken run_command()
78           calls, unnecessary run_command() calls, and places where check: true
79           should be used.
80           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1507>
81
82 2022-01-04 16:19:44 +0800  He Junyan <junyan.he@intel.com>
83
84         * gst-libs/gst/vaapi/gstvaapiprofile.c:
85           vaapi: av1dec: Use named profiles to replace the numeric ones.
86           Use named AV1 profiles (i.e., main, high) to replace the old "0"
87           and "1" profiles.
88           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1491>
89
90 2021-12-01 15:36:44 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
91
92         * gst/vaapi/gstvaapidecodebin.c:
93           vaapidecodebin: Misc enhancements.
94           - Use GST_WARNING rather than g_critical
95           - Replace gst_ghost_pad_new_from_template() with
96           gst_ghost_pad_new() to avoid using the template.
97           - Declare extern variable
98           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1405>
99
100 2021-12-01 12:26:11 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
101
102         * gst/vaapi/gstvaapidecode.c:
103           vaapidecode: Autogenerate caps template.
104           vaapidecode is used in vaapidecodebin and it exposes all the
105           theoretically supported caps, but that slows down autoplug. With this
106           autplug is negotiated faster, giving more option to decodebin to select
107           other decoder.
108           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1405>
109
110 2021-11-16 17:18:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
111
112         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
113         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
114           vaapi: libs: Use unsized arrays as parameters.
115           Instead of defining a sized array for function signature, use it
116           unsized (a pointer alias, basically). In this way clang warning is
117           silenced:
118           warning: ‘fill_profiles’ accessing 64 bytes in a region of size 12 [-Wstringop-overflow=]
119           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
120
121 2021-11-16 17:21:52 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
122
123         * meson.build:
124           vaapi: meson: Fail if static build.
125           And initialize the plugin array.
126           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1357>
127
128 2021-11-15 16:38:34 +0800  Ung, Teng En <teng.en.ung@intel.com>
129
130         * gst/vaapi/gstvaapipostproc.c:
131           vaapipostproc: fix mising metadata when using system
132           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1325>
133
134 2021-11-03 18:44:03 +0000  Tim-Philipp Müller <tim@centricular.com>
135
136         * meson.build:
137           Back to development
138
139 === release 1.19.3 ===
140
141 2021-11-03 15:43:36 +0000  Tim-Philipp Müller <tim@centricular.com>
142
143         * ChangeLog:
144         * NEWS:
145         * RELEASE:
146         * gstreamer-vaapi.doap:
147         * meson.build:
148           Release 1.19.3
149
150 2021-11-03 15:43:32 +0000  Tim-Philipp Müller <tim@centricular.com>
151
152         * ChangeLog:
153           Update ChangeLogs for 1.19.3
154
155 2021-10-18 15:47:00 +0100  Tim-Philipp Müller <tim@centricular.com>
156
157         * tests/check/meson.build:
158           meson: update for meson.build_root() and .build_source() deprecation
159           -> use meson.project_build_root() or .global_build_root() instead.
160           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
161
162 2021-10-18 00:40:14 +0100  Tim-Philipp Müller <tim@centricular.com>
163
164         * docs/meson.build:
165         * gst-libs/gst/vaapi/meson.build:
166         * meson.build:
167         * tests/check/meson.build:
168           meson: update for dep.get_pkgconfig_variable() deprecation
169           ... in favour of dep.get_variable('foo', ..) which in some
170           cases allows for further cleanups in future since we can
171           extract variables from pkg-config dependencies as well as
172           internal dependencies using this mechanism.
173           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
174
175 2021-10-14 18:38:26 +0100  Tim-Philipp Müller <tim@centricular.com>
176
177         * meson.build:
178           meson: bump meson requirement to >= 0.59
179           For monorepo build and ugly/bad, for advanced feature
180           option API like get_option('xyz').required(..) which
181           we use in combination with the 'gpl' option.
182           For rest of modules for consistency (people will likely
183           use newer features based on the top-level requirement).
184           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
185
186 2021-10-15 00:33:39 +0800  He Junyan <junyan.he@intel.com>
187
188         * docs/index.md:
189           Docs: Fix a typo for Intel's vaapi driver name.
190           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1151>
191
192 2021-09-28 10:11:15 +1000  Brad Hards <bradh@frogmouth.net>
193
194         * RELEASE:
195           doc: update IRC links to OFTC
196           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
197
198 2021-09-26 01:07:02 +0100  Tim-Philipp Müller <tim@centricular.com>
199
200         * meson.build:
201           Back to development
202           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
203
204 === release 1.19.2 ===
205
206 2021-09-23 01:35:54 +0100  Tim-Philipp Müller <tim@centricular.com>
207
208         * ChangeLog:
209         * NEWS:
210         * RELEASE:
211         * gstreamer-vaapi.doap:
212         * meson.build:
213           Release 1.19.2
214
215 2021-08-26 15:06:53 +0800  Zhang Yuankun <yuankunx.zhang@intel.com>
216
217         * gst/vaapi/gstvaapidecode.c:
218           vaapi: decoder: modify the condition to judge whether dma buffer is supported
219           It seems "GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)" will
220           return false even if this platform support the mem_type dma buffer.
221           And media-driver will return GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
222           on Gen12(such as TGL).
223           Without this patch, The command such as:
224           gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw, format=I420 ! \
225           x264enc ! h264parse ! vaapih264dec ! video/x-raw\(memory:DMABuf\) ! fakesink
226           will return not-negotiated.
227           Signed-off-by: Zhang Yuankun <yuankunx.zhang@intel.com>
228           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/437>
229
230 2021-05-14 12:04:04 +0800  He Junyan <junyan.he@intel.com>
231
232         * gst-libs/gst/vaapi/gstvaapidisplay.c:
233         * gst/vaapi/gstvaapivideocontext.c:
234           Display: Add a property to export the VA display handle.
235           Just like what we do in VA plugins. The display can be seen as a
236           generic gst object and we can add a property to get the internal
237           VA handle.
238           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
239
240 2021-05-14 11:49:01 +0800  He Junyan <junyan.he@intel.com>
241
242         * gst/vaapi/gstvaapivideomemory.c:
243         * gst/vaapi/gstvaapivideomemory.h:
244           plugins: video memory: Add a GST_MAP_VAAPI flag to peek the surface.
245           Just like what we do in VA plugins, the GST_MAP_VAAPI can directly
246           peek the surface of the VA buffers. The old flag 0 just peek the
247           surface proxy, which may not be convenient for the users who do not
248           want to include our headers.
249           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
250
251 2021-07-09 11:01:14 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
252
253         * gst/vaapi/gstvaapi.c:
254         * gst/vaapi/gstvaapidecode.c:
255           Revert "vaapi: Demote vaapidecodebin to rank NONE."
256           This reverts commit 7a25c5d4ec95aefeca6515ac023b23c5dd330194.
257           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/436>
258
259 2021-06-23 16:23:00 +0800  He Junyan <junyan.he@intel.com>
260
261         * gst/vaapi/gstvaapiencode.c:
262           plugins: encode: fix a deadlock because of _drain()
263           We call gst_vaapiencode_drain() in gst_vaapiencode_change_state(),
264           whose context does not hold the stream lock of the encoder. The
265           current gst_vaapiencode_drain inside unlock/lock pair adds a extra
266           lock count to the stream lock of encoder and causes hang later.
267           We just remove the gst_vaapiencode_drain() and expand its logic
268           correctly according to the lock/unlock context.
269           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/433>
270
271 2021-06-29 15:09:13 +0800  He Junyan <junyan.he@intel.com>
272
273         * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
274           libs: decoder: av1: Clean the film_grain_info field.
275           We need to clean all film_grain_info fields when the film grain
276           feature is not enabled. It may have random data because the picture
277           parameter buffer is not cleaned.
278           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/434>
279
280 2021-06-03 22:12:04 +0800  He Junyan <junyan.he@intel.com>
281
282         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
283         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
284           libs: encoder: mpeg2: Add highP level for 1080@50p/60p.
285           The MPEG2 spec has amendment 3 to introduce a new level highP, which
286           is used for 1080@50p/60p streams. We need to add this level to avoid
287           encoding failure because of the level check.
288           Fix: #306
289           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/432>
290
291 2021-05-11 16:59:07 +0800  He Junyan <junyan.he@intel.com>
292
293         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
294           Decoder: H264: Add the support for frame packing arrangement SEI message.
295           Frame packing arrangement SEI message is an alternative simple stereo 3D
296           manner for AVC. We need to recognize that SEI message and report the correct
297           3D caps.
298           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/420>
299
300 2021-05-22 18:54:49 +0100  Tim-Philipp Müller <tim@centricular.com>
301
302         * gst-libs/gst/vaapi/gstvaapifilter.c:
303         * meson.build:
304           Use g_memdup2() where available and add fallback for older GLib versions
305           Alloc size is based on existing allocations and struct sizes.
306           g_memdup() is deprecated since GLib 2.68 and we want to avoid
307           deprecation warnings with recent versions of GLib.
308           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/431>
309
310 2021-06-01 15:29:16 +0100  Tim-Philipp Müller <tim@centricular.com>
311
312         * meson.build:
313           Back to development
314
315 === release 1.19.1 ===
316
317 2021-06-01 00:16:31 +0100  Tim-Philipp Müller <tim@centricular.com>
318
319         * ChangeLog:
320         * NEWS:
321         * RELEASE:
322         * gstreamer-vaapi.doap:
323         * meson.build:
324           Release 1.19.1
325
326 2021-04-23 19:01:54 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
327
328         * gst/vaapi/gstvaapi.c:
329         * gst/vaapi/gstvaapidecode.c:
330           vaapi: Demote vaapidecodebin to rank NONE.
331           One of the main reasons of vaapidecodebin was because it mitigated the
332           possible surface exhaustion. But that problem is currently
333           solved. Nowadays, vaapidecodebin brings more problems than it
334           solves. Thus this patch demotes vaapidecodebin to NONE rank while
335           bumping PRIMARY + 1 the most common decoders.
336           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/426>
337
338 2021-05-20 10:28:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
339
340         * gst/vaapi/gstvaapi.c:
341         * gst/vaapi/gstvaapioverlay.c:
342           plugins: Demote rank of vaapipostproc and vaapioverlay.
343           Since almost all video filters have rank NONE, these both elements
344           should be NONE too.
345           This is useful for autovideoconvert and other bins, and users might
346           force to use these by setting the environment variable
347           GST_PLUGIN_FEATURE_RANK.
348           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/429>
349
350 2021-04-21 10:55:45 +0200  François Laignel <fengalin@free.fr>
351
352         * tests/check/elements/vaapioverlay.c:
353           Use gst_element_request_pad_simple...
354           Instead of the deprecated gst_element_get_request_pad.
355           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/425>
356
357 2021-04-23 11:02:05 +0800  Zhang yuankun <yuankunx.zhang@intel.com>
358
359         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
360           libs: encoder: VP9: fix > 4k encode fail issue
361           The VP9 spec defines the MAX_TILE_WIDTH_B64(64), which is the maximum
362           width of a tile in units of superblocks. So the max width of one tile
363           should not be larger than 64x64=4096. When the width exceeds 4k, we
364           need to split it into multiple tiles in columns. The current vp9 encoder
365           does not handle this correctly.
366           The command such as:
367           gst-launch-1.0 videotestsrc ! video/x-raw,width=7680,height=4320 ! \
368           vaapivp9enc ! fakesink
369           will crash.
370           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/424>
371
372 2021-04-02 15:43:45 +0800  Haihao Xiang <haihao.xiang@intel.com>
373
374         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
375           libs: display: drm: don't fallback to default device if explicitly specified device can't load/init
376           Otherwise user will be misled that the specified device is using
377           This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/305
378           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/422>
379
380 2021-03-22 13:41:13 +0800  He Junyan <junyan.he@intel.com>
381
382         * gst-libs/gst/vaapi/gstvaapiencoder.c:
383         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
384         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
385           decoder: H265: Enable cu_qp_delta_enabled_flag when ROI
386           If ROI is enabled, the CUs within the ROI region may have different
387           QP from the other part of the picture. This needs us to enable the
388           cu_qp_delta_enabled_flag even in the CQP mode.
389           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/419>
390
391 2021-03-19 17:42:36 +1100  Matthew Waters <matthew@centricular.com>
392
393         * gst-libs/gst/vaapi/gstvaapicontext.c:
394         * gst-libs/gst/vaapi/gstvaapicontext.h:
395         * gst-libs/gst/vaapi/gstvaapiencoder.c:
396         * gst-libs/gst/vaapi/gstvaapifilter.c:
397         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
398         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
399         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
400         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
401         * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
402         * gst-libs/gst/vaapi/gstvaapivalue.c:
403         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
404         * gst/vaapi/gstvaapipluginbase.c:
405         * gst/vaapi/gstvaapisink.c:
406         * gst/vaapi/gstvaapisink.h:
407         * gst/vaapi/gstvaapivideocontext.c:
408         * gst/vaapi/gstvaapivideomemory.c:
409         * tests/internal/simple-decoder.c:
410           gst: don't use volatile to mean atomic
411           volatile is not sufficient to provide atomic guarantees and real atomics
412           should be used instead.  GCC 11 has started warning about using volatile
413           with atomic operations.
414           https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
415           Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
416           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/418>
417
418 2021-02-24 17:41:02 +0100  Paul Goulpié <paul.goulpie@ubicast.eu>
419
420         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
421           gstvaapiencoder_h264: add ENCODER_EXPOSURE on aud propertie
422           forgot during the following mainline commit: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/bc2f8fd19e924aa0e193708307326acd037691ce#
423           Signed-off-by: Paul Goulpié <paul.goulpie@ubicast.eu>
424
425 2021-02-04 15:05:55 +0800  He Junyan <junyan.he@intel.com>
426
427         * gst/vaapi/gstvaapipostproc.c:
428           plugins: postproc: Fix a problem of propose_allocation when passthrough.
429           We should query the downstream element to answer a precise allocation
430           query when the passthrough mode is enabled.
431           The current way still decides the allocation by the postproc itself. The
432           pipeline such as:
433           gst-launch-1.0 -v filesrc location=xxx.264 ! h264parse ! vaapih264dec ! \
434           vaapipostproc ! fakevideosink silent=false sync=true
435           will lose some info such as the GST_VIDEO_META_API_TYPE.
436           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/413>
437
438 2021-01-27 12:05:44 +0800  Haihao Xiang <haihao.xiang@intel.com>
439
440         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
441         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
442         * gst/vaapi/gstvaapivideocontext.c:
443           libs: display: drm: support gst.vaapi.app.Display context for drm backend
444           Attributes for drm backend:
445           - va-display : ponter of VADisplay
446           - drm-device-fd : the DRM device file descriptor
447           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
448
449 2021-01-13 14:43:20 +0800  Haihao Xiang <haihao.xiang@intel.com>
450
451         * docs/index.md:
452         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
453           libs: display: drm: allow user specify a drm device via an env variable
454           Currently the default drm device is always used on a system with
455           multiple drm devices. This patch allows user to specify the required
456           drm device via GST_VAAPI_DRM_DEVICE env variable
457           Example:
458           GST_VAAPI_DRM_DEVICE=/dev/dri/renderD129 gst-launch-1.0 videotestsrc !
459           vaapih264enc ! fakesink
460           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
461
462 2021-01-25 14:45:47 +0800  Haihao Xiang <haihao.xiang@intel.com>
463
464         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
465           libs: display: drm: fix set_device_path_from_fd
466           drmGetBusid() (GET_UNIQUE ioctl) won't return a valid bus id when
467           drmSetInterfaceVersion() (SET_VERSION ioctl) hasn't been called(see[1]),
468           so we can't get the right device path. Running test-display will get the
469           error below:
470           ** (test-display:18630): ERROR **: 10:26:00.434: could not create Gst/VA
471           display
472           Calling drmSetInterfaceVersion() before drmGetBusid() can't fix this
473           issue because a special permission is required for SET_VERSION ioctl.
474           This patch retrieves the device path from file descriptor via
475           g_file_read_link()
476           [1] https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_ioctl.c#L48-L104
477           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/412>
478
479 2021-01-20 10:42:09 +0100  Rafał Dzięgiel <rafostar.github@gmail.com>
480
481         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
482           glx: Iterate over FBConfig and select 8 bit color size
483           Texture upload mechanism used by gstreamer-vaapi relies on 8 bpc.
484           In latest mesa versions the first fbconfig might not be 8 bit, so iterate
485           over it to find the correct config with supported values.
486           This also adds 8 bit alpha size to the framebuffer configuration which is
487           required to get it working properly.
488           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/410>
489
490 2021-01-11 09:57:03 +0800  Ung, Teng En <teng.en.ung@intel.com>
491
492         * gst-libs/gst/vaapi/gstvaapiutils.c:
493           vaapipostproc: fix code style.
494           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
495
496 2020-12-21 05:42:00 +0000  Ung, Teng En <teng.en.ung@intel.com>
497
498         * gst-libs/gst/vaapi/gstvaapidisplay.c:
499         * gst-libs/gst/vaapi/gstvaapidisplay.h:
500         * gst-libs/gst/vaapi/gstvaapifilter.c:
501           vaapipostproc: Remove YUV to/from RGB color primary quirk since iHD driver has fixed in https://github.com/intel/media-driver/commit/a39fe9bc051a8c3efa8f35122a1585981ec7f816.
502           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
503
504 2020-12-21 05:36:29 +0000  Ung, Teng En <teng.en.ung@intel.com>
505
506         * gst-libs/gst/vaapi/gstvaapiutils.c:
507           vaapipostproc: Added gstreamer BT2020 color standard support.
508           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
509
510 2021-01-09 16:05:48 +0800  He Junyan <junyan.he@intel.com>
511
512         * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
513           decoder: AV1: Fix a static analysis problem of update_state().
514           No need to check the picture pointer after we have already dereferenced it.
515           Fix: #298
516           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/408>
517
518 2020-12-22 23:43:52 +0800  He Junyan <junyan.he@intel.com>
519
520         * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
521         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
522         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
523           libs: decoder: Add decode_with_surface_id for AV1 film_grain.
524           The AV1 film_graim feature needs two surfaces the same time for
525           decoding. One is for recon surface which will be used as reference
526           later, and the other one is for display. The GstVaapiPicture should
527           contain the surface for display, while the vaBeginPicture() need
528           the recon surface as the target.
529           We add a gst_vaapi_picture_decode_with_surface_id API to handle this
530           kind of requirement.
531           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
532
533 2020-08-27 21:46:41 +0800  He Junyan <junyan.he@intel.com>
534
535         * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
536         * gst-libs/gst/vaapi/gstvaapidecoder_av1.h:
537         * gst-libs/gst/vaapi/gstvaapiprofile.c:
538         * gst-libs/gst/vaapi/gstvaapiprofile.h:
539         * gst-libs/gst/vaapi/gstvaapiutils.c:
540         * gst-libs/gst/vaapi/meson.build:
541         * gst/vaapi/gstvaapidecode.c:
542         * meson.build:
543           libs: decoder: AV1: Add the av1 decoder support.
544           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
545
546 2020-08-27 21:39:35 +0800  He Junyan <junyan.he@intel.com>
547
548         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
549         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
550         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
551         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
552           libs: codecobject: Add number of elements when create codec object.
553           One slice data may need several slice parameter buffers at one time.
554           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
555
556 2020-12-12 10:30:41 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
557
558         * gst/vaapi/gstvaapidecodebin.c:
559         * gst/vaapi/gstvaapipluginbase.c:
560         * gst/vaapi/gstvaapivideobufferpool.c:
561           vaapi: use gst_clear_object instead of g_clear_object
562           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/406>
563
564 2020-12-08 13:34:35 +0800  He Junyan <junyan.he@intel.com>
565
566         * gst/vaapi/gstvaapiencode.c:
567           plugins: encode: unlock the stream lock before _flush()
568           The current encoder will hang when EOS comes. When we call the
569           gst_vaapi_encoder_encode_and_queue(), we should release the stream
570           lock, just like what we do in gst_vaapiencode_handle_frame().
571           The deadlock happens when: The input thread holding the stream lock
572           is using gst_vaapi_encoder_create_coded_buffer() to acquire a coded
573           buffer, while the output thread which holding the coded buffer resource
574           is acquiring the stream lock in _push_frame() to push the data to
575           down stream element.
576           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/404>
577
578 2020-12-09 00:04:33 +0800  He Junyan <junyan.he@intel.com>
579
580         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
581           libs: encoder: H264: Fix one assert in get_pending_reordered().
582           gst_vaapi_encoder_h264_get_pending_reordered() does not consider the
583           case for HIERARCHICAL_B mode. The pipeline:
584           gst-launch-1.0  videotestsrc num-buffers=48 ! vaapih264enc prediction-type=2 \
585           keyframe-period=32 ! fakesink
586           get a assert:
587           ERROR:../gst-libs/gst/vaapi/gstvaapiencoder_h264.c:1996:reflist1_init_hierarchical_b:
588           assertion failed: (count != 0)
589           The last few B frames are not fetched in correct order when HIERARCHICAL_B
590           is enabled.
591           We also fix a latent bug for normal mode. The g_queue_pop_tail() of B frames
592           make the last several frames encoded in reverse order. The NAL of last few
593           frames come in reverse order in the bit stream, though it can still output
594           the correct image.
595           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/405>
596
597 2020-06-25 16:25:21 +0800  He Junyan <junyan.he@hotmail.com>
598
599         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
600         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
601           libs: encoder: H265: Add screen content coding extensions support.
602           In scc mode, the I frame can ref to itself and it needs the L0 reference
603           list enabled. So we should set the I frame to P_SLICE type. We do not need
604           to change the ref_pic_list0/1 passed to VA driver, just need to enable the
605           VAEncPictureParameterBufferHEVC->pps_curr_pic_ref_enabled_flag to notify
606           the driver consider the current frame as reference. For bits conformance,
607           the NumRpsCurrTempList0 should be incremented by one to include the current
608           picture as the reference frame. We manually do it when packing the slice header.
609           Command line like:
610           gst-launch-1.0  videotestsrc num-buffers=10 ! \
611           capsfilter caps=video/x-raw,format=NV12, framerate=30/1,width=640,height=360 ! \
612           vaapih265enc ! capsfilter caps=video/x-h265,profile="{ (string)screen-extended-main }" ! \
613           filesink location=out.265
614           Can be used to specify that the encoder should use SCC profiles.
615           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/379>
616
617 2020-07-11 23:37:29 +0800  He Junyan <junyan.he@intel.com>
618
619         * gst/vaapi/gstvaapiencode_vp9.c:
620           plugin: encode: vp9: Implement the set_config().
621           We store the allowed profiles list to encoder in set_config().
622           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
623
624 2020-07-11 23:39:40 +0800  He Junyan <junyan.he@intel.com>
625
626         * gst/vaapi/gstvaapiencode_vp9.c:
627           plugin: encode: vp9: Add the profile into output caps.
628           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
629
630 2020-07-11 23:27:21 +0800  He Junyan <junyan.he@intel.com>
631
632         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
633           libs: encoder: vp9: no need to ensure_hw_profile.
634           Once we decide the profile and can get the valid entrypoint for
635           that profile, hw must already support this profile/entrypoint pair.
636           No need to check it again in set_context_info().
637           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
638
639 2020-07-11 23:22:55 +0800  He Junyan <junyan.he@intel.com>
640
641         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
642           libs: encoder: vp9: Improve the manner to decide the profile.
643           We should decide the VP9 encoder's profile based on the chroma and
644           depth of the input format, then make sure it is included in the
645           allowed list.
646           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
647
648 2020-07-11 23:17:02 +0800  He Junyan <junyan.he@intel.com>
649
650         * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
651         * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
652           libs: util: vpx: add get_chroma_format_idc for VP9
653           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
654
655 2020-07-11 23:09:59 +0800  He Junyan <junyan.he@intel.com>
656
657         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
658         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
659           libs: encoder: vp9: Add allowed_profiles.
660           We need the allowed_profiles to store the allowed profiles in down
661           stream's caps.
662           Command line like:
663           vaapivp9enc ! capsfilter caps=video/x-vp9,profile="{ (string)1, \
664           (string)3 }"
665           We need to store GST_VAAPI_PROFILE_VP9_1 and GST_VAAPI_PROFILE_VP9_3
666           in this list.
667           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
668
669 2020-11-30 18:00:30 +0800  He Junyan <junyan.he@intel.com>
670
671         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
672           libs: decoder: H265: Fix a typo in scc reference setting.
673           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/402>
674
675 2020-07-17 18:00:30 +0800  He Junyan <junyan.he@intel.com>
676
677         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
678         * gst-libs/gst/vaapi/gstvaapiprofile.c:
679         * gst-libs/gst/vaapi/gstvaapiprofile.h:
680         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
681         * gst-libs/gst/vaapi/video-format.c:
682         * gst/vaapi/gstvaapidecode.c:
683           libs: decoder: H265: Add MAIN_422_12 profile supporting.
684           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
685
686 2020-07-31 14:38:42 +0800  He Junyan <junyan.he@intel.com>
687
688         * gst-libs/gst/vaapi/gstvaapiimage.c:
689         * gst-libs/gst/vaapi/video-format.c:
690         * gst-libs/gst/vaapi/video-format.h:
691           video-format: Add Y212_LE format.
692           It can be used as HEVC YUV_4:2:2 12bits stream's decoder output, and
693           also can be used as the input format for encoding HEVC YUV_4:2:2 12bits
694           stream.
695           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
696
697 2020-07-30 23:21:06 +0800  He Junyan <junyan.he@intel.com>
698
699         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
700         * gst-libs/gst/vaapi/gstvaapiprofile.c:
701         * gst-libs/gst/vaapi/gstvaapiprofile.h:
702         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
703         * gst-libs/gst/vaapi/video-format.c:
704         * gst/vaapi/gstvaapidecode.c:
705           libs: decoder: H265: Add MAIN_444_12 profile supporting.
706           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
707
708 2020-07-30 23:13:10 +0800  He Junyan <junyan.he@intel.com>
709
710         * gst-libs/gst/vaapi/gstvaapiimage.c:
711         * gst-libs/gst/vaapi/video-format.c:
712         * gst-libs/gst/vaapi/video-format.h:
713           video-format: Add Y412_LE format.
714           It can be used as HEVC YUV_4:4:4 12bits stream's decoder output, and
715           also can be used as the input format for encoding HEVC YUV_4:4:4 12bits
716           stream.
717           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
718
719 2020-09-17 16:47:43 +0800  He Junyan <junyan.he@intel.com>
720
721         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
722           libs: decoder: h265: fill missing predictor_palette_size field.
723           The predictor_palette_size of VAPictureParameterBufferHEVCScc is
724           forgotten and need to be filled when streams have palettes.
725           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/396>
726
727 2020-09-17 15:35:11 +0800  He Junyan <junyan.he@intel.com>
728
729         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
730           libs: utils: h265: Use get_profile_from_sps to get profile.
731           We now use gst_h265_get_profile_from_sps() to replace the old way
732           of gst_h265_profile_tier_level_get_profile() to get more precise
733           profile. The new function consider the unstandard cases and give
734           a more suitable profile decision.
735           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/395>
736
737 2020-10-19 13:46:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
738
739         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
740           libs: decoder: vp9: 0xff segment pred probs if no temporal update
741           According to the spec (6.2.11 Segmentation params syntax)
742           segmentation_pred_prob[i] ast to be 0xff if not temporal_update.
743           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
744
745 2020-10-19 13:42:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
746
747         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
748           libs: decoder: vp9: avoid reference rewriting
749           The removed code set all the reference frames to the current frame it is a key
750           one, but later, all the reference frames were rewritten with the decoded picture
751           buffers or VA_INVALID_SURFACE if they were not available.
752           Basically, all this time the first reference frame assignment has been ignored,
753           and it's not described by the spec, and this patch removes that code.
754           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
755
756 2020-09-20 09:56:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
757
758         * gst/vaapi/gstvaapidecode.c:
759           decoder: don't reply src caps query with allowed if pad is fixed
760           If the pad is already fixed the caps query have to be reply with the
761           current fixed caps. Otherwise the query has to be replied with the
762           autogeneratd src caps.
763           This path fix this by falling back to the normal caps query processing
764           if the pad is already fixed. Otherwise it will fetch the allowed src
765           pad caps.
766           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/397>
767
768 2020-09-15 00:11:30 +0800  He Junyan <junyan.he@intel.com>
769
770         * gst/vaapi/gstvaapidecode.c:
771           plugins: decode: fix a DMA caps typo in ensure_allowed_srcpad_caps.
772           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/392>
773
774 2020-09-01 09:31:33 +0200  Marc Leeman <m.leeman@televic.com>
775
776         * gst/vaapi/gstvaapisink.c:
777           vaapisink: when updating the caps, reset rotation
778           When an element upstream changes settings (e.g. crop), new caps are sent
779           to vaapisink. When vaapisink was rotating the image, it needs to
780           re-evaluate if the sink needs to rotate the image.
781           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/389>
782
783 2020-09-08 17:31:02 +0100  Tim-Philipp Müller <tim@centricular.com>
784
785         * .gitlab-ci.yml:
786           ci: include template from gst-ci master branch again
787
788 2020-09-08 16:59:07 +0100  Tim-Philipp Müller <tim@centricular.com>
789
790         * meson.build:
791           Back to development
792
793 === release 1.18.0 ===
794
795 2020-09-08 00:09:51 +0100  Tim-Philipp Müller <tim@centricular.com>
796
797         * .gitlab-ci.yml:
798         * ChangeLog:
799         * NEWS:
800         * RELEASE:
801         * gstreamer-vaapi.doap:
802         * meson.build:
803           Release 1.18.0
804
805 2020-09-07 12:15:43 +0300  Sebastian Dröge <sebastian@centricular.com>
806
807         * gst-libs/gst/vaapi/gstvaapifilter.c:
808           Update for gst_video_transfer_function_*() function renaming
809           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/391>
810
811 2020-08-22 12:53:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
812
813         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
814         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
815           Revert "libs: decoder: h264, h265: in context at least 16 reference surfaces"
816           This reverts commit b387081a4d77d3da202da72686ab40fb9c83ee1e as discussed in
817           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/b387081a4d77d3da202da72686ab40fb9c83ee1e
818
819 === release 1.17.90 ===
820
821 2020-08-20 16:16:25 +0100  Tim-Philipp Müller <tim@centricular.com>
822
823         * ChangeLog:
824         * NEWS:
825         * RELEASE:
826         * gstreamer-vaapi.doap:
827         * meson.build:
828           Release 1.17.90
829
830 2020-08-17 11:43:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
831
832         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
833           libs: surface: egl: guard memory type
834           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/384>
835
836 2020-08-17 19:26:43 +0800  He Junyan <junyan.he@intel.com>
837
838         * gst/vaapi/gstvaapidecode.c:
839           plugin: decode: Fix two mem leaks because of caps.
840           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/385>
841
842 2020-08-16 01:57:15 +0800  He Junyan <junyan.he@intel.com>
843
844         * gst/vaapi/gstvaapivideomemory.c:
845           plugin: allocator: No need to ref allocator when create mem.
846           We do not need to ref the allocator when creating GstVaapiVideoMemory
847           kind memory, and then release it in _free(). The framework already
848           does it for us.
849           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/383>
850
851 2020-08-14 10:42:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
852
853         * gst/vaapi/gstvaapiencode_h264.c:
854           vaapiencode: h264: ignore level without breaking negotiation
855           Since commit 9f627ef2 if the user sets level in the encoder src caps
856           the caps negotiation is rejected.
857           But since the same commit the same encoder set the autoconfigured
858           level in caps. Some change in the base class might fixed the operation
859           order so now the caps are set and later negotiated.
860           This patch removes the level check.
861           Fixes: #273
862           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/382>
863
864 2019-07-09 19:17:48 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
865
866         * gst-libs/gst/vaapi/egl_vtable.h:
867         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
868         * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
869         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
870           libs: egl: surface: export EGLImage as DMABuf if GEM not supported
871           This code path is used when frames are rendered as textures through
872           GstVideoGLTextureUploadMeta with EGL, mainly under Wayland.
873           Originally the EGLImage was exported as GEM, which was handled by
874           Intel drivers, but Gallium ones cannot create VA surfaces from
875           GEM buffers, only DMABuf.
876           This patch checks the memory types supported by VA driver to choose
877           the render the EGLImages from GEM or DMABuf, because GEM is still
878           better where supported.
879           DMABuf is well handled either by intel-vaapi-driver and gallium.
880           Fixes: #137
881           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
882
883 2020-05-26 16:18:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
884
885         * gst-libs/gst/vaapi/gstvaapifilter.c:
886         * gst-libs/gst/vaapi/gstvaapifilter.h:
887           libs: filter: gst_vaapi_filter_get_memory_types()
888           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
889
890 2020-08-12 18:48:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
891
892         * gst/vaapi/gstvaapipluginbase.c:
893         * gst/vaapi/gstvaapipluginbase.h:
894           plugins: remove gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps()
895           Since nobody uses it, just remove it.
896           Thus extract_allowed_surface_formats() is refactored to attend only
897           gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps().
898           Now a surface is created when the image chorma is different from the
899           previous one. And if the driver has the quirk, it outputs all the
900           supported image formats without trying them.
901           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
902
903 2020-08-12 17:50:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
904
905         * gst/vaapi/gstvaapidecode.c:
906           vaapidecode: expose raw src caps with same chroma
907           The try-and-error approach for getting the possible image formats from
908           a surface has brought several problems in different drivers, from
909           crashes to drop in performance.
910           Instead of that we change the algorithm to determine the possible
911           image formats based in the surface chroma: only those available image
912           formats with same chroma are exposed as possible raw caps.
913           Do this is important to avoid performance degrading in raw sinks
914           which doesn't handle NV12 but it does YV12 or I420.
915           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
916
917 2020-07-10 17:05:38 +0800  He Junyan <junyan.he@intel.com>
918
919         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
920           libs: util: h265: use common parser API to get vaapi profiles.
921           We can reuse H265 parser's API to recognize the correct profile and
922           then just need to convert them to VAAPI profiles.
923           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/356>
924
925 2020-08-07 16:41:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
926
927         * gst-libs/gst/vaapi/meson.build:
928         * gst/vaapi/meson.build:
929         * meson.build:
930           build: update for gl pkg-config file split
931           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/378>
932
933 2020-08-06 12:51:27 +0800  Xu Guangxin <guangxin.xu@intel.com>
934
935         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
936           h264dec: mark remaining frames as unreference before exec_picture_refs_modification
937           8.2.4.2 required this. Some clips will crash if we do not fill the reference list like this.
938           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/376>
939
940 2020-07-31 18:22:46 +0800  He Junyan <junyan.he@intel.com>
941
942         * gst-libs/gst/vaapi/gstvaapiencoder.c:
943         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
944         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
945           libs: encoder: H265: Enable Main 12 profile support.
946           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
947
948 2020-07-31 19:17:39 +0800  He Junyan <junyan.he@intel.com>
949
950         * gst-libs/gst/vaapi/video-format.c:
951           video format: Fix P012_LE's chrome type typo.
952           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
953
954 2020-08-04 21:15:01 +0300  Jordan Petridis <jordan@centricular.com>
955
956         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
957           gstvaapiminiobject.c:   fix clang 10 warnings
958           the typesystem checks in g_atomic_pointer_compare_and_exchange
959           seem to trigger some false positives with clang 10
960           similar to gstreamer!584
961           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/377>
962
963 2020-07-31 11:07:23 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
964
965         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
966           libs: window: wayland: destroy all wayland buffers during finalize
967           Some buffers and the associated FrameState state may still be pending at
968           that point. If the wayland connection is shared, then messages for the
969           buffer may still arrive. However, the associated event queue is already
970           deleted. So the result is a crash.
971           With a private connection the associated memory is leaked instead.
972           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
973
974 2020-06-18 20:25:18 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
975
976         * tests/examples/test-vaapicontext.c:
977           test: vaapicontext: fix draw callback with multiple videos
978           The callback is called for both windows. So make sure that
979           gst_video_overlay_set_render_rectangle() is called for the correct one.
980           Otherwise, the left video will be randomly moved behind the right video.
981           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
982
983 2020-06-19 09:23:52 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
984
985         * tests/examples/meson.build:
986         * tests/examples/test-vaapicontext.c:
987           test: vaapicontext: support wayland display
988           On Wayland, The whole gtk window is one Wayland surface. So
989           gtk_widget_get_window() must be called on the top-level widget.
990           For any other widget the following gdk_window_ensure_native() may create a
991           new top-level Wayland surface that is never visible.
992           As a result, the coordinates passed to
993           gst_video_overlay_set_render_rectangle() must be relativ to the top-level
994           window. Otherwise the video is placed incorrectly.
995           Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
996           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
997
998 2017-12-01 20:18:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
999
1000         * tests/examples/test-vaapicontext.c:
1001           test: vaapicontext: use playbin to test files
1002           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1003
1004 2017-11-29 11:11:39 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1005
1006         * tests/examples/test-vaapicontext.c:
1007           test: vaapicontext: add PLAY and NULL buttons
1008           They only appear when only one sink is instanciated and their purpose
1009           is to test the NULL-PLAY use case in context sharing.
1010           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1011
1012 2020-06-19 21:26:52 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1013
1014         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1015           libs: wayland: update the opaque region in set_render_rect
1016           gst_vaapi_window_wayland_set_render_rect() may be called from an arbitrary
1017           thread. That thread may be responsible for making the window visible.
1018           At that point another thread will block in gst_vaapi_window_wayland_sync()
1019           because the frame callback will not be called until the window is visible.
1020           If that happens, then acquiring the display lock in
1021           gst_vaapi_window_wayland_set_render_rect() would result in a deadlock.
1022           Cache the size of the opaque rectangle separately and create the opaque
1023           region right before applying it to the surface.
1024           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1025
1026 2020-06-19 09:21:16 +0200  Hyunjun Ko <zzoon@igalia.com>
1027
1028         * gst-libs/gst/vaapi/gstvaapiwindow.c:
1029         * gst-libs/gst/vaapi/gstvaapiwindow.h:
1030         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1031         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1032         * gst/vaapi/gstvaapisink.c:
1033           libs: window: implements gst_vaapi_window_set_render_rectangle
1034           Implements new vmethod gst_vaapi_window_set_render_rectangle,
1035           which is doing set the information of the rendered rectangle set by
1036           user.
1037           This is necessary on wayland at least to get exact information of
1038           external surface.
1039           And vaapisink calls this when gst_video_overlay_set_render_rectangle is
1040           called.
1041           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1042
1043 2017-11-08 13:23:39 +0900  Hyunjun Ko <zzoon@igalia.com>
1044
1045         * gst/vaapi/gstvaapisink.c:
1046           vaapisink: implements gst_vaapisink_wayland_create_window_from_handle()
1047           Implements gst_vaapisink_wayland_create_window_from_handle() to support
1048           using external wl_surface.
1049           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1050
1051 2020-06-19 09:11:20 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1052
1053         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1054         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1055         * gst-libs/gst/vaapi/gstvaapiwindow.c:
1056         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1057         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
1058           libs: wayland: implement video overlay API
1059           The Wayland sub-surfaces API is used to embed the video into an application
1060           window.
1061           See Appendix A. Wayland Protocol Specification as the following.
1062           """
1063           The aim of sub-surfaces is to offload some of the compositing work
1064           within a window from clients to the compositor. A prime example is
1065           a video player with decorations and video in separate wl_surface
1066           objects.
1067           This should allow the compositor to pass YUV video buffer processing to
1068           dedicated overlay hardware when possible.
1069           """
1070           Added new method gst_vaapi_window_wayland_new_with_surface()
1071           Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1072           Zhao Halley <halley.zhao@intel.com>
1073           changzhix.wei@intel.com
1074           Hyunjun Ko <zzoon@igalia.com>
1075           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1076
1077 2020-06-19 21:54:52 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1078
1079         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1080           doc: libs: wayland: add 'transfer full' to the returnvalye of gst_vaapi_window_wayland_new
1081           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1082
1083 2020-06-11 08:25:57 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1084
1085         * gst-libs/gst/vaapi/gstvaapidisplay.c:
1086           libs: display: always call close_display()
1087           All close_display() have their own checks for use_foreign_display and only
1088           destroy locally created objects in that case.
1089           Without this objects other than the actuall foreign display itself are
1090           leaked.
1091           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
1092
1093 2020-07-30 23:37:10 +0800  He Junyan <junyan.he@intel.com>
1094
1095         * gst-libs/gst/vaapi/video-format.h:
1096           video-format: Add the missing P012_LE into GST_VAAPI_FORMATS_ALL.
1097           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/373>
1098
1099 2020-05-25 17:02:26 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1100
1101         * gst/vaapi/gstvaapidecode.c:
1102         * gst/vaapi/gstvaapipluginutil.c:
1103         * gst/vaapi/gstvaapipluginutil.h:
1104           plugins: add gst_vaapi_caps_set_width_and_height_range()
1105           This utility function is called internally by
1106           gst_vaapi_build_caps_from_formats() and can be used outside.
1107           This function sets frame size and framerates ranges.
1108           Also gst_vaapi_build_caps_from_formats() is simplified.
1109           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/374>
1110
1111 2020-07-31 15:27:38 +0800  He Junyan <junyan.he@intel.com>
1112
1113         * gst-libs/gst/vaapi/gstvaapidecoder.c:
1114           libs: decoder: fix a crash issue when get_surface_formats.
1115           Some context does not report any valid format that we can support.
1116           For example, the HEVC 444 12 bits decoder context, all the formats
1117           it reports is not supported now, which make the formats list a NULL
1118           array. We should check that pointer before we use it.
1119           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/372>
1120
1121 2020-07-03 19:28:28 +0800  He Junyan <junyan.he@intel.com>
1122
1123         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1124           libs: encoder: h265: choose the profile based on allowed list.
1125           We can decide the profile in ensure_profile(), based on allowed list
1126           passed by the encode. We also need to check whether the entrypoint is
1127           available. Once it is decided, no need to check the hw entrypoint
1128           them again.
1129           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1130
1131 2020-07-29 22:05:41 +0800  He Junyan <junyan.he@intel.com>
1132
1133         * gst/vaapi/gstvaapiencode_h265.c:
1134           plugins: encode: h265: set all allowed profiles to encoder.
1135           We should collect all allowed profiles and pass them to the inside
1136           encoder, rather than just calculate the max profile idc.
1137           The allowed profiles should also be supported by the HW.
1138           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1139
1140 2020-07-29 22:32:55 +0800  He Junyan <junyan.he@intel.com>
1141
1142         * gst-libs/gst/vaapi/gstvaapidisplay.c:
1143         * gst-libs/gst/vaapi/gstvaapidisplay.h:
1144           libs: display: Add a helper function to get profiles by codec.
1145           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1146
1147 2020-07-03 01:28:28 +0800  He Junyan <junyan.he@intel.com>
1148
1149         * gst/vaapi/gstvaapiencode_h265.c:
1150           plugins: encode: h265: collect all allowed profiles to encoder.
1151           We should collect all allowed profiles and pass them to the inside
1152           encoder, rather than just calculate the max profile idc.
1153           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1154
1155 2020-07-03 00:53:31 +0800  He Junyan <junyan.he@intel.com>
1156
1157         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1158         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1159         * gst/vaapi/gstvaapiencode_h265.c:
1160           libs: encoder: h265: modify set_max_profile to set_allowed_profiles.
1161           In h265, bigger profile idc may not be compatible with the small profile
1162           idc. And more important, there are multi profiles with the same profile
1163           idc. Such as main-422-10, main-444 and main-444-10, they all have profile
1164           idc 4.
1165           So recording the max profile idc is not enough, the encoder needs to know
1166           all allowed profiles when deciding the real profile.
1167           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1168
1169 2020-07-02 23:33:31 +0800  He Junyan <junyan.he@intel.com>
1170
1171         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1172           libs: encoder: h265: No need to check hw_max_profile.
1173           In h265, higher profile idc number does not mean better compression
1174           performance and may be not compatible with the lower profile idc.
1175           So, it is not suitable to find the heighest idc for hw to ensure the
1176           compatibility.
1177           On the other side, when the entrypoint of the selected profile is valid,
1178           it means the hw really support this profile, no need to check it again.
1179           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1180
1181 2020-04-08 19:41:09 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1182
1183         * gst/vaapi/gstvaapipostproc.c:
1184           vaapipostproc: early return if fixate srcpad caps fails
1185           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/371>
1186
1187 2020-07-29 13:39:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1188
1189         * gst/vaapi/gstvaapipluginutil.c:
1190           vaapipluginutil: simplify gst_vaapi_find_preferred_caps_feature()
1191           Generalize the way how the preferred color format is chosen. Also
1192           use new GStreamre API as syntatic sugar.
1193           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/370>
1194
1195 2020-07-29 14:22:18 +0800  He Junyan <junyan.he@intel.com>
1196
1197         * gst-libs/gst/vaapi/gstvaapidecoder.c:
1198         * gst-libs/gst/vaapi/gstvaapiprofile.c:
1199         * gst-libs/gst/vaapi/gstvaapiprofile.h:
1200         * gst/vaapi/gstvaapidecode.c:
1201         * gst/vaapi/gstvaapiencode.c:
1202           libs: profile: Use get_codec_from_caps to get codec type.
1203           There is no need to get a profile from the caps and then convert
1204           that profile into codec type. We can get the codec type by caps's
1205           name easily.
1206           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1207
1208 2020-07-12 19:42:40 +0800  He Junyan <junyan.he@intel.com>
1209
1210         * gst-libs/gst/vaapi/gstvaapiprofile.c:
1211           libs: profile: h265: Fix return value of from_codec_data_h265.
1212           profile_from_codec_data_h265() returns wrong GstVaapiProfile for h265.
1213           The codec data of caps contain the profile IDC, but the mapping between
1214           profile IDC and GstVaapiProfile is wrong.
1215           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1216
1217 2020-07-07 00:46:23 +0800  He Junyan <junyan.he@intel.com>
1218
1219         * gst/vaapi/gstvaapiencode_vp9.c:
1220           plugins: encode: vp9: Implement vp9's allowed_profiles() func.
1221           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1222
1223 2020-07-08 16:30:17 +0800  He Junyan <junyan.he@intel.com>
1224
1225         * gst/vaapi/gstvaapiencode_h264.c:
1226         * gst/vaapi/gstvaapiencode_h265.c:
1227         * gst/vaapi/gstvaapipluginutil.c:
1228         * gst/vaapi/gstvaapipluginutil.h:
1229           plugin: util: rename h26x_encoder_get_profiles_from_caps().
1230           Change its name to encoder_get_profiles_from_caps(). Other codecs such
1231           as VP9 also needs to use this function.
1232           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1233
1234 2020-07-06 23:35:12 +0800  He Junyan <junyan.he@intel.com>
1235
1236         * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
1237         * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
1238         * gst-libs/gst/vaapi/meson.build:
1239           libs: utils: vpx: Add utils vpx to handle VP8/9 misc things.
1240           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1241
1242 2020-07-29 10:17:31 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1243
1244         * gst-libs/gst/vaapi/gstvaapicontext.c:
1245         * gst-libs/gst/vaapi/gstvaapidisplay.c:
1246         * gst-libs/gst/vaapi/gstvaapidisplay.h:
1247           libs: display, context: handle broken jpeg decoder for i965 driver
1248           JPEG decoding in i965 driver is pretty much broken, and the driver is
1249           deprecated which mean authors only accept trivial fixes.
1250           Surfaces for JPEG decoder context in i965 only handle IMC3[1] color
1251           format which is not a common format in GStreamer. It can export it to
1252           I420 at mapping raw bytes, but DMABuf exporting is problematic.
1253           This patch artificially adds NV12 to the context format list when it's
1254           JPEG decoder for i965 and force the usage of old VA-API for surface
1255           creation without specifying color format. Also it artificially
1256           disables the DMABuf announcement.
1257           1. https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#420-formats-16-bits-per-pixel
1258           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1259
1260 2020-07-29 12:02:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1261
1262         * gst-libs/gst/vaapi/gstvaapicontext.c:
1263           libs: context: change function to internal code style
1264           Instead of a getter the function `get_preferred_format()` to
1265           `ensure_preferred_format()` which aligns to the code style.
1266           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1267
1268 2020-07-28 20:00:09 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1269
1270         * gst/vaapi/gstvaapidecode.c:
1271           vaapidecode: always merge profile caps in sink caps
1272           This commit fixes a regression of e962069d, where if the profile's
1273           caps doesn't have a caps profile, it's ignored.
1274           This patch add a conditional jump if the caps doesn't have a profile
1275           field to merge it.
1276           Fixes: #271
1277           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/368>
1278
1279 2020-07-28 12:22:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1280
1281         * meson.build:
1282           build: request libdrm >= 2.4.98 and fallback
1283           Fixes: #270
1284           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/367>
1285
1286 2020-05-18 17:32:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1287
1288         * gst/vaapi/gstvaapidecode.c:
1289           vaapidecode: dma caps only use reported color format
1290           This fix pipelines without vaapipostproc after vaapi decoder, such as
1291           gst-launch-1.0 filesrc location=~/file.mp4 ! parsebin ! vaapih264dec ! glimagesink
1292           On EGL platforms, so DMABuf is used.
1293           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1294
1295 2020-02-07 17:10:45 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1296
1297         * gst/vaapi/gstvaapidecode.c:
1298           vaapidecode: use allowed srcpad caps for caps query
1299           Instead of using just the template caps use the current allowed
1300           srcpad caps, which is created considering the current decoder
1301           context.
1302           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1303
1304 2020-01-22 17:41:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1305
1306         * gst-libs/gst/vaapi/gstvaapidecoder.c:
1307         * gst-libs/gst/vaapi/gstvaapidecoder.h:
1308         * gst/vaapi/gstvaapidecode.c:
1309           vaapidecode: build allowed srcpad caps from va context
1310           Instead of generating allowed srcpad caps with generic information,
1311           now it takes the size an formats limits from the decoder's context.
1312           This is possible since srcpad caps are generated after the internal
1313           decoder is created.
1314           The patch replaces gst_vaapi_decoder_get_surface_formats() with
1315           gst_vaapi_decoder_get_suface_attributes().
1316           From these attributes, formats are only used for VASurface memory
1317           caps feature. For system memory caps feature, the old
1318           gst_vaapi_plugin_get_allowed_srcpad_caps() is still used, since
1319           i965 jpeg decoder cannot deliver mappable format for gstreamer.
1320           And for the other caps features (dmabuf and texture upload) the
1321           same static list are used.
1322           This patch also adds DMABuf caps feature only if the context
1323           supports that memory type. Nonetheless, we keep the pre-defined
1324           formats since they are the subset of common derive formats formats
1325           supported either by amd/gallium and both intel drivers, since,
1326           when exporting the fd through vaAcquireBufferHandle()/
1327           vaReleaseBufferHandle(), the formats of the derivable image cannot
1328           be retriebable from the driver. Later we'll use the attribute
1329           formats for the DMABuf feature too, when the code be ported to
1330           vaExportSurfaceHandle().
1331           Finally, the allowed srcpad caps are removed if the internal decoder
1332           is destroyed, since context attribues will change.
1333           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1334
1335 2020-02-07 16:50:52 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1336
1337         * gst/vaapi/gstvaapidecode.c:
1338           vaapidecode: reorder src caps template
1339           Since negotiation depends on caps order, first is VA, then DMABuf,
1340           later GLUploadTexture (deprecated) and finally raw.
1341           Also, for decoders, the possible available color formats for DMABuf
1342           is extended to all the possible VA color formats.
1343           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1344
1345 2020-07-22 10:01:41 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1346
1347         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1348           libs: window: wayland: use dmabuf protocol if available
1349           Currently vaGetSurfaceBufferWl() is used to create wayland buffers.
1350           Unfortunately this is not implemented by the 'media-driver' and Mesa VA-API
1351           drivers. And the implementation provided by 'intel-vaapi-driver' is not
1352           compatible with a Wayland server that uses the iris Mesa driver.
1353           So create the Wayland buffers manually with the zwp_linux_dmabuf_v1 wayland
1354           protocol. Formats and modifiers supported by the Wayland server are taken
1355           into account. If necessary, VPP is enabled to convert the buffer into a
1356           supported format.
1357           Fall back to vaGetSurfaceBufferWl() if creating buffers via dambuf protocol
1358           fails.
1359           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1360
1361 2020-07-21 10:03:19 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1362
1363         * gst-libs/gst/vaapi/gstvaapiwindow.c:
1364         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1365           libs: window: allow choosing the format for the vpp pool
1366           Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1367           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1368
1369 2020-06-28 17:42:29 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1370
1371         * gst-libs/gst/vaapi/video-format.c:
1372         * gst-libs/gst/vaapi/video-format.h:
1373           video-format: add DRM formats to the mapping table
1374           This will be needed for the DMABuf protocol support to map DRM formats to
1375           vaapi and gstreamer formats.
1376           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1377
1378 2020-07-22 09:36:18 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1379
1380         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1381         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1382         * gst-libs/gst/vaapi/meson.build:
1383           libs: display: wayland: add basic dmabuf protocol support
1384           This is just the basic infrastructure. Hook up the interface and collect
1385           all supported formats.
1386           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1387
1388 2020-07-06 09:59:40 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1389
1390         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1391           libs: window: wayland: wait for configure before committing the first buffer
1392           Committing the first buffer for a surface must not be done before
1393           ack_configure() has been sent for the xdg_surface.
1394           With weston, the commit will fail with "error 3: xdg_surface has never been
1395           configured".
1396           Wait in gst_vaapi_window_wayland_show() until configure is done to avoid
1397           this.
1398           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1399
1400 2020-07-01 14:50:51 +0800  He Junyan <junyan.he@hotmail.com>
1401
1402         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1403           libs: encoder: h265: set no P frame automatically.
1404           The double reference lists may be required by drivers and there should
1405           be no P frames in the of stream. The old way of converting P frames to
1406           B frames is by setting `low-delay-b` property, which is unconvenient
1407           and has bad user experience, since most of the users do not know when
1408           to set this property, and if it is not set correctly, the encoding
1409           pipeline fails or even hangs on some platforms. VA driver now provides
1410           a attribute to query whether both reference lists must be un-NULL for
1411           a profile/entrypoint pair.
1412           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1413
1414 2020-04-15 16:26:55 +0800  He Junyan <junyan.he@hotmail.com>
1415
1416         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1417           libs: encoder: h265: Deprecate the low-delay-b property.
1418           In HEVC, P and B definitions are different from AVC: P frames have
1419           just one reference list and so 1 MV, while B frames have two reference
1420           lists and so 2 MVs. No matter B or P, ist reference lists can contain
1421           forward/backward reference. So P and B can both have bi-directions
1422           dependency, the difference is just their reference list
1423           number (i.e. MV number). This is different from the AVC.
1424           The *low delay b mode* refers to a special HEVC mode, in which the
1425           stream just contain I and B frames, without P frames, and all B frames
1426           only have forward direction dependencies (i.e. all inter frames have 2
1427           reference lists but no backward reference in both lists).  This is
1428           similar to AVC I/P mode, but changing the P to the forward dependent
1429           B.
1430           The `low-delay-b` property is now just used to simply convert all P
1431           frames to B frames when driver does not support P frames (so both
1432           reference lists have the same references frames). This is a little
1433           different from the meaning of low delay b mode (the two ref lists may
1434           have the different reference frames). And the driver now can report
1435           whether it supports P frames correctly, so there is no need to use
1436           this property and deprecate it.
1437           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1438
1439 2020-07-24 12:54:31 +0200  Marc Leeman <m.leeman@televic.com>
1440
1441         * gst/vaapi/gstvaapipostproc.c:
1442           postproc: reconfigure after changing cropping values
1443           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/365>
1444
1445 2020-07-09 13:49:29 +0800  He Junyan <junyan.he@intel.com>
1446
1447         * gst/vaapi/gstvaapiencode.h:
1448         * gst/vaapi/gstvaapiencode_h264.c:
1449         * gst/vaapi/gstvaapiencode_h265.c:
1450         * gst/vaapi/gstvaapiencode_jpeg.c:
1451         * gst/vaapi/gstvaapiencode_mpeg2.c:
1452         * gst/vaapi/gstvaapiencode_vp8.c:
1453         * gst/vaapi/gstvaapiencode_vp9.c:
1454           plugin: encode: Add static caps for template documentation.
1455           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1456
1457 2020-07-08 19:03:14 +0800  He Junyan <junyan.he@intel.com>
1458
1459         * gst/vaapi/gstvaapiencode_vp9.c:
1460           plugin: encode: vp9: Use the dynamically built src template caps.
1461           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1462
1463 2020-07-08 19:02:45 +0800  He Junyan <junyan.he@intel.com>
1464
1465         * gst/vaapi/gstvaapiencode_vp8.c:
1466           plugin: encode: vp8: Use the dynamically built src template caps.
1467           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1468
1469 2020-07-08 19:02:23 +0800  He Junyan <junyan.he@intel.com>
1470
1471         * gst/vaapi/gstvaapiencode_jpeg.c:
1472           plugin: encode: jpeg: Use the dynamically built src template caps.
1473           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1474
1475 2020-07-08 19:00:39 +0800  He Junyan <junyan.he@intel.com>
1476
1477         * gst/vaapi/gstvaapiencode_mpeg2.c:
1478           plugin: encode: mpeg2: Use the dynamically built src template caps.
1479           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1480
1481 2020-07-08 18:59:18 +0800  He Junyan <junyan.he@intel.com>
1482
1483         * gst/vaapi/gstvaapiencode_h265.c:
1484           plugin: encode: h265: Use the dynamically built src template caps.
1485           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1486
1487 2020-07-08 18:57:26 +0800  He Junyan <junyan.he@intel.com>
1488
1489         * gst/vaapi/gstvaapiencode_h264.c:
1490           plugin: encode: h264: Use the dynamically built src template caps.
1491           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1492
1493 2020-07-08 18:46:58 +0800  He Junyan <junyan.he@intel.com>
1494
1495         * gst/vaapi/gstvaapiencode.h:
1496         * gst/vaapi/gstvaapiencode_h264.c:
1497         * gst/vaapi/gstvaapiencode_h265.c:
1498         * gst/vaapi/gstvaapiencode_jpeg.c:
1499         * gst/vaapi/gstvaapiencode_mpeg2.c:
1500         * gst/vaapi/gstvaapiencode_vp8.c:
1501         * gst/vaapi/gstvaapiencode_vp9.c:
1502           plugin: encode: Store the coded caps in type's init data.
1503           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1504
1505 2020-07-08 18:30:00 +0800  He Junyan <junyan.he@intel.com>
1506
1507         * gst/vaapi/gstvaapipluginutil.c:
1508         * gst/vaapi/gstvaapipluginutil.h:
1509           plugin: util: add helper function build_template_coded_caps_by_codec()
1510           Like build_template_raw_caps_by_codec(), this function can detect and
1511           build the caps for specified codec based on the query of the profiles.
1512           The result is coded caps such as video/x-h265, video/x-h264. The result
1513           can be used as the template of encode's src or decode's sink.
1514           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1515
1516 2020-07-07 17:16:41 +0800  He Junyan <junyan.he@intel.com>
1517
1518         * gst/vaapi/gstvaapiencode.h:
1519         * gst/vaapi/gstvaapipluginutil.c:
1520         * gst/vaapi/gstvaapipluginutil.h:
1521           plugins: utils: rename build_template_caps_by_codec.
1522           Rename the function build_template_caps_by_codec() to the name of
1523           build_template_raw_caps_by_codec(). It can be used to collect all
1524           raw video formats for encode's sink and decode's src.
1525           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1526
1527 2020-07-21 20:14:57 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1528
1529         * gst/vaapi/gstvaapidecode.c:
1530         * gst/vaapi/gstvaapipluginutil.c:
1531         * gst/vaapi/gstvaapipluginutil.h:
1532           vaapidecode: merge common profiles before setting size range
1533           The synthetic profiles, such as H264 baseline, H265 intra, etc. are
1534           added at the end of processing all available VA profiles. This
1535           generated an non-optimal caps for negotiation, since the synthetic
1536           profiles don't have frame size ranges.
1537           This patch adds those possible synthetic profiles when the associated
1538           profile is processed, with its frame size ranges.
1539           Now allowed sink caps are simpler.
1540           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/363>
1541
1542 2020-07-21 22:05:08 +0800  He Junyan <junyan.he@intel.com>
1543
1544         * gst/vaapi/gstvaapipluginutil.c:
1545           plugin: util: Add the missing DMA buffer input in template caps.
1546           We pass the wrong parameter to gst_vaapi_build_caps_from_formats()
1547           and lose the DMA feature in caps.
1548           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/362>
1549
1550 2020-07-14 18:13:56 +0800  He Junyan <junyan.he@intel.com>
1551
1552         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1553         * gst-libs/gst/vaapi/gstvaapiprofile.c:
1554         * gst-libs/gst/vaapi/gstvaapiprofile.h:
1555         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1556         * gst-libs/gst/vaapi/video-format.c:
1557         * gst/vaapi/gstvaapidecode.c:
1558           libs: decoder: H265: Add MAIN_12 profile supporting.
1559           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1560
1561 2020-07-09 23:07:38 +0800  He Junyan <junyan.he@intel.com>
1562
1563         * gst-libs/gst/vaapi/gstvaapiimage.c:
1564         * gst-libs/gst/vaapi/video-format.c:
1565           video-format: Add P012_LE format.
1566           It can be used as HEVC YUV_4:2:0 12bits stream's decoder output, and
1567           also can be used as the input format for encoding HEVC YUV_4:2:0 12bits
1568           stream.
1569           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1570
1571 2020-07-17 00:45:53 +0800  He Junyan <junyan.he@intel.com>
1572
1573         * gst/vaapi/gstvaapidecode.c:
1574           plugin: decode: correct ensure_allowed_sinkpad_caps's caps.
1575           The decode allowed caps returned by ensure_allowed_sinkpad_caps()
1576           contains all profiles of the whole VAAPI, like:
1577           image/jpeg, width=(int)[ 0, 1638 4 ], height=(int)[ 0, 16384 ];
1578           video/mpeg, mpegversion=(int)2, profile=(string){ simple, main },
1579           width=(int)[ 0, 2048 ], height=(int)[ 0, 2048 ]; video/x-h264,
1580           profile=(string){ main, high, constrained-baseline }, width=(int)[ 0,
1581           4096 ], height=(int)[ 0, 4096 ]; video/x-h264, profile=(string){
1582           constrained-high, progressive-high, baseline }; video/x-h265,
1583           profile=(string){ main, main-intra }, width=(int)[ 0, 8192 ],
1584           height=(int)[ 0, 8192 ]; video/x-vp8, width=(int)[ 0, 4096 ],
1585           height=(int)[ 0, 4096 ]; video/x-wmv, wmvversion=(int)3,
1586           format=(string)WVC1, profile=(string)advanced, width=(int)[ 0, 3840 ],
1587           height=(int)[ 0, 3840 ]; video/x-wmv, wmvversion=(int)3,
1588           profile=(string){ simple, main }, width=(int)[ 0, 3840 ],
1589           height=(int)[ 0, 3840 ]
1590           Which is verbose and may have latent problems. It should only contains
1591           the profiles belong to its codec type. For example, h265 should only
1592           return:
1593           video/x-h265, profile=(string){ main, main-intra },
1594           width=(int)[ 0, 8192 ], height=(int)[ 0, 8192 ]
1595           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/361>
1596
1597 2020-07-13 11:06:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1598
1599         * gst/vaapi/gstvaapidecodebin.c:
1600           vaapidecodebin: don't force NV12 since P010_10LE is now possible
1601           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/360>
1602
1603 2020-07-12 20:34:31 +0800  He Junyan <junyan.he@intel.com>
1604
1605         * gst-libs/gst/vaapi/gstvaapiprofile.c:
1606           libs: profile: The VP9 profiles' name should be just "0,1,2,3"
1607           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/357>
1608
1609 2020-07-08 17:33:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1610
1611         * gst-libs/gst/vaapi/gstvaapidecoder.c:
1612         * gst-libs/gst/vaapi/gstvaapidecoder.h:
1613         * gst/vaapi/gstvaapidecode.c:
1614         * gst/vaapi/gstvaapidecode.h:
1615         * tests/internal/simple-decoder.c:
1616           vaapidecode: Remove NO_SURFACE error handling
1617           Since surfaces are not bounded to decoding context it makes no sense
1618           to keep the surface semaphore. This patch removes the handling of
1619           this error.
1620           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1621
1622 2020-07-08 17:48:57 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1623
1624         * gst/vaapi/gstvaapidecode.c:
1625         * gst/vaapi/gstvaapidecode.h:
1626           Revert "vaapidecode: drop non-keyframe in reverse playback"
1627           Since the number of surfaces are not bounded to decoder context,
1628           this hack is no longer needed.
1629           This reverts commit 19c0c8a97385ce119440c4aad2d689fc79297435.
1630           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1631
1632 2019-12-06 14:21:33 +0800  He Junyan <junyan.he@hotmail.com>
1633
1634         * gst-libs/gst/vaapi/gstvaapicontext.c:
1635           libs: decoder: context: remove surfaces binding from context.
1636           The vaCreateContext do not need to specify the surfaces for the
1637           context creation now. So we do not need to bind any surface to the
1638           context anymore. Surfaces should be the resource belong to display
1639           and just be used in encoder/decoder context.
1640           The previous manner has big limitation for decoder. The context's
1641           surface number is decided by dpb size. All the surfaces in dpb will
1642           be attached to a gstbuffer and be pushed to down stream, and the
1643           decoder need to wait down stream free the surface and go on if not
1644           enough surface available. For more and more use cases, this causes
1645           deadlock. For example,
1646           gst-launch-1.0 filesrc location=a.h264 ! h264parse ! vaapih264dec
1647           ! x264enc ! filesink location=./output.h264
1648           will cause deadlock and make the whole pipeline hang.
1649           the x264enc encoder need to cache more than dpb size surfaces.
1650           The best solution is seperating the surfaces number and the dpb size.
1651           dpb and dpb size shoule be virtual concepts maintained by the decoder.
1652           And let the surfaces_pool in context maintain the re-use of all surfaces.
1653           For encoder, the situation is better, all the surfaces are just used
1654           as reference frame and no need to be pushed to down stream. We can
1655           just reserve and set the capacity of the surfaces_pool to meet the
1656           request.
1657           Fix: #147
1658           Fix: #88
1659           Co-Author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1660           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1661
1662 2020-07-08 17:50:51 +0100  Tim-Philipp Müller <tim@centricular.com>
1663
1664         * meson.build:
1665         * scripts/extract-release-date-from-doap-file.py:
1666           meson: set release date from .doap file for releases
1667           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/355>
1668
1669 2020-07-08 11:57:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1670
1671         * gst/vaapi/gstvaapipluginbase.c:
1672           plugins: use VA allocator by default on raw caps
1673           Instead of using dmabuf allocator in source pad, when raw video caps
1674           are negotiated, it uses VA allocator as before, since it is stable
1675           in more use cases, for example transcoding, and more backend drivers.
1676           Dmabuf allocator is only used when dmabuf caps feature is negotiated.
1677           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/352>
1678
1679 2020-06-06 18:47:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1680
1681         * gst/vaapi/gstvaapi.c:
1682           vaapisink: rank it as secondary
1683           iHD doesn't provide a full implemention for rendering surfaces and
1684           i965 has problems in wayland. And I suspect this path is followed
1685           by other driver implementations.
1686           This patch demotes the rank of vaapisink to secondary, so it will
1687           not be autoplugged avoiding bad experience of users.
1688           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/336>
1689
1690 2020-06-19 10:44:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1691
1692         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1693         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1694           libs: decoder: h264, h265: in context at least 16 reference surfaces
1695           Registering only stream's DBP size number of surfaces for decoding VA
1696           surfaces brings issues for certain streams. This change register all
1697           possible number of reference surfaces in a stream, which is 16.
1698           Fixes: #94
1699
1700 2020-07-04 21:21:57 +0800  He Junyan <junyan.he@intel.com>
1701
1702         * gst/vaapi/gstvaapiencode_h265.c:
1703           plugins: encode: h265: Add profile,level,tier to output caps.
1704           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1705
1706 2020-07-04 21:08:20 +0800  He Junyan <junyan.he@intel.com>
1707
1708         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1709           libs: encoder: h265: init tier to GST_VAAPI_TIER_H265_UNKNOWN.
1710           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1711
1712 2020-07-04 21:05:49 +0800  He Junyan <junyan.he@intel.com>
1713
1714         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1715           libs: encoder: h265: fix a bug to get get_profile_tier_level.
1716           0 is a valid value for h265 tier.
1717           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1718
1719 2020-07-02 19:19:35 +0800  He Junyan <junyan.he@intel.com>
1720
1721         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1722           libs: encoder: h265: no need to check the high compression tune.
1723           The h265 encoder just support tune mode:
1724           (0): none             - None
1725           (3): low-power        - Low power mode
1726           So, no need to check and set the high compression parameters.
1727           And by the way, the current ensure_tuning_high_compression manner
1728           of choosing the hightest profile idc as the best compression profile
1729           is not correct. Unlike h264, in h265 the higher profile idc number
1730           does not mean it has more compression tools, and so it has better
1731           compression performance. It may even be un-compatible with the lower
1732           profile idc. For example, the SCREEN_CONTENT_CODING profile with idc
1733           9 is not compatible with 3D_MAIN profile with idc 8.
1734           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/348>
1735
1736 2020-07-03 02:04:14 +0100  Tim-Philipp Müller <tim@centricular.com>
1737
1738         * meson.build:
1739           Back to development
1740
1741 === release 1.17.2 ===
1742
1743 2020-07-03 00:36:40 +0100  Tim-Philipp Müller <tim@centricular.com>
1744
1745         * ChangeLog:
1746         * NEWS:
1747         * RELEASE:
1748         * gstreamer-vaapi.doap:
1749         * meson.build:
1750           Release 1.17.2
1751
1752 2020-06-23 10:20:46 -0400  Thibault Saunier <tsaunier@igalia.com>
1753
1754         * docs/gst_plugins_cache.json:
1755         * gst/vaapi/gstvaapiencode.c:
1756           docs: Mark parent classes as plugin API
1757
1758 2020-06-23 00:07:57 +0200  Mathieu Duponchelle <mathieu@centricular.com>
1759
1760         * docs/meson.build:
1761           meson: mark plugins cache target as always stale
1762
1763 2020-06-19 23:34:11 -0400  Thibault Saunier <tsaunier@igalia.com>
1764
1765         * docs/gst_plugins_cache.json:
1766           doc: Stop documenting properties from parents
1767
1768 2020-06-20 00:28:35 +0100  Tim-Philipp Müller <tim@centricular.com>
1769
1770         * meson.build:
1771           Back to development
1772
1773 === release 1.17.1 ===
1774
1775 2020-06-19 19:27:11 +0100  Tim-Philipp Müller <tim@centricular.com>
1776
1777         * ChangeLog:
1778         * NEWS:
1779         * RELEASE:
1780         * gstreamer-vaapi.doap:
1781         * meson.build:
1782           Release 1.17.1
1783
1784 2020-06-19 15:21:56 +0100  Tim-Philipp Müller <tim@centricular.com>
1785
1786         * docs/gst_plugins_cache.json:
1787         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1788         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1789         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1790         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1791           Update plugin docs and add more plugins
1792           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/344>
1793
1794 2020-06-11 08:32:05 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1795
1796         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1797           libs: wayland: display: only handle the first output
1798           Right now, all outputs are handled. The means that the registry object for
1799           all but the last are leaked. As a result the sizes are not used correctly.
1800           With two outputs, at first the mode and physical size of the second output
1801           are used. If the first output changes the mode, then the physical size of
1802           the second output is used in combination with the resolution of the first
1803           output. The resulting pixel aspect ratio is incorrect.
1804           There seems to be no way to determine on which output the window is shown,
1805           so just use the first one to get consistent results.
1806           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/341>
1807
1808 2020-06-11 18:15:17 +0800  He Junyan <junyan.he@hotmail.com>
1809
1810         * gst/vaapi/gstvaapipluginbase.c:
1811           plugins: pluginbase: Do not destroy display when _close()
1812           When the element's state changes to NULL, it can still receive
1813           queries, such as the image formats. The display is needed in such
1814           queries but not well protected for MT safe.
1815           For example, ensure_allowed_raw_caps() may still use the display
1816           while it is disposed by gst_vaapi_plugin_base_close() because of
1817           the state change.
1818           We can keep the display until the element is destroyed. When the
1819           state changes to NULL, and then changes to PAUSED again, the display
1820           can be correctly set(if type changes), or leave untouched.
1821           Fix: #260
1822           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/343>
1823
1824 2020-06-09 21:19:11 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1825
1826         * gst-libs/gst/vaapi/gstvaapicontext.c:
1827           libs: context: use correct printing modifier
1828           GstVaapiID is an alias of gsize, thus its modifier is platform
1829           dependant.
1830           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/340>
1831
1832 2020-06-06 00:42:46 +0200  Mathieu Duponchelle <mathieu@centricular.com>
1833
1834         * gst-libs/gst/vaapi/gstvaapidisplay.c:
1835         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1836         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1837         * gst-libs/gst/vaapi/gstvaapifilter.c:
1838         * gst-libs/gst/vaapi/gstvaapivalue.c:
1839           plugins: uddate gst_type_mark_as_plugin_api() calls
1840
1841 2020-03-05 18:12:27 +0800  He Junyan <junyan.he@hotmail.com>
1842
1843         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1844           libs: encoder: h265: Enable tile in VA command.
1845           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1846
1847 2020-03-05 17:56:51 +0800  He Junyan <junyan.he@hotmail.com>
1848
1849         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1850           libs: encoder: h265: Add ensure_tile to calculate tiles.
1851           We need consider tiles and slices together, separate tiles uniformly
1852           and then assign slices uniformly to each tiles.
1853           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1854
1855 2020-04-30 14:19:29 +0800  He Junyan <junyan.he@hotmail.com>
1856
1857         * gst-libs/gst/vaapi/gstvaapidisplay.c:
1858         * gst-libs/gst/vaapi/gstvaapidisplay.h:
1859           libs: display: add a quirk for iHD driver tile encoding.
1860           The iHD driver has a requirement that one slice can not span tiles
1861           when tile is enabled, which is not required by hevc spec.
1862           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1863
1864 2020-03-05 17:40:43 +0800  He Junyan <junyan.he@hotmail.com>
1865
1866         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1867           libs: encoder: h265: Add tile info to bitstream.
1868           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1869
1870 2020-03-05 17:29:41 +0800  He Junyan <junyan.he@hotmail.com>
1871
1872         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1873           libs: encoder: h265: promote level if tile is enabled.
1874           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1875
1876 2020-03-05 17:07:28 +0800  He Junyan <junyan.he@hotmail.com>
1877
1878         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1879         * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
1880           libs: encoder: h265: Add num-tile-cols/rows properties.
1881           These properties are used for support of tile encoding. We just
1882           support uniform mode of tile encoding, that is, separating picture
1883           equally by (num-tile-cols X num-tile-rows).
1884           According to HEVC spec A1, the max number of tiles in column is 20
1885           and in rows is 22, so add two constant definitions.
1886           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1887
1888 2020-03-05 16:21:24 +0800  He Junyan <junyan.he@hotmail.com>
1889
1890         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1891           libs: encoder: h265: extract slice creation from add_slice_headers
1892           extract slice creation details from add_slice_headers, and let the
1893           add_slice_headers just focuses on calculating slice start address
1894           and CTU number.
1895           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1896
1897 2020-03-05 12:44:45 +0800  He Junyan <junyan.he@hotmail.com>
1898
1899         * gst-libs/gst/vaapi/gstvaapiencoder.c:
1900         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1901           libs: encoder: Add a helper function to check the tile support.
1902           Encoding by tiles separation now is a very common feature for all
1903           relative new codecs, such as HEVC, AV1, and VP9. Just make this
1904           check as a common helper function of the encoder base class.
1905           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1906
1907 2020-05-13 18:02:07 +0800  He Junyan <junyan.he@hotmail.com>
1908
1909         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1910         * gst-libs/gst/vaapi/gstvaapiprofile.c:
1911         * gst-libs/gst/vaapi/gstvaapiprofile.h:
1912         * gst-libs/gst/vaapi/gstvaapiutils.c:
1913         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1914           libs: decoder: H265: Add SCC_MAIN_444_10 profile support.
1915           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1916
1917 2020-05-13 16:05:59 +0800  He Junyan <junyan.he@hotmail.com>
1918
1919         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1920           libs: decoder: update reference list for SCC.
1921           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1922
1923 2020-05-13 15:46:29 +0800  He Junyan <junyan.he@hotmail.com>
1924
1925         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1926           libs: decoder: H265: Fill picture and slice SCC parameters.
1927           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1928
1929 2020-05-13 15:00:53 +0800  He Junyan <junyan.he@hotmail.com>
1930
1931         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1932           libs: util: H265: recognize the SCC profiles.
1933           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1934
1935 2020-05-13 14:53:46 +0800  He Junyan <junyan.he@hotmail.com>
1936
1937         * gst-libs/gst/vaapi/gstvaapiprofile.c:
1938         * gst-libs/gst/vaapi/gstvaapiprofile.h:
1939         * gst-libs/gst/vaapi/gstvaapiutils.c:
1940           libs: profile: Add screen extended main/main10/main444 define.
1941           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1942
1943 2020-04-03 14:53:40 +0800  He Junyan <junyan.he@hotmail.com>
1944
1945         * gst-libs/gst/vaapi/gstvaapiencoder.c:
1946         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1947         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1948         * gst/vaapi/gstvaapiencode_h265.c:
1949           libs: encoder: h265: Add support for MAIN 4:2:2 10 profile.
1950           Using YUY2 as the input of the encoder can generate main 4:2:2 bit
1951           streams and using Y210 as the input of the encoder can generate main
1952           4:2:2 10 bit streams.
1953           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1954
1955 2020-05-29 16:40:20 +0800  He Junyan <junyan.he@hotmail.com>
1956
1957         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1958           libs: encoder: h265: Use correct index for SubWidthC and SubHeightC.
1959           We need to use the chroma_format_idc as the index for getting the
1960           SubWidthC and SubHeightC values as the spec 6.1(table 6-1) defines.
1961           The wrong SubWidthC or SubHeightC make us calculate a wrong right
1962           or bottom offset for crop size and generate garbage in output.
1963           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1964
1965 2020-05-29 15:37:24 +0800  He Junyan <junyan.he@hotmail.com>
1966
1967         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1968           libs: encoder: h265: Fix chrome idc for 444 10 bits
1969           GST_VAAPI_CHROMA_TYPE_YUV444_10BPP should also set chroma_format_idc
1970           to 3 as GST_VAAPI_CHROMA_TYPE_YUV444 does.
1971           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1972
1973 2020-06-03 18:37:22 -0400  Thibault Saunier <tsaunier@igalia.com>
1974
1975         * docs/meson.build:
1976           doc: Require hotdoc >= 0.11.0
1977
1978 2020-06-03 18:49:53 -0400  Thibault Saunier <tsaunier@igalia.com>
1979
1980         * gst/vaapi/gstvaapipostproc.c:
1981           doc: Fix wrong link to GstVideoDirectionMethod
1982
1983 2020-06-03 17:38:10 -0400  Thibault Saunier <tsaunier@igalia.com>
1984
1985         * docs/gst_plugins_cache.json:
1986         * meson_options.txt:
1987           docs: Update plugin cache with the new format
1988           And fix the default URL which should not be inside quotes.
1989
1990 2020-06-03 17:37:48 -0400  Thibault Saunier <tsaunier@igalia.com>
1991
1992         * gst-libs/gst/vaapi/gstvaapidisplay.c:
1993         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1994         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1995         * gst-libs/gst/vaapi/gstvaapifilter.c:
1996         * gst-libs/gst/vaapi/gstvaapivalue.c:
1997         * gst/vaapi/gstvaapipostproc.c:
1998           Use gst_type_mark_as_plugin_api() for all non-element plugin types
1999
2000 2020-05-23 22:09:17 +0800  He Junyan <junyan.he@hotmail.com>
2001
2002         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2003         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2004         * gst-libs/gst/vaapi/gstvaapicontext.h:
2005         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2006         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2007         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
2008         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
2009         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
2010         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
2011         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
2012         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
2013         * gst-libs/gst/vaapi/gstvaapiimage.h:
2014         * gst-libs/gst/vaapi/gstvaapiobject.c:
2015         * gst-libs/gst/vaapi/gstvaapiobject.h:
2016         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
2017         * gst-libs/gst/vaapi/gstvaapiprofile.h:
2018         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
2019         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
2020         * gst-libs/gst/vaapi/gstvaapisurface.h:
2021         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
2022         * gst-libs/gst/vaapi/gstvaapivideopool.c:
2023         * gst-libs/gst/vaapi/meson.build:
2024           libs: delete all gstvaapiobject related files.
2025           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2026
2027 2020-05-23 20:48:54 +0800  He Junyan <junyan.he@hotmail.com>
2028
2029         * gst-libs/gst/vaapi/gstvaapisurface.c:
2030           libs: surface: return fail immediately if can not create subpicture
2031           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2032
2033 2020-05-23 14:00:58 +0800  He Junyan <junyan.he@hotmail.com>
2034
2035         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
2036         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
2037         * gst-libs/gst/vaapi/gstvaapisurface.c:
2038         * tests/internal/image.c:
2039           libs: subpicture: Make subpicture a standard GstMiniObject.
2040           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
2041
2042 2020-05-26 02:19:15 +0800  He Junyan <junyan.he@hotmail.com>
2043
2044         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2045           libs: decoder: h264: Add ref flags for splited field.
2046           When split one frame into fields, the second field should also
2047           copy the reference flags.
2048           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/333>
2049
2050 2020-05-25 15:46:58 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2051
2052         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2053           libs: decoder: h264: disallow multiple slice group
2054           As far as we know there are no VAAPI drivers supporting FMO, which
2055           migth be used in baseline streams.
2056           This commit is a continuation of
2057           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328
2058           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/332>
2059
2060 2020-05-20 10:50:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2061
2062         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2063         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2064         * gst/vaapi/gstvaapidecode.c:
2065         * gst/vaapi/gstvaapidecode_props.c:
2066         * gst/vaapi/gstvaapidecode_props.h:
2067           vaapidecoder: h264: remove baseline as constrained property
2068           From now on always the baseline is going to be treated as constrained without
2069           need of setting a property.
2070           Since the property was added along the development cycle (1.17 / commit
2071           866a9f06) and never released, we assume that it is safe to remove it.
2072           Fixes: #252
2073           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328>
2074
2075 2020-05-21 11:37:36 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2076
2077         * README:
2078           README: update VP9 decoder and encoder
2079           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/330>
2080
2081 2020-05-21 13:42:47 +0800  Haihao Xiang <haihao.xiang@intel.com>
2082
2083         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2084           vaapiencoder_h264: set direct_spatial_mv_pred_flag to true by default
2085           This flag is set to true by default in both MediaSDK and FFmpeg-vaapi,
2086           so let's align this plugin with other libraries / softwares.
2087           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/329>
2088
2089 2020-05-18 18:29:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2090
2091         * gst/vaapi/gstvaapivideobufferpool.c:
2092           vaapivideobufferpool: fix meta overwrite
2093           commit 7ac2a207 added a regression by erroneously assumed that
2094           GstVaapiVideoMeta is actually a GstMeta, which is not.
2095           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/327>
2096
2097 2020-05-17 09:55:42 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2098
2099         * gst/vaapi/gstvaapivideobufferpool.c:
2100         * gst/vaapi/gstvaapivideometa_texture.c:
2101         * gst/vaapi/gstvaapivideometa_texture.h:
2102           vaapivideopool: Set pooled flag to added metas.
2103           So this could hint filters how to use these metas.
2104           Had to change the return value for texutre upload meta in order
2105           to flag it.
2106           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/326>
2107
2108 2020-05-16 20:49:31 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2109
2110         * gst-libs/gst/vaapi/gstvaapicontext.c:
2111         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2112         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2113         * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
2114         * gst-libs/gst/vaapi/gstvaapisurface.c:
2115           libs: use array_unref() rather than array_free()
2116           It is more convinience and thread-safe.
2117           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/325>
2118
2119 2020-04-10 22:20:35 +0800  He Junyan <junyan.he@hotmail.com>
2120
2121         * gst/vaapi/gstvaapi.c:
2122           plugin: use register_type to replace get_type for encode init.
2123           xxx_register_type will detect the template sink caps and is needed
2124           to be called at init time.
2125           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2126
2127 2020-04-10 22:05:50 +0800  He Junyan <junyan.he@hotmail.com>
2128
2129         * gst/vaapi/gstvaapiencode_vp9.c:
2130         * gst/vaapi/gstvaapiencode_vp9.h:
2131           plugins: encode: Modify sink template of vp9 encode.
2132           Use gst_vaapi_detect_codec_caps to get more precise template caps.
2133           Also implement gst_vaapiencode_vp9_register_type, which should be
2134           called at plugin register time.
2135           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2136
2137 2020-04-10 22:05:18 +0800  He Junyan <junyan.he@hotmail.com>
2138
2139         * gst/vaapi/gstvaapiencode_vp8.c:
2140         * gst/vaapi/gstvaapiencode_vp8.h:
2141           plugins: encode: Modify sink template of vp8 encode.
2142           Use gst_vaapi_detect_codec_caps to get more precise template caps.
2143           Also implement gst_vaapiencode_vp8_register_type, which should be
2144           called at plugin register time.
2145           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2146
2147 2020-04-10 22:04:34 +0800  He Junyan <junyan.he@hotmail.com>
2148
2149         * gst/vaapi/gstvaapiencode_mpeg2.c:
2150         * gst/vaapi/gstvaapiencode_mpeg2.h:
2151           plugins: encode: Modify sink template of mpeg2 encode.
2152           Use gst_vaapi_detect_codec_caps to get more precise template caps.
2153           Also implement gst_vaapiencode_mpeg2_register_type, which should be
2154           called at plugin register time.
2155           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2156
2157 2020-04-10 22:03:49 +0800  He Junyan <junyan.he@hotmail.com>
2158
2159         * gst/vaapi/gstvaapiencode_h265.c:
2160         * gst/vaapi/gstvaapiencode_h265.h:
2161           plugins: encode: Modify sink template of h265 encode.
2162           Use gst_vaapi_detect_codec_caps to get more precise template caps.
2163           Also implement gst_vaapiencode_h265_register_type, which should be
2164           called at plugin register time.
2165           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2166
2167 2020-04-10 22:00:38 +0800  He Junyan <junyan.he@hotmail.com>
2168
2169         * gst/vaapi/gstvaapiencode_h264.c:
2170         * gst/vaapi/gstvaapiencode_h264.h:
2171           plugins: encode: Modify sink template of h264 encode.
2172           Use gst_vaapi_detect_codec_caps to get more precise template caps.
2173           Also implement gst_vaapiencode_h264_register_type, which should be
2174           called at plugin register time.
2175           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2176
2177 2020-04-10 22:11:34 +0800  He Junyan <junyan.he@hotmail.com>
2178
2179         * gst/vaapi/gstvaapiencode_jpeg.c:
2180         * gst/vaapi/gstvaapiencode_jpeg.h:
2181           plugins: encode: Modify sink template of jpeg encode.
2182           Use gst_vaapi_detect_codec_caps to get more precise template caps.
2183           Also implement gst_vaapiencode_jpeg_register_type, which should be
2184           called at plugin register time.
2185           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2186
2187 2020-04-23 00:02:02 +0800  He Junyan <junyan.he@hotmail.com>
2188
2189         * gst/vaapi/gstvaapiencode.h:
2190           plugin: encode: add a helper macro to register encode type.
2191           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2192
2193 2020-04-10 21:44:05 +0800  He Junyan <junyan.he@hotmail.com>
2194
2195         * gst/vaapi/gstvaapipluginutil.c:
2196         * gst/vaapi/gstvaapipluginutil.h:
2197           plugins: util: Add a helper function to detect supported caps.
2198           This helper function iterate all profiles and entrypoints belong
2199           to the specified codec, query the VAConfigAttribRTFormat and list
2200           all possible video formats.
2201           This function is used by each codec to get the template sink caps
2202           (for encode) or src caps(for decode) at register time, when just
2203           all possible formats are listed and no need to be very accurate.
2204           So there is no context created for the performance reason. Most
2205           codecs just use YUV kinds of formats as the input/output, so we do
2206           not include RGB kinds of formats. User can specified more formats
2207           in extra_fmts(For example, jpeg may need BGRA) if needed.
2208           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2209
2210 2020-04-10 21:27:32 +0800  He Junyan <junyan.he@hotmail.com>
2211
2212         * gst/vaapi/gstvaapiencode.c:
2213         * gst/vaapi/gstvaapipluginutil.c:
2214         * gst/vaapi/gstvaapipluginutil.h:
2215           plugin: encode: extract the allowed caps maker as a helper function.
2216           Extract all logic about making caps for encode's sink as a standalone
2217           helper function. It can be reused.
2218           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2219
2220 2020-04-10 21:21:43 +0800  He Junyan <junyan.he@hotmail.com>
2221
2222         * gst-libs/gst/vaapi/video-format.c:
2223         * gst-libs/gst/vaapi/video-format.h:
2224           libs: video-format: add a helper function of get_formats_by_chroma.
2225           The function iterates all supported video formats and returns the
2226           formats belong to the specified chroma type.
2227           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2228
2229 2020-05-16 21:03:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2230
2231         * gst-libs/gst/vaapi/gstvaapitexture.c:
2232         * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2233           libs: texture: remove unused headers include
2234           This is continuation of
2235           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317
2236           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/324>
2237
2238 2020-05-16 19:58:25 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2239
2240         * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
2241         * gst-libs/gst/vaapi/gstvaapiimage.h:
2242         * gst-libs/gst/vaapi/gstvaapisurface.h:
2243           libs: removed duplicated function declarations
2244           Some headers had duplicated inlined function declaration. This was
2245           for gtkdoc, but now GStreamer uses hotdoc and the internal library
2246           documentation is not generated. So let's remove these extra lines.
2247           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/323>
2248
2249 2020-04-18 19:32:24 +0800  He Junyan <junyan.he@hotmail.com>
2250
2251         * gst-libs/gst/vaapi/gstvaapitexture.c:
2252         * gst-libs/gst/vaapi/gstvaapitexture.h:
2253         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
2254         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
2255         * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2256         * gst-libs/gst/vaapi/gstvaapitexturemap.c:
2257         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2258         * gst/vaapi/gstvaapivideometa_texture.c:
2259         * tests/internal/test-textures.c:
2260           libs: texture: Make texture a standard GstMiniObject.
2261           We store GstVaapiTextureGLX and GstVaapiTextureEGL's private data in
2262           the qdata of miniobject and avoid extending the base texture class.
2263           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317>
2264
2265 2020-04-26 12:33:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2266
2267         * README:
2268           Update README
2269           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/320>
2270
2271 2020-04-21 18:00:26 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2272
2273         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
2274           libs: display: drm: use g_strcmp0 to be null safe
2275           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/321>
2276
2277 2020-04-26 13:30:16 +0800  Haihao Xiang <haihao.xiang@intel.com>
2278
2279         * gst/vaapi/gstvaapipluginutil.c:
2280           vaapipluginutil: Use GST_VAAPI_DISPLAY_TYPE_DRM for Mesa3D GBM
2281           We may build this plugin with window system support but run it without
2282           window system. Without this patch, the following pipeline will trigger a
2283           segfault when running it without window system.
2284           gst-launch-1.0 filesrc location=input.264 ! h264parse ! vaapih264dec ! fakesink
2285           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/319>
2286
2287 2020-04-21 11:16:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2288
2289         * meson.build:
2290           build: use join_paths() for driverdir
2291
2292 2020-04-21 09:04:51 +0000  Veerabadhran G <vegopala@amd.com>
2293
2294         * README:
2295           README: Update supported hardware
2296           Added the AMD hardware list to the "Hardware Requirements" section.
2297
2298 2020-04-04 13:58:00 +0200  He Junyan <junyan.he@hotmail.com>
2299
2300         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2301         * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
2302         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2303           libs: bufferproxy: remove GstMemory reference
2304           Since bufferproxy and surface are not referenced circularly, there's
2305           no need to keep, in the buffer proxy, a reference to the GstMemory
2306           where it is held. This patch removes that handling.
2307
2308 2020-03-15 23:29:05 +0800  He Junyan <junyan.he@hotmail.com>
2309
2310         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2311         * gst-libs/gst/vaapi/gstvaapisurface.c:
2312         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2313         * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
2314         * gst/vaapi/gstvaapivideomemory.c:
2315           libs,plugin: break surface-bufferproxy circular reference
2316           The bufferproxy may reference the surface and the surface may also
2317           reference the bufferproxy, producing a circular reference, which might
2318           lead to serious resource leak problems.
2319           Now make the relationship clearer, the bufferproxy's references is
2320           transfered to surface, while bufferproxy just keeps the surface's
2321           address without increasing its reference count.
2322           The surface can be created through a bufferproxy like in
2323           gst_vaapi_surface_new_with_dma_buf_handle(), and the surface might
2324           get its bufferproxy via gst_vaapi_surface_get_dma_buf_handle(). In
2325           both cases the surface holds a bufferproxy's reference.
2326
2327 2020-04-03 18:43:52 +0200  He Junyan <junyan.he@hotmail.com>
2328
2329         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2330         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2331         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2332           libs: bufferproxy: rename parent memeber as surface
2333
2334 2020-03-15 22:07:31 +0800  He Junyan <junyan.he@hotmail.com>
2335
2336         * gst/vaapi/gstvaapivideobufferpool.c:
2337           plugin: bufferpool: use hashmap to cache dmabuf mem-surface
2338           The old way of refer memory by bufferproxy is not a good one, since it
2339           make the logic error prone.
2340           Now it is established a map between surface-bufferproxy and its GstMemory,
2341           caching the memory bound by a surface looked for the specified surface.
2342
2343 2020-03-15 21:50:24 +0800  He Junyan <junyan.he@hotmail.com>
2344
2345         * gst/vaapi/gstvaapivideobufferpool.c:
2346         * gst/vaapi/gstvaapivideobufferpool.h:
2347           plugin: bufferpool: Delete ACQUIRE_FLAG_NO_ALLOC flag.
2348           Delete the GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC flag.
2349           In fact, no one is using that flag, and all vaapi buffers should
2350           have GstVaapiVideoMeta.
2351
2352 2020-02-13 09:43:38 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2353
2354         * gst/vaapi/gstvaapipostproc.c:
2355         * gst/vaapi/gstvaapipostproc.h:
2356           vaapipostproc: enable HDR10 tone mapping
2357
2358 2020-02-13 09:00:18 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2359
2360         * gst-libs/gst/vaapi/gstvaapifilter.c:
2361         * gst-libs/gst/vaapi/gstvaapifilter.h:
2362           libs: filter: HDR10 tone mapping support
2363           Add support for HDR10 tone mapping (since VA-API 1.4.0).
2364
2365 2020-04-02 15:14:15 +0800  He Junyan <junyan.he@hotmail.com>
2366
2367         * gst-libs/gst/vaapi/gstvaapiencoder.c:
2368         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2369         * gst-libs/gst/vaapi/gstvaapiprofile.c:
2370         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2371         * gst/vaapi/gstvaapiencode_h265.c:
2372           libs: encoder: h265: Support MAIN 4:4:4 10 profile.
2373           Using Y410 as the input of the encoder can generate main_444_10 bit
2374           streams.
2375
2376 2020-04-02 15:19:41 +0800  He Junyan <junyan.he@hotmail.com>
2377
2378         * gst-libs/gst/vaapi/gstvaapiencoder.c:
2379           libs: encoder: fix an inexact trace info in chroma type check.
2380
2381 2020-03-31 12:22:31 +0800  Haihao Xiang <haihao.xiang@intel.com>
2382
2383         * gst-libs/gst/vaapi/gstvaapiencoder.c:
2384           libs: encoder: make sure format array is not NULL when returning TRUE
2385           This fixed segfault when running the pipeline below with iHD driver
2386           (commit efe5e9a) on ICL
2387           gst-launch-1.0 videotestsrc ! vaapivp9enc tune=low-power ! vaapivp9dec ! \
2388           fakesink
2389
2390 2020-03-18 13:28:00 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2391
2392         * gst-libs/gst/vaapi/gstvaapidecoder.h:
2393         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2394         * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
2395         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
2396         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
2397         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
2398         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
2399         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
2400         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
2401         * gst-libs/gst/vaapi/gstvaapidisplay.h:
2402         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
2403         * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
2404         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
2405         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
2406         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
2407         * gst-libs/gst/vaapi/gstvaapiencoder.h:
2408         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2409         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2410         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
2411         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
2412         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
2413         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2414         * gst-libs/gst/vaapi/gstvaapifilter.h:
2415         * gst-libs/gst/vaapi/gstvaapitexturemap.h:
2416         * gst-libs/gst/vaapi/gstvaapiwindow.h:
2417         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
2418         * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
2419         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
2420         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
2421         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
2422           libs: extend g_autoptr support
2423
2424 2020-03-26 22:40:40 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2425
2426         * gst/vaapi/gstvaapivideometa.c:
2427           vaapivideometa: remove compiler warning
2428
2429 2020-03-22 20:59:20 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2430
2431         * meson.build:
2432         * meson_options.txt:
2433           build: Add meson's option package-origin.
2434           This options is added to synchronize with other gstreamer packages
2435           build configuration.
2436           Though, to avoid breaking distro configuration it is set, as default,
2437           the issues gitlab's url, instead of the used string
2438           "Unkown package origin".
2439           Also, set_quoted is used for string based cdata.
2440
2441 2020-02-25 13:45:05 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2442
2443         * gst/vaapi/gstvaapipostproc.c:
2444           vaapipostproc: deprecate format, width and size parameters
2445           Since they should only be controlled by caps negotiation.
2446
2447 2020-03-18 16:41:01 +0800  He Junyan <junyan.he@hotmail.com>
2448
2449         * gst-libs/gst/vaapi/gstvaapiprofile.c:
2450         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2451         * gst/vaapi/gstvaapidecode.c:
2452           libs,plugins: decoder: Add -intra profile support for hevc.
2453           In hevc, we can consider the -intra profile a subset of the none
2454           -intra profile. The -intra profiles just contain I frames and we
2455           definitely can use the none -intra profiles's context to decode
2456           them.
2457           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2458
2459 2020-03-04 12:35:42 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2460
2461         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2462           libs: encoder: h265: support ICQ/QVBR BRC
2463           Enable support for ICQ and QVBR bitrate control.
2464           The code is essentially the same for h264 ICQ/QVBR support
2465           which was added in commit 9e0c133a2403.
2466
2467 2020-03-19 11:19:18 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
2468
2469         * gst-libs/gst/vaapi/gstvaapiencoder.c:
2470           libs: encoder: set VA HRD param before RC param
2471           This is a workaround for intel-media-driver bug
2472           https://github.com/intel/media-driver/issues/865
2473           The driver will force the RC method to CBR for HEVCe
2474           when it parses the HRD param.  Thus, any RC method
2475           param submitted "prior" to the HRD param will be lost.
2476           Therefore, VBR, ICQ and QVBR for HEVCe can't be
2477           effectively enabled if the RC method param "precedes"
2478           the HRD param.
2479           To work around this issue, set the HRD param before
2480           the RC method param so the driver will parse the RC
2481           method param "after" the HRD param.
2482           Afaict, other codecs in the driver (and other drivers)
2483           do not appear to be dependent on the order of HRD and
2484           RC param submission.
2485
2486 2019-11-25 14:16:30 +0800  Haihao Xiang <haihao.xiang@intel.com>
2487
2488         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2489         * gst-libs/gst/vaapi/gstvaapidisplay.h:
2490         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2491           vaapijpegenc: Add a quantization quirk for iHD driver
2492           iHD driver shifts the value by 50 when calculating quantization for JPEG
2493           encoding, so we should add 50 in this plugin for iHD driver too.
2494
2495 2020-03-13 21:49:15 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2496
2497         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2498         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
2499         * gst-libs/gst/vaapi/gstvaapipixmap.c:
2500         * gst-libs/gst/vaapi/gstvaapipixmap.h:
2501         * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
2502         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
2503         * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
2504         * gst-libs/gst/vaapi/gstvaapiwindow.c:
2505         * gst-libs/gst/vaapi/gstvaapiwindow.h:
2506         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2507         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
2508         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2509         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
2510         * gst-libs/gst/vaapi/meson.build:
2511         * meson.build:
2512         * tests/internal/output.c:
2513         * tests/internal/output.h:
2514         * tests/internal/simple-decoder.c:
2515         * tests/internal/test-decode.c:
2516           libs: remove GstVaapiPixmap
2517           GstVaapiPixmap is an abstract base class which only implementation
2518           were GstVaapiPixmapX11. This class were used for a special type of
2519           rendering in the tests apps, utterly unrelated in GStreamer.
2520           Since gstreamer-vaapi is no longer a general-user wrapper for VA-API
2521           we should remove this unused API.
2522           This removal drops libxrender dependency.
2523
2524 2020-03-17 18:51:19 +0800  He Junyan <junyan.he@hotmail.com>
2525
2526         * gst-libs/gst/vaapi/gstvaapiutils.c:
2527           libs: utils: Add HEVC Main444 sting in string_of_VAProfile
2528           HEVCMain444_10 is already a supported profile and misses the strings.
2529
2530 2020-03-17 12:47:33 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2531
2532         * gst/vaapi/gstvaapi.c:
2533           plugin: don't error if cannot create display
2534           This might generated errors on automatic tools such as CI. Let's
2535           rather just raise a warning and let continue.
2536
2537 2020-03-09 01:52:57 +0800  He Junyan <junyan.he@hotmail.com>
2538
2539         * tests/check/meson.build:
2540           test: fix a ninja test failure for vaapioverlay.
2541           That test case only works with drm display, so the build such as
2542           meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2543           -Dwith_glx=no
2544           gets a failure when run ninja test. Just enable this test when drm
2545           is enabled.
2546
2547 2020-02-07 23:56:13 +0800  He Junyan <junyan.he@hotmail.com>
2548
2549         * gst-libs/gst/vaapi/gstvaapivideopool.c:
2550           libs: videopool: fix a condition race for pool allocate.
2551
2552 2020-03-05 13:22:23 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2553
2554         * gst/vaapi/gstvaapivideobufferpool.c:
2555           vaapivideobufferpool: force video meta if sizes are different
2556           The strides and offsets could be the same, but the allocation
2557           size might be different (e.g. alignment).  Thus, ensure we also
2558           set the flag to copy from VA memory to system memory when alloc
2559           size differs.
2560           Fixes #243
2561
2562 2020-03-05 14:18:32 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2563
2564         * gst/vaapi/gstvaapidecode.c:
2565           vaapidecode: don't set base sink caps twice
2566           Base class's sink pad caps are already set when calling set_format().
2567           There's no need to call it again in gst_vaapidecode_negotiate().
2568
2569 2020-03-05 13:26:38 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2570
2571         * gst/vaapi/gstvaapidecode.c:
2572           vaapidecode: unlock stream if caps update fails
2573           If caps update fail a dead lock occurs since the stream mutex is not
2574           unlocked.
2575
2576 2020-03-03 15:24:32 +0800  Xu Guangxin <guangxin.xu@intel.com>
2577
2578         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2579           libs: decoder: h265: parser state after update dependent slice
2580           If the dependent_slice_segment_flag is true, most slice info derived from last slice.
2581           So we need check the slice type after we call populate_dependent_slice_hdr
2582
2583 2020-02-16 12:21:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2584
2585         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2586         * gst-libs/gst/vaapi/gstvaapidisplay.h:
2587           libs: display: force RGBA image format for i965 driver
2588           Since commit 32bf6f1e GLTextureUpload is broken because i965
2589           doesn't report properly RGBA support. It could be possible to use RGBx
2590           but GLTextureUpload only regotiates RGBA.
2591           The simplest fix to this regression is adding synthetically the RGBA
2592           format in the internal format map.
2593
2594 2020-02-14 19:30:54 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2595
2596         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2597           libs: display: iterate all quirks table
2598           Instead of break at the fist foud quirk in the table, iterate all over
2599           so it would be feasible to add several quirks for one driver per
2600           element in array.
2601
2602 2020-02-25 12:05:28 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2603
2604         * gst-libs/gst/vaapi/gstvaapifilter.c:
2605           libs: filter: handle RGB to/from YUV color primary driver quirk
2606           The intel-media-driver (iHD) can't convert output color
2607           primaries when doing YUV to/from RGB CSC.  Thus, we must
2608           keep the output color primaries the same as the input
2609           color primaries for this case.
2610           fixes #238
2611
2612 2020-02-25 12:00:36 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2613
2614         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2615         * gst-libs/gst/vaapi/gstvaapidisplay.h:
2616           libs: display: add YUV to/from RGB color primary quirk
2617           The intel-media-driver (iHD) can't convert output color
2618           primaries when doing YUV to/from RGB CSC.
2619
2620 2020-02-28 11:33:18 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2621
2622         * gst/vaapi/gstvaapivideomemory.c:
2623           Revert "vaapivideomemory: Store surface allocation flags."
2624           This reverts commit dd428cc4a12c2d5c694fcd3303811cf486002c9d because
2625           it rewrites the buffer size whilst surface allocation flags are
2626           stored when allocator_params_init() is called since fab890ce.
2627           Fix: #239
2628
2629 2020-01-27 18:19:57 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2630
2631         * gst/vaapi/gstvaapivideomemory.c:
2632           vaapivideomemory: Try surface with allocation flags.
2633           When a vaapi allocator is instantiated, it first try to generate a
2634           surface with the specified configuration.
2635           This patch adds, in this tried buffer, the requested allocation flags.
2636
2637 2020-01-27 18:10:18 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2638
2639         * gst/vaapi/gstvaapivideomemory.c:
2640           vaapivideomemory: Store surface allocation flags.
2641           Store surface allocation flags passed to the vaapi allocator in
2642           GObject's qdata, because it might be used by the vaapivideobufferpool
2643           when recreating the allocator given any resolution change.
2644
2645 2020-01-24 19:32:52 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2646
2647         * gst-libs/gst/vaapi/gstvaapisurface.c:
2648         * gst-libs/gst/vaapi/gstvaapisurface.h:
2649           libs: surface: Add hints to allocation flags.
2650           When creating surfaces it is possible to pass to VA hints of its usage,
2651           so the driver may do some optimizations.
2652           This commit adds the handling of encoding/decoding hints.
2653
2654 2020-01-24 22:08:50 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2655
2656         * gst-libs/gst/vaapi/gstvaapicontext.c:
2657         * gst-libs/gst/vaapi/gstvaapisurface.c:
2658         * gst-libs/gst/vaapi/gstvaapisurface.h:
2659         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
2660         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2661         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2662         * gst-libs/gst/vaapi/gstvaapiwindow.c:
2663         * tests/internal/test-filter.c:
2664         * tests/internal/test-surfaces.c:
2665           libs: surface: surfacepool: Add allocation flags in constructors.
2666
2667 2020-02-22 16:06:13 +0800  He Junyan <junyan.he@hotmail.com>
2668
2669         * meson.build:
2670           build: let the build fail if none if X11, wayland or drm.
2671           In fact, gst_vaapi_create_test_display only test x11, wayland and
2672           drm, no glx and egl entries. So if none of them is enabled, no
2673           vaapi element can be detected.
2674
2675 2020-02-21 00:58:47 +0800  He Junyan <junyan.he@hotmail.com>
2676
2677         * tests/internal/test-display.c:
2678           test: avoid unused warning for test-display
2679           meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2680           -Dwith_glx=no buildir
2681           generate unused warnings.
2682
2683 2020-02-21 00:50:47 +0800  He Junyan <junyan.he@hotmail.com>
2684
2685         * meson.build:
2686           build: fix meson build error when without x11.
2687           meson -Dwith_x11=no build_dir
2688           can not success build the project because the glx is still enabled.
2689           We need to disable GLX when X11 is disabled.
2690
2691 2020-02-14 19:53:09 +0800  Haihao Xiang <haihao.xiang@intel.com>
2692
2693         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2694           libs: h265enc: Set max_transform_hierarchy_depth_{inter, intra} to 2
2695           Intel HW has limitation on max_transform_hierarchy_depth_inter and
2696           max_transform_hierarchy_depth_intra (see [1]). We can provide a quirk for
2697           other HWs if other HWs may support other values
2698           [1] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol10-hevc.pdf
2699
2700 2020-02-21 07:37:50 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2701
2702         * gst/vaapi/gstvaapipostproc.c:
2703         * gst/vaapi/gstvaapipostprocutil.c:
2704           vaapipostproc: do not compensate for crop/direction if no VPP
2705           If we do not have functional VPP, then cropping and video
2706           direction is non-functional and we should avoid calling
2707           any of the gst_vaapi_filter* APIs.
2708
2709 2020-02-21 06:54:47 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2710
2711         * gst/vaapi/gstvaapipostproc.c:
2712           vaapipostproc: only set VPP colorimetry when VPP is available
2713           If we don't have functional vpp then we should not call
2714           gst_vaapi_filter_set_colorimetry.
2715
2716 2020-02-16 01:25:37 +0800  He Junyan <junyan.he@hotmail.com>
2717
2718         * gst/vaapi/gstvaapivideobufferpool.c:
2719         * gst/vaapi/gstvaapivideomemory.c:
2720         * gst/vaapi/gstvaapivideomemory.h:
2721           videobufferpool: don't reset surface when created internally
2722           The bug fixing, in commit 89f202ea, just considers the case when
2723           surface's DMABuf is set through gst_buffer_pool_acquire_buffer(),
2724           which is typically a decoder's behavior. But vaapipostproc doesn't
2725           provide any surface when calling gst_buffer_pool_acquire_buffer(),
2726           thus a surface is created when GstMemory is allocated.
2727           If the surface proxy in buffer's meta is reset at
2728           buffer_pool_reset_buffer(), that surface will be destroyed and it
2729           won't be available anymore. But GstBuffers are cached in the buffer
2730           pool and they are reused again, hence only those images are rendered
2731           repeatedly.
2732           Fixes: #232
2733
2734 2020-02-16 17:19:04 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2735
2736         * gst-libs/gst/vaapi/gstvaapiblend.c:
2737         * gst-libs/gst/vaapi/gstvaapifilter.c:
2738         * gst/vaapi/gstvaapi.c:
2739           libs: blend: filter: handle finalize() if display isn't assigned
2740           I've just discovered iHD driver in Skylake doesn't have VideoProc
2741           entry point, hence, in this platform, when vaapioverlay is tried to be
2742           registered, critical warnings are raised because blend doesn't have a
2743           display assigned.
2744           As it is possible to have drivers without EntryPointVideoProc it is
2745           required to handle it gracefully. This patch does that: only tries to
2746           register vaapioverlay if the testing display has VPP and finalize()
2747           vmethods, in filter and blend, bail out if display is NULL.
2748
2749 2020-02-15 11:02:49 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2750
2751         * gst-libs/gst/vaapi/gstvaapifilter.c:
2752         * gst-libs/gst/vaapi/gstvaapiutils.c:
2753           libs: filter: guard all color properties to VA-API 1.2.0
2754           Older VA-API (0.39.0) doesn't have VAProcColorProperties.
2755           Thus, guard all colorimetry -> VA-API support to version
2756           1.2.0.
2757           Fixes #234
2758
2759 2020-02-17 08:55:36 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2760
2761         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2762           libs: decoder: h265: set parser info state at decoding codec data
2763           Commit 1168d6d5 showed up a regression: decode_sps() stores the unit's
2764           parser info in sps array. If that parser info comes from decoding
2765           codec data, that parser info will have an undefined state which might
2766           break ensure_sps().
2767           This patch sets the parser info state, at decoding codec data, with
2768           the internal parser state. This is similar with h264 decoder apprach.
2769           Original-patch-by: Xu Guangxin <guangxin.xu@intel.com>
2770
2771 2020-02-07 15:24:18 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2772
2773         * gst/vaapi/gstvaapipostproc.c:
2774           vaapipostproc: demote log message to trace level
2775
2776 2020-02-14 14:45:56 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2777
2778         * gst-libs/gst/vaapi/video-format.c:
2779           libs: video-format: set general vaapi log category
2780           Instead of logging in an unspecified category, set the default vaapi.
2781
2782 2020-02-15 11:44:48 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2783
2784         * gst-libs/gst/vaapi/gstvaapiutils.c:
2785           libs: utils: guard EncSliceLP for VA-API < 0.39.1
2786           Relates to #234
2787
2788 2020-02-14 16:17:04 +0800  Haihao Xiang <haihao.xiang@intel.com>
2789
2790         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2791           libs: h265enc: Set VA_PICTURE_HEVC_INVALID flag for invalid picture
2792
2793 2020-02-11 11:31:31 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2794
2795         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
2796         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2797         * gst-libs/gst/vaapi/gstvaapiencoder.c:
2798           libs: remove crumbs of libva < 0.39
2799           All these guarded code seem like leftovers of commit 920b1ec7a. This
2800           patch completes that missing clean up.
2801
2802 2020-02-11 00:38:40 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2803
2804         * gst-libs/gst/vaapi/gstvaapifilter.c:
2805         * gst-libs/gst/vaapi/gstvaapiutils.c:
2806           libs: VA explicit color standard not supported until 1.2.0
2807           VAProcColorStandardExplicit and associated VAProcColorProperties
2808           (primaries, transfer and matrix) are not supported until
2809           VA-API 1.2.0.
2810           Use VAProcColorStandardNone instead of VAProcColorStandardExplicit
2811           if VA-API < 1.2.0.
2812           Fixes #231
2813
2814 2020-02-10 09:31:15 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2815
2816         * gst-libs/gst/vaapi/gstvaapiutils.c:
2817           libs: utils: WA: use explicit for sRGB colorimetry
2818           Addresses #228 on iHD side.  It seems iHD can't handle
2819           VAProcColorStandardSRGB in all situations for vpp.  But
2820           it has no problem when we specify the sRGB parameters
2821           via VAProcColorStandardExplicit parameters.
2822
2823 2020-02-07 11:25:31 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2824
2825         * gst-libs/gst/vaapi/gstvaapifilter.c:
2826           libs: filter: set vpp input/output color range
2827           We've always sent VA_SOURCE_RANGE_UNKNOWN to the driver.
2828           And, the [iHD] driver essentially computes the same color
2829           range as gstreamer when we send VA_SOURCE_RANGE_UNKNOWN for
2830           cases were gstreamer computes it automatically.  But,
2831           if the user wants to make it explicit, we should try
2832           to honor it.
2833
2834 2020-02-07 11:20:11 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2835
2836         * gst-libs/gst/vaapi/gstvaapiutils.c:
2837         * gst-libs/gst/vaapi/gstvaapiutils.h:
2838           libs: utils: map GstVideoColorRange to VAAPI VPP
2839
2840 2020-02-07 15:28:24 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2841
2842         * gst/vaapi/gstvaapidecode.c:
2843           vaapidecode: don't remove chroma-site nor colorimetry
2844           Since now they can be handled by vaapipostproc.
2845
2846 2020-02-04 14:17:43 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2847
2848         * gst/vaapi/gstvaapipostprocutil.c:
2849           vaapipostproc: use sink resolution to calculate src colorimetry
2850           The default output colorimetry is persuaded by the output
2851           resolution, which is too naive when doing VPP cropping
2852           and/or scaling.  For example, scaling 4K(sink)->1080P(src)
2853           resolution (i.e. both YUV) results in bt2020(sink)->bt709(src)
2854           colorimetry selection and some drivers don't support that
2855           mode in vpp.
2856           Thus, if output (i.e. downstream) does not specify a
2857           colorimetry then we use the input resolution instead of the
2858           output resolution to create the default colorimetry.  Also,
2859           note that we still use the output format since it may be a
2860           different color space than the input.  As in the example
2861           above, this will result in bt2020(sink)->bt2020(src)
2862           colorimetry selection and all drivers (afaik) should support
2863           that in vpp.
2864
2865 2020-02-04 09:57:42 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2866
2867         * gst/vaapi/gstvaapipostprocutil.c:
2868           vaapipostproc: set srcpad colorimetry unconditionally
2869           We always need a srcpad colorimetry for VAAPI VPP
2870           operations.
2871           Also, check the return value of _set_colorimetry.
2872
2873 2020-01-30 12:34:07 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2874
2875         * gst/vaapi/gstvaapipostprocutil.c:
2876           vaapipostproc: do not override explicit srcpad colorimetry
2877           If colorimetry has been set by a capsfilter (e.g.
2878           vaapipostproc ! video/x-raw,colorimetry=bt709) then
2879           don't try to override it.  Previously, the aforementioned
2880           capsfilter will fail to negotiate if default colorimetry
2881           is not the same as the capsfilter (e.g. 4K resolutions).
2882
2883 2020-01-30 09:37:18 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2884
2885         * gst/vaapi/gstvaapipostproc.c:
2886           vaapipostproc: set vpp filter colorimetry
2887           Set the input and output colorimetry for vpp filter.
2888
2889 2020-01-30 09:34:10 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2890
2891         * gst-libs/gst/vaapi/gstvaapifilter.c:
2892         * gst-libs/gst/vaapi/gstvaapifilter.h:
2893           libs: filter: support vpp input/output color standard
2894           Add API function to allow setting the input and output vpp
2895           color standard from GstVideoColorimetry.
2896
2897 2020-02-04 11:32:54 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2898
2899         * gst-libs/gst/vaapi/gstvaapiutils.c:
2900         * gst-libs/gst/vaapi/gstvaapiutils.h:
2901           libs: utils: map GstVideoColorimetry to VAAPI VPP
2902           Fallback to VAProcColorStandardExplicit if there is no
2903           1:1 mapping.
2904
2905 2020-02-04 10:27:23 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2906
2907         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2908         * gst-libs/gst/vaapi/gstvaapidisplay.h:
2909           libs: display: add vpp color standard quirk for i965 driver
2910           The i965 does not properly report supported vpp color
2911           standards.
2912
2913 2020-02-02 18:04:35 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2914
2915         * gst/vaapi/gstvaapivideobufferpool.c:
2916           vaapivideobufferpool: dmabuf implies allocator
2917           Some code can be optimized since only if the dmabuf allocator is set,
2918           the internal flag of dmabuf is TRUE, thus there's no need to evaluate
2919           the allocator address.
2920
2921 2020-01-29 11:55:39 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2922
2923         * gst/vaapi/gstvaapivideobufferpool.c:
2924           vaapivideobufferpool: reject configuration if allocator isn't vaapi
2925           If the requested allocator in set_config() is not a VAAPI valid one,
2926           reject the configuration, instead of lying and using a private one.
2927           This patch superseeds !254 and !24
2928
2929 2020-01-29 11:55:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2930
2931         * gst/vaapi/gstvaapivideobufferpool.c:
2932           vaapivideobufferpool: add explanation for allocator reconfig
2933
2934 2020-01-29 11:54:38 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2935
2936         * gst/vaapi/gstvaapivideobufferpool.c:
2937           vaapivideobufferpool: check for vaapi meta first
2938           If the configured meta doesn't request vaapi meta then it is not a
2939           vaapi buffer pool. Bail out as soon as possible.
2940
2941 2020-01-29 11:52:38 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2942
2943         * gst/vaapi/gstvaapivideobufferpool.c:
2944           vaapivideobufferpool: turn errors into warnings
2945           set_config() vmethod should fail gracefully, thus upstream could
2946           negotiate another pool if possible.
2947           Instead of sending error messages to the bus, let demote the level
2948           to warning.
2949
2950 2020-01-29 11:51:47 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2951
2952         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2953           libs: display: log out vendor string when available
2954           This is useful while asking for logs to know the used driver.
2955
2956 2020-01-27 11:49:26 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2957
2958         * gst-libs/gst/vaapi/gstvaapisurface.c:
2959           libs: surface: initialize VASurfaceAttribExternalBuffers
2960           Initialize VASurfaceAttribExternalBuffers using compiler's syntax
2961           rather than using memset().
2962
2963 2020-01-27 11:44:49 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2964
2965         * gst-libs/gst/vaapi/gstvaapisurface.c:
2966           libs: surface: merge two loops into one
2967           Merge two loops into one for setting offsets and strides in the
2968           external buffer descriptor.
2969
2970 2020-01-22 10:42:35 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2971
2972         * gst-libs/gst/vaapi/gstvaapisurface.c:
2973         * gst-libs/gst/vaapi/gstvaapisurface.h:
2974         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2975         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2976           libs: surface: surfacepool: rename variable for clearity
2977           In order to be readable, the meaningless 'flags' is renamed to
2978           surface_allocation_flags, which is clearer.
2979
2980 2020-01-27 18:40:46 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2981
2982         * gst/vaapi/gstvaapivideobufferpool.c:
2983           vaapivideobufferpool: Reuse internal allocator is possible.
2984           Instead of creating a new allocator when upstream requests a different
2985           allocator, this patch tries to reuse the internal allocator if it was
2986           already initializated.
2987           If the stream changes, then either one will be unref and a new
2988           allocator is created.
2989
2990 2020-01-27 18:05:14 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2991
2992         * gst/vaapi/gstvaapivideobufferpool.c:
2993           vaapivideobufferpool: Log messages in proper category.
2994           The log messages where logged in the GstBufferPool category because
2995           the instance was not properly casted. This fix that situation.
2996
2997 2020-01-16 11:49:21 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2998
2999         * gst-libs/gst/vaapi/gstvaapidisplay.c:
3000         * gst-libs/gst/vaapi/gstvaapidisplay.h:
3001         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3002         * gst/vaapi/gstvaapipluginbase.c:
3003           libs: display: driver quirks mechanism
3004           This mechanism comes from ffmpeg vaapi implementation, where they have
3005           their own quirks.
3006           A specific driver is identified by a substring present in the vendor
3007           string. If that substring is found, a set of bitwise flags are store.
3008           These flags can be accessed through the function
3009           gst_vaapi_display_has_driver_quirks().
3010           The purpose for this first quirks is to disable the put image try for
3011           AMD Gallium driver (see [1]).
3012           1. https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/72
3013
3014 2020-01-15 23:07:29 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3015
3016         * gst/vaapi/gstvaapipluginutil.c:
3017           plugins: renable Mesa Gallium driver
3018
3019 2020-01-24 11:55:22 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3020
3021         * gst/vaapi/gstvaapivideobufferpool.c:
3022           vaapivideobufferpool: validate returned meta
3023           Validate if the meta returned by gst_buffer_get_vaapi_video_meta() in
3024           the acquired buffer is not null.
3025           This situation should be very "pathological", but still it is better
3026           be safe since that meta might be used later to create a new dma
3027           buffer.
3028
3029 2020-01-22 18:50:36 +0100  Philipp Zabel <p.zabel@pengutronix.de>
3030
3031         * gst/vaapi/gstvaapivideobufferpool.c:
3032           vaapivideobufferpool: always update/release the underlying surface proxy
3033           gst_vaapi_video_buffer_pool_reset_buffer() is called when the sink
3034           releases the last reference on an exported DMA buffer. This should
3035           release the underlying surface proxy. To avoid releasing the wrong
3036           surface due to a stale surface proxy reference in the buffer's
3037           GstVaapiVideoMeta, always update the reference to the correct surface
3038           in gst_vaapi_video_buffer_pool_acquire_buffer().
3039
3040 2020-01-23 16:56:44 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3041
3042         * gst-libs/gst/vaapi/gstvaapicontext.c:
3043         * gst-libs/gst/vaapi/gstvaapicontext.h:
3044         * gst-libs/gst/vaapi/gstvaapisurface.c:
3045         * gst-libs/gst/vaapi/gstvaapisurface.h:
3046           libs: context: select vaCreateSurfaces version according attributes
3047           This commit tries to centralize the selection of vaCreateSurfaces
3048           version, instead of having fallbacks everywhere.
3049           These fallbacks are hacks, added because new drivers use the latest
3050           version of vaCreateSurfaces (with surface attributes) [1], meanwhile
3051           old drivers (or profiles as JPEG decoder in i965) might rather use the
3052           old version.
3053           In order to select which method, there's detected hack: each config
3054           context has a list of valid formats, in the case of JPEG decoder the
3055           list only contains "rare" 4:2:2 formats (ICM3, GRAY8) which aren't
3056           handled correctly by the current gstreamer-vaapi code [2].
3057           The hack consist in identify if the format list contains an arbitrary
3058           preferred format (which is suposedly well supported by
3059           gstreamer-vaapi, mostly NV12). If no prefered colour format is found,
3060           the the old version of vaCreateSurfaces is used, and the surfaces wil
3061           be mapped into a image with their own color format.
3062           1. https://bugzilla.gnome.org/show_bug.cgi?id=797143
3063           2. https://bugzilla.gnome.org/show_bug.cgi?id=797222
3064
3065 2020-01-21 19:35:02 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3066
3067         * gst-libs/gst/vaapi/gstvaapicontext.c:
3068           libs: context: add debug category for context
3069
3070 2020-01-22 20:20:30 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3071
3072         * gst-libs/gst/vaapi/gstvaapiblend.c:
3073           libs: blend: guard VA_BLEND_GLOBAL_ALPHA
3074
3075 2020-01-21 14:09:33 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3076
3077         * gst/vaapi/gstvaapiencode_h264.c:
3078           vaapiencode: promote info to warning
3079           Let's notify user about using constrained-baseline instead on
3080           requested basline profile.
3081
3082 2019-06-28 15:41:16 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
3083
3084         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
3085         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
3086         * gst/vaapi/gstvaapidecode.c:
3087         * gst/vaapi/gstvaapidecode_props.c:
3088         * gst/vaapi/gstvaapidecode_props.h:
3089           vaapih264dec: Add a property to assume constrained-baseline
3090           When baseline-as-constrained is set, the decoder will expose support
3091           for baseline decoding and assume that the baseline content is
3092           constrained-baseline. This can be handy to decode streams in hardware
3093           that would otherwise not be possible to decode. A lot of baseline
3094           content is in fact constrained.
3095
3096 2020-01-17 16:19:52 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3097
3098         * gst/vaapi/gstvaapiencode_h264.c:
3099         * gst/vaapi/gstvaapipluginutil.c:
3100           vaapih264enc: accept baseline as constrained baseline compatible
3101
3102 2020-01-17 14:24:37 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3103
3104         * gst/vaapi/gstvaapiencode_h264.c:
3105           vaapih264enc: update level in src caps
3106           And, if downstream requests a specific level, the caps are not
3107           negotiated, because there is no mechanism right now to specify a
3108           custom level in the internal encoder.
3109
3110 2020-01-17 17:12:53 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3111
3112         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3113           libs: encoder: h264: document gst_vaapi_encoder_h264_supports_avc()
3114
3115 2020-01-17 13:38:29 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3116
3117         * gst/vaapi/gstvaapiencode_h264.c:
3118           vaapih264enc: force byte-stream if avc isn't supported
3119           Removing the validation in gst_vaapiencode_h264_get_caps() since that
3120           ought be handled in gst_vaapiencode_h264_set_config()
3121
3122 2020-01-08 17:37:22 +0100  Philipp Zabel <p.zabel@pengutronix.de>
3123
3124         * gst/vaapi/gstvaapiencode_h264.c:
3125           vaaph264enc: suppress avc if the driver does not support packed headers
3126           Do not negotiate AVC output if the driver does not support it.
3127
3128 2020-01-08 17:16:35 +0100  Philipp Zabel <p.zabel@pengutronix.de>
3129
3130         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3131         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
3132           libs: encoder: h264: Add gst_vaapi_encoder_h264_supports_avc()
3133           AVC output requires packed header support in the driver.
3134
3135 2020-01-17 13:07:04 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3136
3137         * gst/vaapi/gstvaapiencode_h264.c:
3138           vaapih264enc: intersect the new proposed caps
3139           Instead of just leave to keep the proposed caps, with the best profile
3140           in the allowed caps, is its intersected again.
3141
3142 2020-01-17 12:58:58 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3143
3144         * gst/vaapi/gstvaapiencode_h264.c:
3145           vaapih264enc: propose new profile caps and fixate it
3146           When the available caps doesn't intersect with the allowed caps in the
3147           pipeline, a new caps is proposed rather than just expecting to
3148           iterate.
3149           Later, the intersected caps (profile_caps) is fixated in order to
3150           extract the configuration.
3151
3152 2020-01-17 13:18:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3153
3154         * gst/vaapi/gstvaapiencode_h264.c:
3155           vaapih264enc: common fail for gst_vaapiencode_h264_set_config()
3156           Add a common fail code path for gst_vaapiencode_h264_set_config().
3157
3158 2020-01-17 12:54:21 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3159
3160         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3161           libs: encoder: unref formats array if none
3162           The formats array is always created, in order to keep the logic and
3163           to avoid broken caps, if this formats array doesn't contain any
3164           elements, it has to be unref and the function should return NULL.
3165
3166 2020-01-17 14:22:48 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3167
3168         * gst/vaapi/gstvaapiencode_h264.c:
3169           vaapih264enc: fix log message
3170           Before the log wasn't processed because wrong instance pointer.
3171
3172 2019-06-22 00:44:25 +0800  He Junyan <junyan.he@hotmail.com>
3173
3174         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3175         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3176         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
3177         * gst/vaapi/gstvaapiencode_h265.c:
3178           plugin: encode: Add H265 main-444 profile.
3179           Expose the main-444 profile to h265enc caps, when the upstream
3180           chooses to use VUYA as input, we choose main 4:4:4 profile to encode
3181           the frames.
3182
3183 2020-01-15 19:36:00 +0800  He Junyan <junyan.he@hotmail.com>
3184
3185         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3186           libs: encoder: h265: Consider main-444 profile when encoding.
3187           Add support of main-444 profile for parameter setting and packed header
3188           generation.
3189
3190 2020-01-15 23:04:08 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3191
3192         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3193         * gst-libs/gst/vaapi/gstvaapiencoder.h:
3194         * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3195         * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3196         * gst/vaapi/gstvaapiencode.c:
3197           vaapiencode: DMABuf only if PRIME is available
3198           Add DMABuf capsfeature in encoders' allowed sinkcaps only if PRIME
3199           memory type is available in the VA surface attributes of codec
3200           context.
3201
3202 2020-01-16 09:14:30 +0800  Haihao Xiang <haihao.xiang@intel.com>
3203
3204         * hooks/pre-commit.hook:
3205           Add hooks/pre-commit.hook
3206           meson.build in gstreamer-vaapi requires hooks/pre-commit.hook
3207           Copied and pasted pre-commit.hook from other gstreamer modules to make
3208           sure gstreamer-vaapi follows the same code style
3209
3210 2019-12-26 16:45:51 +0800  He Junyan <junyan.he@hotmail.com>
3211
3212         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3213           libs: encoder: h265: Set encoder paramters base on entrypoint.
3214           When the tune is NONE, we now can choose entrypoint freely. So the
3215           GST_VAAPI_ENCODER_TUNE macro may not return the correct current
3216           entrypoint.
3217           We also delay CTU size calculation after entrypoint has been decided.
3218
3219 2019-12-28 19:18:12 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3220
3221         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3222         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
3223         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
3224         * gst-libs/gst/vaapi/gstvaapicontext.c:
3225         * gst-libs/gst/vaapi/gstvaapicontext.h:
3226         * gst-libs/gst/vaapi/gstvaapidisplay.c:
3227         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3228         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3229         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
3230         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3231         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
3232         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3233         * gst-libs/gst/vaapi/gstvaapifei_objects.c:
3234         * gst-libs/gst/vaapi/gstvaapifei_objects.h:
3235         * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
3236         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3237         * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
3238         * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3239         * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
3240         * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
3241         * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
3242         * gst-libs/gst/vaapi/gstvaapiprofile.c:
3243         * gst-libs/gst/vaapi/gstvaapiprofile.h:
3244         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3245         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
3246         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3247         * gst-libs/gst/vaapi/meson.build:
3248         * gst/vaapi/gstvaapi.c:
3249         * gst/vaapi/gstvaapiencode.c:
3250         * gst/vaapi/gstvaapiencode.h:
3251         * gst/vaapi/gstvaapiencode_h264_fei.c:
3252         * gst/vaapi/gstvaapiencode_h264_fei.h:
3253         * gst/vaapi/gstvaapifeivideometa.c:
3254         * gst/vaapi/gstvaapifeivideometa.h:
3255         * gst/vaapi/meson.build:
3256         * meson.build:
3257         * tests/internal/meson.build:
3258         * tests/internal/test-fei-enc-in.c:
3259         * tests/internal/test-fei-enc-out.c:
3260           Remove all FEI related
3261           FEI encoders are not actively mantained neither tested, and it is
3262           using infrastructure that is changing and FEI is stopping this
3263           effort.
3264           Also it is required to rethink how FEI can be used in GStreamer.
3265
3266 2020-01-14 11:17:49 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3267
3268         * gst/vaapi/gstvaapioverlay.c:
3269           vaapioverlay: ensure sinkpad has current buffer
3270           Use the gst_video_aggregator_pad_has_current_buffer API
3271           to check if the current sinkpad has a queued buffer before
3272           attempting to obtain a input buffer from the base plugin.
3273           If the sinkpad does not have a current buffer, then it is
3274           either not producing them yet (e.g. current time < sinkpad
3275           start time) or it has reached EOS.
3276           Previously, we only handled EOS case.
3277           Example:
3278           gst-launch-1.0 videotestsrc num-buffers=100 \
3279           ! vaapipostproc ! vaapioverlay name=overlay \
3280           ! vaapisink videotestsrc timestamp-offset=1000000000 \
3281           num-buffers=100 ! video/x-raw,width=160,height=120 \
3282           ! overlay.
3283
3284 2020-01-14 18:57:31 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3285
3286         * gst/vaapi/gstvaapioverlay.c:
3287           vaapioverlay: unroll the recursive call
3288           Recursive functions are elegant but dangerous since they might
3289           overflow the stack. It is better to turn them into a list tranversal
3290           if possible, as this case.
3291
3292 2020-01-14 18:46:49 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3293
3294         * gst-libs/gst/vaapi/gstvaapiblend.c:
3295         * gst/vaapi/gstvaapioverlay.c:
3296           vaapioverlay: add minimal documentation
3297
3298 2020-01-14 18:25:11 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3299
3300         * gst-libs/gst/vaapi/gstvaapiblend.c:
3301         * gst-libs/gst/vaapi/gstvaapiblend.h:
3302         * gst/vaapi/gstvaapioverlay.c:
3303           libs: blend: simplify generator API
3304           Instead of using a parent structure that has to be derived by API
3305           consumers, this change propse a simplification by using the common
3306           pattern of GTK of passing a function pointer and user data which will
3307           be passed as its parameter. That user data contains the state and the
3308           function will be called to update that state.
3309
3310 2020-01-10 10:14:38 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3311
3312         * gst-libs/gst/vaapi/gstvaapiblend.c:
3313         * gst-libs/gst/vaapi/gstvaapiblend.h:
3314           libs: blend: remove begin/render/end API
3315           This API was risky and is superseded by the surface
3316           generator (process) API.
3317           Resolves #219
3318
3319 2020-01-10 10:12:36 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3320
3321         * gst/vaapi/gstvaapioverlay.c:
3322           vaapioverlay: use blend surface generator API
3323           See #219
3324
3325 2020-01-10 09:54:30 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3326
3327         * gst-libs/gst/vaapi/gstvaapiblend.c:
3328         * gst-libs/gst/vaapi/gstvaapiblend.h:
3329           libs: blend: add surface generator API
3330           This new API allows the user to call a single method (process)
3331           which handles the [display] lock/unlock logic internally for
3332           them.
3333           This API supersedes the risky begin, render, end API.
3334           It eliminates the need for the user to call a lock method
3335           (process_begin) before processing the input buffers
3336           (process_render) and calling an unlock method (process_end)
3337           afterwards.
3338           See #219
3339
3340 2019-12-23 14:29:08 +0800  He Junyan <junyan.he@hotmail.com>
3341
3342         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3343         * gst-libs/gst/vaapi/gstvaapiencoder.h:
3344         * gst/vaapi/gstvaapiencode.c:
3345         * gst/vaapi/gstvaapiencode.h:
3346         * gst/vaapi/gstvaapiencode_h264.c:
3347         * gst/vaapi/gstvaapiencode_h265.c:
3348           plugin: encode: List all possible profiles to detect input formats.
3349           The current get_profile just return one possible profile for the encode,
3350           which is not enough.  For example, if we want to support HEVC 4:4:4
3351           profile, the input of encode should be VYUA rather than NV12 in HEVC
3352           main profile. So the command line:
3353           gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3354           caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3355           tune=low-power init-qp=30 ! fakesink
3356           can not work because vaapih265enc just report NV12 in sink caps, we need
3357           to specify the profile obviously like:
3358           gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3359           caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3360           tune=low-power init-qp=30 ! capsfilter caps=video/x-h265, \
3361           profile=main-444 ! fakesink
3362           The encode should have the ability to choose the profile based on input
3363           format automatically. If the input video format is VUYA, the main-444
3364           profile should be auto choosed.
3365           We modify to let get_allowed_profiles of each encode sub class to return
3366           an array of all supported profiles based on downstream's allowed caps, or
3367           return NULL if no valid profiles specified by downstream.
3368           If no allowed profiles found, all profiles which belong to the current
3369           encoder's codec will be the candidates.
3370           The function gst_vaapi_encoder_get_surface_attributes collects the surface's
3371           attributes for that profile list we just get.
3372           So for this case, both NV12 and VUYA should be returned.
3373           TODO: some codec like VP9, need to implement the get_profile() function.
3374
3375 2020-01-08 15:07:36 +0800  He Junyan <junyan.he@hotmail.com>
3376
3377         * gst/vaapi/gstvaapipluginutil.c:
3378         * gst/vaapi/gstvaapipluginutil.h:
3379           plugin: util: add helper function to detect profiles in caps.
3380
3381 2020-01-08 15:04:18 +0800  He Junyan <junyan.he@hotmail.com>
3382
3383         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3384         * gst-libs/gst/vaapi/gstvaapiencoder.h:
3385           libs: encoder: add a helper function to get all supported profiles
3386
3387 2020-01-13 15:34:54 +0900  Seungha Yang <seungha.yang@navercorp.com>
3388
3389         * gst-libs/gst/vaapi/gstvaapidecoder.c:
3390           libs: decoder: Don't unref null object
3391           ** (gst-launch-1.0:9789): CRITICAL **: 15:29:09.330:
3392           gst_vaapi_context_unref: assertion 'context != NULL' failed
3393
3394 2020-01-10 09:26:44 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3395
3396         * gst/vaapi/gstvaapioverlay.c:
3397           plugins: overlay: use proper NULL check on double pointer
3398           Check the address of the variable is not NULL,
3399           not the address of the pointer.
3400
3401 2020-01-08 23:42:21 +0800  He Junyan <junyan.he@hotmail.com>
3402
3403         * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3404           libs: codedbuf: delete a useless field.
3405           The context field in GstVaapiCodedBuffer is not inited correctly
3406           and is never used, just delete it.
3407
3408 2019-12-29 17:57:52 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3409
3410         * gst/vaapi/gstvaapipluginutil.c:
3411           plugins: add iHD driver in whitelist
3412
3413 2020-01-02 21:02:40 +0800  He Junyan <junyan.he@hotmail.com>
3414
3415         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3416           libs: encoder: modify 265 SPS header's profile compatibility flag.
3417           Make the SPS profile compatibility flags more precisely conform to
3418           the HEVC Spec.
3419
3420 2020-01-06 19:39:06 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3421
3422         * tests/check/elements/vaapioverlay.c:
3423           test: vaapioverlay: bail test if not available
3424           vaapioverlay is only registered if the VA driver support the blend
3425           operation.
3426           This patch only executes the test if vaapioverlay is available,
3427           otherwise the test is bail out without raising an error.
3428
3429 2020-01-06 14:53:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3430
3431         * tests/check/elements/vaapioverlay.c:
3432           tests: vaapioverlay: force drm backend
3433
3434 2019-12-22 17:32:19 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3435
3436         * gst-libs/gst/vaapi/gstvaapiblend.c:
3437           libs: blend: update to new mini-object API
3438
3439 2019-11-19 13:48:22 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3440
3441         * tests/check/elements/vaapioverlay.c:
3442         * tests/check/meson.build:
3443           tests: check: add basic vaapioverlay test
3444           Add test_overlay_position test to verify sink_1 input
3445           is overlayed onto sink_0 input at the appropriate
3446           position.
3447
3448 2019-11-14 12:03:57 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3449
3450         * gst/vaapi/gstvaapi.c:
3451         * gst/vaapi/gstvaapioverlay.c:
3452         * gst/vaapi/gstvaapioverlay.h:
3453         * gst/vaapi/meson.build:
3454           plugins: add vaapioverlay plugin
3455           A plugin similar to the base compositor element but
3456           uses VA-API VPP blend functions to accelerate the
3457           overlay/compositing.
3458           Simple example:
3459           gst-launch-1.0 -vf videotestsrc ! vaapipostproc \
3460           ! tee name=testsrc ! queue \
3461           ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 \
3462           name=overlay ! vaapisink testsrc. ! queue ! overlay.
3463
3464 2019-11-14 12:02:19 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3465
3466         * gst-libs/gst/vaapi/gstvaapiblend.c:
3467         * gst-libs/gst/vaapi/gstvaapiblend.h:
3468         * gst-libs/gst/vaapi/meson.build:
3469           libs: add a vaapi blend class
3470           Support for the VA-API VPP blend functions.
3471
3472 2019-11-14 11:54:59 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3473
3474         * gst/vaapi/gstvaapipluginbase.c:
3475         * gst/vaapi/gstvaapipluginbase.h:
3476           plugins: base: add GstVideoAggregator subclass support
3477
3478 2020-01-05 19:32:16 +0800  He Junyan <junyan.he@hotmail.com>
3479
3480         * gst-libs/gst/vaapi/gstvaapiimage.c:
3481           libs: image: init all image fields correctly.
3482
3483 2020-01-06 17:41:53 +0100  Stéphane Cerveau <scerveau@collabora.com>
3484
3485         * gst/vaapi/gstvaapipostproc.c:
3486           doc: fix pipeline typo in vaapipostproc
3487
3488 2020-01-02 21:11:44 +0800  He Junyan <junyan.he@hotmail.com>
3489
3490         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3491           libs: encoder: modify 265 VPS header fields.
3492           vps_base_layer_internal_flag and vps_base_layer_available_flag
3493           have been clearly defined now.
3494
3495 2020-01-01 19:54:13 +0800  He Junyan <junyan.he@hotmail.com>
3496
3497         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
3498           libs: display: fix a resource leak in X11 pixmap format.
3499
3500 2020-01-02 18:00:21 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3501
3502         * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3503         * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3504           libs: utils: delete useless gst_vaapi_profile_caps_append_encoder.
3505
3506 2019-12-30 14:09:17 +0800  He Junyan <junyan.he@hotmail.com>
3507
3508         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3509         * gst-libs/gst/vaapi/gstvaapiencoder.h:
3510         * gst/vaapi/gstvaapiencode.c:
3511           libs: encoder: get surfaces resolution the same time with formats.
3512           We can get all the information about the video format at one shot
3513           when we create the test context for getting the supported formats.
3514           The current way to get the width and height ranges are inefficient,
3515           since it calls the function gst_vaapi_profile_caps_append_encoder()
3516           and it creates another temporal context to detect the resolution
3517           information.
3518           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3519
3520 2019-12-28 17:42:55 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3521
3522         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3523           libs: encoder: vp9: fix code style
3524
3525 2019-12-16 23:19:46 +0800  He Junyan <junyan.he@hotmail.com>
3526
3527         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3528         * gst-libs/gst/vaapi/gstvaapiencoder.h:
3529         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3530         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3531         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3532           libs: encoder: set entrypoint based on tune automatically
3533           Some profile, such as H265_MAIN_444 on new Intel platform, may only
3534           support ENTRYPOINT_SLICE_ENCODE_LP entrypoint. This leads two
3535           problems:
3536           1. We need to specify the tune mode like `vaapih265enc tune=low-power`
3537           every time when we need to use this kind of profile. Or we can not
3538           create the encoder context successfully.
3539           2. More seriously, we set the entrypoint to a fixed value in
3540           init_context_info() and so the create_test_context_config() can not
3541           create the test context for these profile and can not get the
3542           supported video formats, either.
3543           We now change the entrypoint setting based on the tune option of the
3544           encoder. If no tune property provided, we just choose the first
3545           available entrypoint.
3546
3547 2019-12-16 23:19:46 +0800  He Junyan <junyan.he@hotmail.com>
3548
3549         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3550         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3551         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3552         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3553         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3554         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3555         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3556           libs: encoder: set context info profile by encoder
3557           Instead of init_context_info() setting the passed profile, it is
3558           assumed that it has to be set by each encoder.
3559           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3560
3561 2019-12-27 18:49:02 +0100  He Junyan <junyan.he@hotmail.com>
3562
3563         * gst-libs/gst/vaapi/gstvaapicontext.c:
3564         * gst-libs/gst/vaapi/gstvaapiprofile.h:
3565           libs: context: add invalid entrypoint symbol
3566           The symbol GST_VAAPI_ENTRYPOINT_INVALID is just a representation of
3567           zero, which was already used as an invalid value tacitly. This patch
3568           only makes it explicit.
3569           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3570
3571 2019-12-29 01:13:29 +0800  He Junyan <junyan.he@hotmail.com>
3572
3573         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3574           libs: pixmap: Fix a pixmap creation crash.
3575           We use GST_VAAPI_OBJECT_NATIVE_DISPLAY with wrong parameter for x11
3576           pixmap creation, which causes crash if we run the internal test case
3577           of:
3578           test-decode --pixmap
3579
3580 2019-12-22 14:35:18 +0800  He Junyan <junyan.he@hotmail.com>
3581
3582         * gst/vaapi/gstvaapiencode.c:
3583           plugin: encode: set allowed_sinkpad_caps to empty.
3584           We now set encode->allowed_sinkpad_caps to NULL if we fail to get
3585           surfaces formats. This causes two problem:
3586           1. gst_video_encoder_proxy_getcaps use NULL as its caps parameter,
3587           which changes its behavior. It will use encode's sinkpad template
3588           rather than empty caps to do the clip job. So even if we fail to set
3589           allowed_sinkpad_caps, gst_video_encoder_proxy_getcaps can still return
3590           valid caps.
3591           2. We should just set the allowed_sinkpad_caps once. The NULL point
3592           make the ensure_allowed_sinkpad_caps function works again and again.
3593
3594 2019-12-22 15:22:57 +0800  He Junyan <junyan.he@hotmail.com>
3595
3596         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3597           libs: encoder: Add NULL pointer check for context when finalize.
3598           Context may be NULL if pipeline fail in early stage, and the
3599           ensure_context will not be called. Need to add a pointer protection
3600           for it.
3601
3602 2019-12-20 06:38:42 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3603
3604         * gst/vaapi/gstvaapipluginbase.c:
3605           plugins: base: do not reset can_dmabuf
3606           Don't reset the can_dmabuf field.  This restores the
3607           close/reset logic that existed prior to commit
3608           ca2942176b5632e07eebac23336954f9aaf1cb26 in regards to
3609           dmabuf support.
3610           Plugins only call gst_vaapi_plugin_base_set_srcpad_can_dmabuf
3611           once during startup, but may need to reset the other private
3612           fields multiple times during negotiation.  Thus, can_dmabuf
3613           should be exempt from the resets.
3614           Fixes #208
3615
3616 2019-12-06 00:21:12 +0800  He Junyan <junyan.he@hotmail.com>
3617
3618         * gst/vaapi/gstvaapiencode.c:
3619           plugin: encode: Refine encode's sink caps.
3620           The old manner to get the encode's sink caps is not correct.
3621           Such as 264 encode, it gets:
3622           video/x-raw(memory:VASurface),
3623           format=(string){ ENCODED, NV12, I420, YV12, YUY2, UYVY, Y210,
3624           P010_10LE, AYUV, Y410, Y444 }, width=(int)[ 32, 4096 ],
3625           height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3626           video/x-raw(memory:DMABuf), format=(string){ I420, YV12, RGBA },
3627           width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3628           framerate=(fraction)[ 0/1, 2147483647/1 ];
3629           video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3630           height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3631           where the formats for memory:VASurface and memory:DMABuf are superfluous.
3632           All the "I420, YV12, YUY2, UYVY, Y210, RGBA" can not be really used as
3633           input format for encoder.
3634           We should get:
3635           video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3636           height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3637           video/x-raw(memory:VASurface), format=(string){ NV12 },
3638           width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3639           framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf),
3640           format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3641           height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3642           as the correct result.
3643
3644 2019-12-20 08:37:11 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3645
3646         * gst-libs/gst/vaapi/gstvaapidisplay.c:
3647         * gst-libs/gst/vaapi/gstvaapiprofile.h:
3648           libs: display: code clean up
3649
3650 2019-12-12 21:34:21 +0800  He Junyan <junyan.he@hotmail.com>
3651
3652         * gst-libs/gst/vaapi/gstvaapidisplay.c:
3653         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3654         * gst-libs/gst/vaapi/gstvaapiprofile.h:
3655           libs: display: refine the profile/entrypoint map.
3656           The old way make the one config for each profile/entrypoint pair,
3657           which is not very convenient for description the relationship
3658           between them. One profile may contain more than one entrypoints
3659           to within it, so a set like data structure should be more suitable.
3660
3661 2019-12-19 14:19:10 +0100  He Junyan <junyan.he@hotmail.com>
3662
3663         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3664         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
3665         * gst-libs/gst/vaapi/gstvaapicontext.c:
3666         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3667         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3668         * gst-libs/gst/vaapi/gstvaapifilter.c:
3669         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3670         * gst-libs/gst/vaapi/gstvaapisurface.c:
3671         * gst-libs/gst/vaapi/gstvaapisurface.h:
3672         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3673         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
3674         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3675         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3676         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3677         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
3678         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
3679         * gst-libs/gst/vaapi/gstvaapivideopool.c:
3680         * gst-libs/gst/vaapi/gstvaapiwindow.c:
3681         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3682         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3683         * gst/vaapi/gstvaapipluginbase.c:
3684         * gst/vaapi/gstvaapivideomemory.c:
3685         * gst/vaapi/gstvaapivideometa.c:
3686         * gst/vaapi/gstvaapivideometa_texture.c:
3687         * tests/internal/image.c:
3688         * tests/internal/test-filter.c:
3689         * tests/internal/test-surfaces.c:
3690         * tests/internal/test-windows.c:
3691           libs: surface: port to GstMiniObject
3692           GstVaapiMiniObject and GstVaapiObject are deprecated.
3693           This is the first step to remove them by porting GstVaapiSurface as
3694           a GstMiniBuffer descendant.
3695           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3696
3697 2019-12-19 18:26:10 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3698
3699         * gst-libs/gst/vaapi/gstvaapisurface.c:
3700           libs: surface: rename create function names to init
3701           There are several internal functions with 'create' name, but they
3702           don't create any new structure, but rather it initializes that
3703           structure. Renaming those function to reflect better their purpose.
3704
3705 2019-12-19 14:17:34 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3706
3707         * gst-libs/gst/vaapi/gstvaapisurface.c:
3708           libs: surface: use macro accessors
3709
3710 2019-12-19 13:46:09 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3711
3712         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3713           libs: surface: fix internal documentation
3714
3715 2019-12-18 18:00:49 +0100  He Junyan <junyan.he@hotmail.com>
3716
3717         * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3718         * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
3719         * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3720         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3721         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3722         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3723         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3724         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3725         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3726         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3727         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3728         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3729         * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3730         * gst-libs/gst/vaapi/gstvaapivideopool.c:
3731           libs: codedbuffer: port to GstMiniObject
3732           GstVaapiMiniObject and GstVaapiObject are deprecated.
3733           This is the first step to remove them by porting GstVaapiCodedBuffer
3734           as a GstMiniBuffer descendant.
3735           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3736
3737 2019-12-18 12:57:01 +0100  He Junyan <junyan.he@hotmail.com>
3738
3739         * gst-libs/gst/vaapi/gstvaapiimage.c:
3740         * gst-libs/gst/vaapi/gstvaapiimage.h:
3741         * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
3742         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
3743         * gst-libs/gst/vaapi/gstvaapisurface.c:
3744         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3745         * gst-libs/gst/vaapi/gstvaapivideopool.c:
3746         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3747         * gst/vaapi/gstvaapipluginbase.c:
3748         * gst/vaapi/gstvaapivideomemory.c:
3749         * gst/vaapi/gstvaapivideometa.c:
3750         * tests/internal/image.c:
3751         * tests/internal/simple-encoder.c:
3752         * tests/internal/test-fei-enc-in.c:
3753         * tests/internal/test-filter.c:
3754         * tests/internal/test-windows.c:
3755           libs: image: port to GstMiniObject base class
3756           GstVaapiMiniObject and GstVaapiObject are deprecrated. This is the
3757           first step to remove them, by porting GstVaapiImage as a
3758           GstMiniObject.
3759           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3760
3761 2019-09-24 01:01:22 +0800  He Junyan <junyan.he@hotmail.com>
3762
3763         * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3764         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
3765         * gst-libs/gst/vaapi/gstvaapicontext.c:
3766         * gst-libs/gst/vaapi/gstvaapicontext.h:
3767         * gst-libs/gst/vaapi/gstvaapidecoder.c:
3768         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3769         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3770         * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3771           libs: context: port to a plain C structure
3772           The GstVaapiMiniObject is obsolete and we need to replace it. This
3773           patch turns GstVaapiContext into a plain C structure with its own
3774           reference counting mechanism.
3775           Also this patch removes unused overlays attributes.
3776           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3777
3778 2019-12-18 00:40:58 +0800  He Junyan <junyan.he@hotmail.com>
3779
3780         * gst/vaapi/gstvaapiencode_h264.c:
3781         * gst/vaapi/gstvaapiencode_h264_fei.c:
3782         * gst/vaapi/gstvaapiencode_h265.c:
3783         * gst/vaapi/gstvaapiencode_jpeg.c:
3784         * gst/vaapi/gstvaapiencode_mpeg2.c:
3785         * gst/vaapi/gstvaapiencode_vp8.c:
3786         * gst/vaapi/gstvaapiencode_vp9.c:
3787           plugin: encode: change the dmabuf caps to all supported formats.
3788           The encode's dmabuf caps definition is obsolete, it can support
3789           more formats now. Re-define it to include all supported formats
3790           in video format map.
3791
3792 2019-12-17 17:09:37 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3793
3794         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3795           libs: encoder: h264fei: remove unnecessary check
3796           Issue detected by Coverity
3797           `info_to_pack.h264_slice_header` is always allocated by
3798           gst_vaapi_feipak_h264_encode(), thus checking it to free it afterwards
3799           in doesn't make much sense.  But it requires to be free on the error
3800           path.
3801           There may be a null pointer dereference, or else the comparison
3802           against null is unnecessary.
3803           In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3804           pointer comparison already dereference the pointer earlier
3805
3806 2019-12-17 17:05:22 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3807
3808         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3809           libs: encoder: h264fei: remove unnecessary assert
3810           Issue detected by Coverity
3811           An unsigned value can never be negative, so this test will always
3812           evaluate the same way.
3813           In add_slice_headers: An unsigned value can never be less than 0
3814
3815 2019-12-17 16:57:41 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3816
3817         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3818           libs: encoder: h264fei: remove unnecessary check
3819           Issue detected by Coverity
3820           There may be a null pointer dereference, or else the comparison
3821           against null is unnecessary.
3822           In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3823           pointer comparison already dereference the pointer earlier
3824
3825 2019-12-17 16:49:47 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3826
3827         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3828         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3829           libs: encoder: h264fei: don't free memory on stack
3830           Issue detected by Coverity
3831           `info_to_pak` variable in gst_vaapi_encoder_h264_fei_encode() is
3832           declared in the stack, but it is free in
3833           gst_vaapi_feienc_h264_encode() as if declared on the heap.
3834           This patch initializes the structure and removes the free.
3835           A non-heap pointer is placed on the free list, likely causing a crash
3836           later.
3837           In gst_vaapi_encoder_h264_fei_encode: Free of an address-of
3838           expression, which can never be heap allocated.
3839
3840 2019-12-17 13:22:12 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3841
3842         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3843           libs: encoder: h264fei: fix surface leak
3844           Issue detected by Coverity
3845           If the FEI mode is not handled the created resources should be
3846           released and return and error code.
3847           The system resource will not be reclaimed and reused, reducing the
3848           future availability of the resource.
3849           In gst_vaapi_encoder_h264_fei_encode: Leak of memory or pointers to
3850           system resources
3851
3852 2019-12-17 13:09:58 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3853
3854         * tests/check/elements/vaapipostproc.c:
3855           tests: check return calling of gst_navigation_event_parse.*
3856           This issue was detected by Coverity.
3857           If the function returns an error value, the error value may be mistaken
3858           for a normal value.
3859           In cb_mouse_event: Value returned from a function is not checked for
3860           errors before being used
3861
3862 2019-12-16 16:25:02 +0800  He Junyan <junyan.he@hotmail.com>
3863
3864         * gst/vaapi/gstvaapiencode_h264.c:
3865         * gst/vaapi/gstvaapiencode_h264_fei.c:
3866         * gst/vaapi/gstvaapiencode_h265.c:
3867         * gst/vaapi/gstvaapiencode_jpeg.c:
3868         * gst/vaapi/gstvaapiencode_mpeg2.c:
3869         * gst/vaapi/gstvaapiencode_vp8.c:
3870         * gst/vaapi/gstvaapiencode_vp9.c:
3871           plugin: encode: set sink's raw caps to GST_VAAPI_FORMATS_ALL.
3872           Then encode plugin just supports raw formats declared in vaapi video
3873           format map. This modification makes the template caps more precise.
3874
3875 2019-11-14 11:13:51 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3876
3877         * gst/vaapi/gstvaapipluginbase.c:
3878           plugins: base: add GstPad param to internal helper functions
3879           The base plugin public API function implementations determine
3880           which pad should be passed to the internal helper functions.
3881           Currently, only the base plugin static sinkpad and static
3882           srcpad are supported/used.  However, this change enables future
3883           API functions to be added that can accept a pad (i.e. request pad)
3884           from an element subclass (e.g. a GstVideoAggregator subclass).
3885
3886 2019-11-12 12:21:52 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3887
3888         * gst/vaapi/gstvaapipluginbase.c:
3889         * gst/vaapi/gstvaapipluginbase.h:
3890           plugins: base: manage pad-specific data in a single struct
3891           Define a struct (GstVaapiPadPrivate) to encapsulate the
3892           pad-specific data (i.e. buffer pool, allocator, info,
3893           caps, etc.).
3894           Add an interface to retrieve the data struct for a given
3895           pad.
3896           Finally, update the base plugin to use the data struct
3897           throughout the implementation.
3898           This will enable us to easily extend the base plugin in the
3899           future to allow for N-to-1 pad subclasses (e.g. overlay/
3900           composite).
3901
3902 2019-10-29 15:13:44 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3903
3904         * gst/vaapi/gstvaapidecode.c:
3905         * gst/vaapi/gstvaapiencode.c:
3906         * gst/vaapi/gstvaapipluginbase.h:
3907         * gst/vaapi/gstvaapipostproc.c:
3908           plugins: use plugin base macros to access pad specific data
3909           Don't access base struct fields directly since the underlying
3910           definition can change.  Instead, use the accessor macros.
3911
3912 2019-12-03 00:52:45 +0800  He Junyan <junyan.he@hotmail.com>
3913
3914         * gst/vaapi/gstvaapidecode.c:
3915           libs: decoder: Modify decode src's template raw formats
3916           We do not need to maintain a standalone list of decoder's output
3917           template for raw formats and that is easy to make mistake(for
3918           example, the AYVU is wrong in that list, should be VUYA).
3919           Just use GST_VAAPI_FORMATS_ALL to replace the raw formats list for
3920           src template.
3921
3922 2019-12-11 14:11:13 +0800  He Junyan <junyan.he@hotmail.com>
3923
3924         * gst/vaapi/gstvaapipostproc.c:
3925           libs: postproc: Modify src/sink template raw formats
3926           We need to provide more precise template caps for postproc's src
3927           and sink pads. The GST_VIDEO_FORMATS_ALL make all video formats
3928           available which are really superfluous.
3929
3930 2019-12-10 18:40:42 -0300  Thibault Saunier <tsaunier@igalia.com>
3931
3932         * tests/check/elements/vaapipostproc.c:
3933           Do not mix declaration and code
3934
3935 2019-11-03 17:59:01 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3936
3937         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3938           libs: decoder: h265: skip all pictures prior the first I-frame
3939           Don't try to decode until the first I-frame is received within the
3940           currently active sequence. i965 H265 decoder don't show any artifact
3941           but it crashes.
3942           Fixes: #98
3943
3944 2019-11-27 01:44:05 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3945
3946         * gst-libs/gst/vaapi/video-format.c:
3947           libs: video-format: remove dead code
3948
3949 2019-10-31 00:59:34 +0800  He Junyan <junyan.he@hotmail.com>
3950
3951         * gst-libs/gst/vaapi/video-format.c:
3952         * gst-libs/gst/vaapi/video-format.h:
3953         * gst/vaapi/gstvaapipluginutil.h:
3954           libs: video-format: add GST_VAAPI_FORMATS_ALL
3955           GST_VAAPI_FORMATS_ALL collects all declared formats in video-format
3956           as a caps template string, and make them available in caps with
3957           memory:VASurface feature.
3958           Fixes: #199
3959
3960 2019-11-06 22:37:12 +0800  He Junyan <junyan.he@hotmail.com>
3961
3962         * gst-libs/gst/vaapi/video-format.c:
3963         * tests/internal/test-windows.c:
3964           libs: video-format: change GST_VIDEO_FORMAT_AYUV to VUYA.
3965           We only support VUYA format in gst vaapi now, need to correct
3966           the mapping.
3967
3968 2019-10-09 15:13:09 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3969
3970         * tests/check/elements/vaapipostproc.c:
3971           tests: check: vaapipostproc test_orientation_mouse_events
3972           Test that vaapipostproc properly translates mouse events
3973           when using video-direction (orientation).
3974
3975 2019-10-09 10:11:54 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3976
3977         * tests/check/elements/vaapipostproc.c:
3978         * tests/check/meson.build:
3979           tests: check: vaapipostproc test_crop_mouse_events
3980           Test that vaapipostproc properly translates mouse events
3981           when cropping.
3982
3983 2019-10-08 12:20:26 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3984
3985         * meson.build:
3986         * meson_options.txt:
3987         * tests/check/elements/vaapipostproc.c:
3988         * tests/check/meson.build:
3989         * tests/meson.build:
3990           tests: check: initial unit test support
3991           Add minimal unit test toolchain files and a simple
3992           vaapipostproc unit test.
3993
3994 2019-10-08 12:19:06 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3995
3996         * meson.build:
3997         * tests/examples/meson.build:
3998         * tests/examples/test-roi.c:
3999         * tests/examples/test-vaapicontext.c:
4000         * tests/examples/test-vaapipostproc.c:
4001         * tests/examples/test-vaapisink.c:
4002         * tests/internal/codec.c:
4003         * tests/internal/codec.h:
4004         * tests/internal/decoder.c:
4005         * tests/internal/decoder.h:
4006         * tests/internal/image.c:
4007         * tests/internal/image.h:
4008         * tests/internal/meson.build:
4009         * tests/internal/output.c:
4010         * tests/internal/output.h:
4011         * tests/internal/simple-decoder.c:
4012         * tests/internal/simple-encoder.c:
4013         * tests/internal/test-decode.c:
4014         * tests/internal/test-decode.h:
4015         * tests/internal/test-display.c:
4016         * tests/internal/test-fei-enc-in.c:
4017         * tests/internal/test-fei-enc-out.c:
4018         * tests/internal/test-filter.c:
4019         * tests/internal/test-h264.c:
4020         * tests/internal/test-h264.h:
4021         * tests/internal/test-jpeg.c:
4022         * tests/internal/test-jpeg.h:
4023         * tests/internal/test-mpeg2.c:
4024         * tests/internal/test-mpeg2.h:
4025         * tests/internal/test-mpeg4.c:
4026         * tests/internal/test-mpeg4.h:
4027         * tests/internal/test-subpicture-data.c:
4028         * tests/internal/test-subpicture-data.h:
4029         * tests/internal/test-subpicture.c:
4030         * tests/internal/test-surfaces.c:
4031         * tests/internal/test-textures.c:
4032         * tests/internal/test-vc1.c:
4033         * tests/internal/test-vc1.h:
4034         * tests/internal/test-windows.c:
4035         * tests/internal/y4mreader.c:
4036         * tests/internal/y4mreader.h:
4037         * tests/meson.build:
4038           tests: move examples and tests to subfolders
4039           This makes way for adding unit (check) tests.
4040
4041 2019-10-14 01:01:27 +0100  Tim-Philipp Müller <tim@centricular.com>
4042
4043         * .gitmodules:
4044         * Makefile.am:
4045         * autogen.sh:
4046         * common:
4047         * configure.ac:
4048         * git.mk:
4049         * gst-libs/Makefile.am:
4050         * gst-libs/gst/Makefile.am:
4051         * gst-libs/gst/vaapi/Makefile.am:
4052         * gst/Makefile.am:
4053         * gst/vaapi/Makefile.am:
4054         * m4/Makefile.am:
4055         * tests/Makefile.am:
4056         * tests/elements/Makefile.am:
4057           Remove autotools build
4058
4059 2019-10-10 15:26:36 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4060
4061         * gst/vaapi/gstvaapipostproc.c:
4062           vaapipostproc: fix off-by-one coord translations
4063           When translating navigation x,y coordinates for
4064           video-direction, it is necessary to subtract 1
4065           when using the video dimensions to compute the
4066           new x,y coordinates.  That is, a 100x200 image
4067           should map coordinates in x=[0-99],y=[0-199].
4068           This issue was found with unit tests provided
4069           in !182.
4070
4071 2019-10-11 17:34:06 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4072
4073         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
4074           libs: window: x11: Avoid usage of deprecated API
4075
4076 2019-10-11 17:13:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4077
4078         * meson.build:
4079           build: halt meson configuration if no renderer API
4080           We should halt meson configuration if there is no render API
4081           installed (either DRM, Wayland or X11).
4082           That behavior was already in autotools but missed in meson. This patch
4083           brings it back.
4084           Fixes: #196
4085
4086 2019-10-09 12:12:18 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4087
4088         * gst-libs/gst/vaapi/gstvaapifilter.c:
4089           libs: filter: fix default orientation regression
4090           Fix regression introduced in f232f87f7082
4091
4092 2019-10-07 11:53:23 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4093
4094         * gst-libs/gst/vaapi/gstvaapifilter.c:
4095           libs: filter: use OP_DATA_DEFAULT_VALUE macro
4096
4097 2019-10-07 11:39:19 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4098
4099         * gst-libs/gst/vaapi/gstvaapifilter.c:
4100           libs: filter: use macro for returning op default value
4101           The code is essentially the same for getting all op default
4102           values.  Thus, use a macro to help minimize code duplication
4103           and [hopefully] encourage using the same mechanism for all
4104           default getters.
4105
4106 2019-10-07 09:56:37 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4107
4108         * gst-libs/gst/vaapi/gstvaapifilter.c:
4109           libs: filter: query param spec for default scale method
4110           Related: #159
4111
4112 2019-10-07 09:44:06 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4113
4114         * gst-libs/gst/vaapi/gstvaapifilter.c:
4115           libs: filter: query param spec for default skin-tone values
4116           Related: #159
4117
4118 2019-10-02 12:54:52 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4119
4120         * gst-libs/gst/vaapi/gstvaapifilter.c:
4121           libs: filter: query param spec for default video-direction
4122           Related: #159
4123
4124 2019-10-07 10:23:09 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4125
4126         * .gitignore:
4127           add .gitignore
4128
4129 2019-09-05 16:40:52 +0800  Yan Wang <yan.wang@linux.intel.com>
4130
4131         * gst-libs/gst/vaapi/gstvaapifilter.c:
4132         * gst-libs/gst/vaapi/gstvaapifilter.h:
4133         * gst/vaapi/gstvaapipostproc.c:
4134         * gst/vaapi/gstvaapipostproc.h:
4135           vaapipostproc: Use level value for skin-tone-enhancement filter.
4136           Currently the parameter of skin-tone-enhancement filter is forced
4137           to zero. In fact it could be set different value by the user.
4138           So create a new property named as "skin-tone-enhancement-level"
4139           for accepting the used defined parameter value.
4140           At the same time, skin-tone-enhancement is marked as deprecated.
4141           When skin-tone-enhancement-level is set, skin-tone-enhancement
4142           will be ignored.
4143
4144 2019-09-21 13:39:42 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4145
4146         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4147         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4148           libs: decoder: h264, h266: fix g_return_val_if_fail() missuse
4149           g_return_val_fail() documentations says:
4150           If expr evaluates to FALSE, the current function should be
4151           considered to have undefined behaviour (a programmer error).
4152           The only correct solution to such an error is to change the
4153           module that is calling the current function, so that it avoids
4154           this incorrect call.
4155           So it was missused in a couple parts of the H264 and H265 internal
4156           decoders. This patch changes that to plain conditionals.
4157           Also, it was included a couple code-style fixes.
4158
4159 2019-09-23 19:52:20 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4160
4161         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4162         * gst-libs/gst/vaapi/gstvaapiencoder.h:
4163         * tests/simple-encoder.c:
4164         * tests/test-fei-enc-in.c:
4165           libs: encoder: remove gst_vaapi_encoder_{ref,unref}()
4166           Since GstVaapiEncoder is a descendant of of GstObject, there is no
4167           need to keep a custom ref()/unref() methods. This patch deletes them.
4168
4169 2019-09-24 01:03:02 +0800  He Junyan <junyan.he@hotmail.com>
4170
4171         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4172           libs: encoder: correct encoder's ref/unref function.
4173           GstVaapiEncoder now is a standard gstobject and need to use
4174           gst_object_ref/unref functions.
4175
4176 2019-09-19 12:09:20 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4177
4178         * gst/vaapi/gstvaapiencode_h264_fei.c:
4179           gst: encode: h264_fei: remove useless comparison
4180           The expression "len >= 0" is always true since "len"
4181           is an unsigned type.  And it is clear that the writers
4182           intention was not to write "len > 0" since we handle
4183           len == 0 in the ensuing "if (len < 3)" conditional
4184           block.
4185
4186 2019-09-19 11:17:24 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4187
4188         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4189           libs: encoder: h264_fei: fix potential overflow before widen
4190           Found by static analysis. encoder->mb_width * encoder->mb_height
4191           is evaluated using 32-bit arithmetic before widen.  Thus, cast
4192           at least one of these to guint64 to avoid overflow.
4193
4194 2019-09-19 10:56:13 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4195
4196         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4197           libs: encoder: h264_fei: remove dead error condition
4198           Found by static analysis.  The feipak is always null
4199           when we reach the error target.
4200
4201 2019-09-19 10:49:11 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4202
4203         * gst-libs/gst/vaapi/gstvaapiutils.c:
4204           libs: utils: add missing break in switch
4205
4206 2019-09-11 11:56:35 +0800  He Junyan <junyan.he@hotmail.com>
4207
4208         * gst-libs/gst/vaapi/video-format.c:
4209           libs: video-format: Make all YUV format available
4210           The YUV formats have no ambiguity for drivers, so we can add them all.
4211           Some old driver(i965) does not implement full get/put image functions
4212           but can use derive image funtions for the YUV format. It does not
4213           report that kind of formats correctly in image query, but will derive
4214           that YUV format image from surface. The dynamic mapping of YUV format
4215           will block that manner.
4216           Adding more YUV format mapping has no side effect. So considering the
4217           legacy driver conformance, we add all YUV formats mapping statically
4218           and dynamic mapping RBG formats
4219           Fix: #189
4220           Fix: #190
4221
4222 2019-09-18 15:30:03 +1000  Matthew Waters <matthew@centricular.com>
4223
4224         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4225         * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
4226           egl: Fix racyness in display thread creation
4227           Multiple different scenarios could break the display thread creation and
4228           end up blocking waiting for thread o be created.  Fix them all by
4229           correctly waiting for a new boolean to become valid.
4230
4231 2019-09-18 15:29:03 +1000  Matthew Waters <matthew@centricular.com>
4232
4233         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4234           egl: don't advertise a wrapped EGLContext as actually wrapped
4235           It's not actually wrapped as we create a new EGLContext from the passed
4236           in EGLContext.  As a result, the created EGLContext was never destroyed.
4237
4238 2019-09-16 23:28:31 +0800  He Junyan <junyan.he@hotmail.com>
4239
4240         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4241           libs: h264decoder: do not return error for unhandled NAL unit.
4242           Some streams have error data introducing unknown NAL type. There are
4243           also kinds of NAL types we do not want to handle. The old manner will
4244           set a decoder error when encounter this, which cause a latent crash bug.
4245           The decoder may successfully decode the picture and insert it into DPB.
4246           But there are error NAL units after the AU which cause the post unit error
4247           and make that frame dropped. The later output of the picture still want
4248           to ref that frame and crash.
4249           No need to set decoder error when can not recognize or handle the NAL
4250           unit, just skip it and continue.
4251           Fix: #191
4252
4253 2019-09-11 14:32:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4254
4255         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4256         * gst-libs/gst/vaapi/gstvaapiencoder.h:
4257         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4258         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4259         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4260         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4261         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4262         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4263         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4264         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4265         * gst/vaapi/gstvaapiencode.c:
4266           libs: encoders: use GST_PARAM_USER_SHIFT to define internal params
4267           This patch makes use of GST_PARAM_USER_SHIFT to define the internal
4268           param in encoders to decide which parameters to expose. Thus
4269           gstreamer-vaapi will not interfere with any change in GStreamer in the
4270           future.
4271           Also, the internal symbol was change to
4272           GST_VAAPI_PARAM_ENCODER_EXPOSURE to keep the namespacing.
4273
4274 2019-09-09 18:06:51 +0800  He Junyan <junyan.he@hotmail.com>
4275
4276         * gst-libs/gst/vaapi/gstvaapiimage.c:
4277         * gst-libs/gst/vaapi/video-format.c:
4278           libs: Add BGR10A2_LE support for color space conversion.
4279           Fix: #179
4280
4281 2019-08-23 14:41:06 +0800  He Junyan <junyan.he@hotmail.com>
4282
4283         * gst-libs/gst/vaapi/gstvaapisurface.c:
4284           libs: surface: add pointer check for surface_new_from_formats.
4285           The command line:
4286           gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse !
4287           vaapijpegdec !  videoconvert ! video/x-raw,format=I420 ! vaapisink
4288           will crash on i965 driver because of no pointer check.
4289           We now generate the video format map between GST format and VA format
4290           dynamically based on the image format returned by vaQueryImageFormats.
4291           i965 driver does to report image format of 444P and Y800 forcc, while
4292           the jpeg decoder context VASurfaceAttribPixelFormat use them. We can
4293           not recognize these format and pass a NULL pointer to
4294           gst_vaapi_surface_new_from_formats.
4295           We need to add a pointer check here and let the fallback logic handle
4296           this case correctly.
4297           Other drivers work well.
4298
4299 2019-09-07 13:23:01 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4300
4301         * gst-libs/gst/vaapi/gstvaapiutils.c:
4302           libs: utils: guard the VAEntrypointFEI symbol
4303           VAEntrypointFEI appeared in libva 2.0.0 (API version 1.0.0)
4304
4305 2019-09-05 14:48:22 +0800  He Junyan <junyan.he@hotmail.com>
4306
4307         * gst-libs/gst/vaapi/gstvaapidisplay.c:
4308         * gst-libs/gst/vaapi/video-format.c:
4309         * gst-libs/gst/vaapi/video-format.h:
4310           libs: video-format: Refine the video format mapping.
4311           Improve the mapping between va format and gst format. The new map
4312           will be generated dynamically, based on the query result of image
4313           format in VA driver. Also consider the ambiguity of RGB color
4314           format in LSB mode.
4315
4316 2019-04-15 16:51:26 +0100  Philippe Normand <philn@igalia.com>
4317
4318         * gst/vaapi/gstvaapipluginutil.c:
4319           pluginutil: Remove Mesa from drivers white list
4320           The Mesa Gallium driver is poorly tested currently, leading to bad user
4321           experience for AMD users. The driver can be added back to the white list at
4322           runtime using the GST_VAAPI_ALL_DRIVERS environment variable.
4323
4324 2019-07-08 14:18:00 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4325
4326         * gst/vaapi/gstvaapipostproc.c:
4327         * gst/vaapi/gstvaapipostproc.h:
4328         * gst/vaapi/gstvaapipostprocutil.c:
4329           vaapipostproc: allow cropping via properties
4330           Add crop-left, crop-right, crop-top and crop-bottom
4331           properties to vaapipostproc.
4332
4333 2019-08-30 17:31:45 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4334
4335         * gst/vaapi/gstvaapipostproc.c:
4336           vaapipostproc: rotate outbuf and crop meta if forwarding
4337           When forwarding crop meta to downstream, the output
4338           buffer and crop meta need to be rotated, too.
4339           Test:
4340           for i in 90r 180 90l vert horiz ul-lr ur-ll
4341           do
4342           gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4343           ! videocrop top=100 bottom=30 left=40 right=20 \
4344           ! vaapipostproc video-direction=$i \
4345           ! vaapisink & \
4346           gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4347           ! videocrop top=100 bottom=30 left=40 right=20 \
4348           ! vaapipostproc video-direction=$i \
4349           ! identity drop-allocation=true \
4350           ! vaapisink
4351           done
4352
4353 2019-08-30 14:14:30 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4354
4355         * gst/vaapi/gstvaapipostproc.c:
4356           vaapipostproc: fix output buffer WxH for crop meta forwarding
4357           Adding crop meta x,y to w,h only compensates for left,top
4358           cropping.  But we also need to compensate for right,bottom
4359           cropping.
4360           The video meta contains the appropriate w,h (uncropped)
4361           values, so use it instead.
4362           Test:
4363           gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4364           ! videocrop top=50 bottom=30 left=40 right=20 \
4365           ! vaapipostproc ! vaapisink & \
4366           gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4367           ! videocrop top=50 bottom=30 left=40 right=20 \
4368           ! vaapipostproc ! identity drop-allocation=1 \
4369           ! vaapisink
4370
4371 2019-09-04 10:52:51 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4372
4373         * gst/vaapi/gstvaapipostproc.c:
4374           vaapipostproc: handle size and direction together in src events
4375           Mapping a pointer event needs to consider both size and
4376           video-direction operations together, not just one or the other.
4377           This fixes an issue where x,y were not being mapped correctly
4378           for 90r, 90l, ur-ll and ul-lr video-direction. In these directions,
4379           the WxH are swapped and GST_VAAPI_POSTPROC_FLAG_SIZE is set.  Thus,
4380           the first condition in the pointer event handling was entered and
4381           x,y scale factor were incorrectly computed due to srcpad WxH
4382           swap.
4383           This also fixes all cases where both video-direction and scaling
4384           are enabled at the same time.
4385           Test that all pointer events map appropriately:
4386           for i in `seq 0 7`
4387           do
4388           GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4389           ! vaapipostproc video-direction=${i} width=300 \
4390           ! vaapisink
4391           GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4392           ! vaapipostproc video-direction=${i} width=300 height=200 \
4393           ! vaapisink
4394           GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4395           ! vaapipostproc video-direction=${i} height=200 \
4396           ! vaapisink
4397           GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4398           ! vaapipostproc video-direction=${i} \
4399           ! vaapisink
4400           done
4401
4402 2019-08-20 14:22:57 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4403
4404         * gst/vaapi/gstvaapipostproc.c:
4405         * gst/vaapi/gstvaapipostproc.h:
4406           vaapipostproc: advertise crop meta is handled
4407           Advertise to upstream that vaapipostproc can handle
4408           crop meta.
4409           When used in conjunction with videocrop plugin, the
4410           videocrop plugin will only do in-place transform on the
4411           crop meta when vaapipostproc advertises the ability to
4412           handle it.  This allows vaapipostproc to apply the crop
4413           meta on the output buffer using vaapi acceleration.
4414           Without this advertisement, the videocrop plugin will
4415           crop the output buffer directly via software methods,
4416           which is not what we desire.
4417           vaapipostproc will not apply the crop meta if downstream
4418           advertises crop meta handling; vaapipostproc will just
4419           forward the crop meta to downstream.  If crop meta is
4420           not advertised by downstream, then vaapipostproc will
4421           apply the crop meta.
4422           Examples:
4423           1. vaapipostproc will forward crop meta to vaapisink
4424           gst-launch-1.0 videotestsrc \
4425           ! videocrop left=10 \
4426           ! vaapipostproc \
4427           ! vaapisink
4428           2. vaapipostproc will do the cropping
4429           gst-launch-1.0 videotestsrc \
4430           ! videocrop left=10 \
4431           ! vaapipostproc \
4432           ! identity drop-allocation=1 \
4433           ! vaapisink
4434
4435 2019-08-29 18:44:36 +0800  He Junyan <junyan.he@hotmail.com>
4436
4437         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4438           libs: encoder: clean two virtual func in encoder class
4439           set_property and get_default_properties functions are no longer
4440           needed for encoder class.
4441
4442 2019-08-29 18:43:30 +0800  He Junyan <junyan.he@hotmail.com>
4443
4444         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4445         * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4446           libs: encoder: delete old set_property and property enum feienc264
4447
4448 2019-08-29 18:39:27 +0800  He Junyan <junyan.he@hotmail.com>
4449
4450         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4451         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4452           libs: encoder: delete old set_property and property enum in h264 fei
4453
4454 2019-08-29 18:37:58 +0800  He Junyan <junyan.he@hotmail.com>
4455
4456         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4457         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4458           libs: encoder: delete old set_property and property enum in vp9
4459
4460 2019-08-29 18:36:51 +0800  He Junyan <junyan.he@hotmail.com>
4461
4462         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4463         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4464           libs: encoder: delete old set_property and property enum in vp8
4465
4466 2019-08-29 18:35:59 +0800  He Junyan <junyan.he@hotmail.com>
4467
4468         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4469         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4470           libs: encoder: delete old set_property and property enum in mpeg2
4471
4472 2019-08-29 18:34:57 +0800  He Junyan <junyan.he@hotmail.com>
4473
4474         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4475         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4476           libs: encoder: delete old set_property and property enum in jpeg
4477
4478 2019-08-29 18:31:56 +0800  He Junyan <junyan.he@hotmail.com>
4479
4480         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4481         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4482           libs: encoder: delete old set_property and property enum in h265
4483
4484 2019-08-29 18:30:07 +0800  He Junyan <junyan.he@hotmail.com>
4485
4486         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4487         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4488           libs: encoder: delete old set_property and property enum in h264
4489
4490 2019-08-29 18:17:42 +0800  He Junyan <junyan.he@hotmail.com>
4491
4492         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4493         * gst-libs/gst/vaapi/gstvaapiencoder.h:
4494         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4495           libs: encoder: delete EncoderPropInfo related functions
4496
4497 2019-08-29 16:13:19 +0800  He Junyan <junyan.he@hotmail.com>
4498
4499         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4500         * gst-libs/gst/vaapi/gstvaapiencoder.h:
4501           libs: encoder: delete encoder_set_property
4502           We no longer need this obsolete set_property function now after
4503           switch to standard gobject's property manner.
4504           Also delete the old encoder's property enum in the header file.
4505
4506 2019-08-29 15:59:43 +0800  He Junyan <junyan.he@hotmail.com>
4507
4508         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4509         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4510           libs: encoder: delete properties_get_default for base class
4511
4512 2019-08-29 15:52:04 +0800  He Junyan <junyan.he@hotmail.com>
4513
4514         * gst/vaapi/gstvaapiencode.c:
4515         * gst/vaapi/gstvaapiencode.h:
4516           plugin: encode: delete useless init_properties.
4517           Also delete the get_properties function in encode class. We now
4518           use g_object_class_list_properties to get all properties for
4519           internal encoder class.
4520
4521 2019-08-29 15:43:45 +0800  He Junyan <junyan.he@hotmail.com>
4522
4523         * gst/vaapi/gstvaapiencode.c:
4524         * gst/vaapi/gstvaapiencode.h:
4525           plugin: encode: delete set/get_property func in encode class
4526           Use standard gobject's property functions to replace the old way.
4527
4528 2019-08-29 15:31:16 +0800  He Junyan <junyan.he@hotmail.com>
4529
4530         * gst/vaapi/gstvaapiencode.c:
4531         * gst/vaapi/gstvaapiencode.h:
4532           plugin: encode: delete gst_vaapiencode_init_properties
4533           No need to init the properties got by get_default_properties func
4534           now. The properties are inited correctly in internal encoder class.
4535
4536 2019-08-29 15:19:10 +0800  He Junyan <junyan.he@hotmail.com>
4537
4538         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4539           libs: encoder: delete 3 useless init macro
4540
4541 2019-08-29 15:16:26 +0800  He Junyan <junyan.he@hotmail.com>
4542
4543         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4544         * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4545           libs: encoder: delete get_default_properties of feienc
4546
4547 2019-08-29 15:14:14 +0800  He Junyan <junyan.he@hotmail.com>
4548
4549         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4550         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4551           libs: encoder: delete get_default_properties of H264 Fei
4552
4553 2019-08-29 15:07:17 +0800  He Junyan <junyan.he@hotmail.com>
4554
4555         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4556         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4557           libs: encoder: delete get_default_properties of VP9
4558
4559 2019-08-29 15:06:25 +0800  He Junyan <junyan.he@hotmail.com>
4560
4561         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4562         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4563           libs: encoder: delete get_default_properties of VP8
4564
4565 2019-08-29 15:03:52 +0800  He Junyan <junyan.he@hotmail.com>
4566
4567         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4568         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4569           libs: encoder: delete get_default_properties of MPEG2
4570
4571 2019-08-29 15:03:19 +0800  He Junyan <junyan.he@hotmail.com>
4572
4573         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4574         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4575           libs: encoder: delete get_default_properties of JPEG
4576
4577 2019-08-30 19:15:38 +0800  He Junyan <junyan.he@hotmail.com>
4578
4579         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4580         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4581           libs: encoder: delete get_default_properties of H265
4582
4583 2019-08-29 14:59:12 +0800  He Junyan <junyan.he@hotmail.com>
4584
4585         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4586         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4587           libs: encoder: delete get_default_properties of H264
4588
4589 2019-08-29 14:53:59 +0800  He Junyan <junyan.he@hotmail.com>
4590
4591         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4592           libs: encoder: delete the useless constructed func for encoder.
4593
4594 2019-08-26 23:16:33 +0800  He Junyan <junyan.he@hotmail.com>
4595
4596         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4597         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4598         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4599           libs: encoder: implement get_view_ids for h264 encoder.
4600
4601 2019-08-20 23:56:33 +0800  He Junyan <junyan.he@hotmail.com>
4602
4603         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4604         * gst/vaapi/gstvaapiencode.c:
4605         * gst/vaapi/gstvaapiencode_h264.c:
4606         * gst/vaapi/gstvaapiencode_h264_fei.c:
4607         * gst/vaapi/gstvaapiencode_h265.c:
4608         * gst/vaapi/gstvaapiencode_jpeg.c:
4609         * gst/vaapi/gstvaapiencode_mpeg2.c:
4610         * gst/vaapi/gstvaapiencode_vp8.c:
4611         * gst/vaapi/gstvaapiencode_vp9.c:
4612           gst: encode: enable new type of property mechanism.
4613
4614 2019-08-20 22:16:35 +0800  He Junyan <junyan.he@hotmail.com>
4615
4616         * gst/vaapi/gstvaapiencode.c:
4617         * gst/vaapi/gstvaapiencode.h:
4618           gst: encode: add property help functions for encoder properties.
4619           The encoder is a true gstobject now and all the properties are using
4620           gobject's properties mechanism. Add help functions to handle the properties
4621           between encode and encoder class.
4622           The basic idea is mapping the same property between encoder and encode. All
4623           the encoder's properties will have the same name, the same type in encode.
4624           The set/get property function just forward the property setting/getting to
4625           the encoder using the same property name and value. Because the encoder is
4626           created on needed, we need to cache the property setting in encode.
4627
4628 2019-08-30 18:39:32 +0800  He Junyan <junyan.he@hotmail.com>
4629
4630         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4631         * gst-libs/gst/vaapi/gstvaapiencoder.h:
4632         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4633         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4634         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4635         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4636         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4637         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4638         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4639         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4640           libs: encoder: add flags to all encoder properties.
4641           G_PARAM_CONSTRUCT make all properties init correctly, we do not
4642           need to init the properties manually.
4643           G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific
4644           flag, means need to expose the property to according encode class.
4645
4646 2019-08-20 17:00:39 +0800  He Junyan <junyan.he@hotmail.com>
4647
4648         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4649           libs: encoder: Add properties for h264 encoder fei.
4650           Install properties for h264 encoder fei class. Also set the new get/set
4651           property functions for gobject class. Still use the old properties
4652           way now and this new feature will be enabled later.
4653
4654 2019-08-20 15:58:30 +0800  He Junyan <junyan.he@hotmail.com>
4655
4656         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4657           libs: encoder: Add properties for h264 fei encoder.
4658           Install properties for h264 fei encoder class. Also set the new get/set
4659           property functions for gobject class. Still use the old properties
4660           way now and this new feature will be enabled later.
4661
4662 2019-08-20 15:29:27 +0800  He Junyan <junyan.he@hotmail.com>
4663
4664         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4665           libs: encoder: Add properties for vp9 encoder.
4666           Install properties for vp9 encoder class. Also set the new get/set
4667           property functions for gobject class. Still use the old properties
4668           way now and this new feature will be enabled later.
4669
4670 2019-08-20 15:01:02 +0800  He Junyan <junyan.he@hotmail.com>
4671
4672         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4673           libs: encoder: Add properties for vp8 encoder.
4674           Install properties for vp8 encoder class. Also set the new get/set
4675           property functions for gobject class. Still use the old properties
4676           way now and this new feature will be enabled later.
4677
4678 2019-08-20 14:31:58 +0800  He Junyan <junyan.he@hotmail.com>
4679
4680         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4681           libs: encoder: Add properties for mpeg2 encoder.
4682           Install properties for mpeg2 encoder class. Also set the new get/set
4683           property functions for gobject class. Still use the old properties
4684           way now and this new feature will be enabled later.
4685
4686 2019-08-20 14:53:06 +0800  He Junyan <junyan.he@hotmail.com>
4687
4688         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4689           libs: encoder: Add properties for jpeg encoder.
4690           Install properties for jpeg encoder class. Also set the new get/set
4691           property functions for gobject class. Still use the old properties
4692           way now and this new feature will be enabled later.
4693
4694 2019-08-20 14:12:36 +0800  He Junyan <junyan.he@hotmail.com>
4695
4696         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4697           libs: encoder: Add properties for h265 encoder.
4698           Install properties for h265 encoder class. Also set the new get/set
4699           property functions for gobject class. Still use the old properties
4700           way now and this new feature will be enabled later.
4701
4702 2019-08-20 01:33:40 +0800  He Junyan <junyan.he@hotmail.com>
4703
4704         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4705           libs: encoder: Add properties for h264 encoder.
4706           Install properties for h264 encoder class. Also set the new get/set
4707           property functions for gobject class. Still use the old properties
4708           way now and this new feature will be enabled later.
4709
4710 2019-08-19 15:38:09 +0800  He Junyan <junyan.he@hotmail.com>
4711
4712         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4713           libs: encoder: add properties and prop help functions
4714           Add all common properties to encoder base class. rate-control and
4715           tune are moved to sub class.
4716
4717 2019-08-29 14:38:49 +0800  He Junyan <junyan.he@hotmail.com>
4718
4719         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4720         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4721           libs: encoder: delete useless gst_vaapi_encoder_new func.
4722           GstVaapiEncoder is a abstract gobject and never be created directly.
4723
4724 2019-07-27 00:55:53 +0800  He Junyan <junyan.he@hotmail.com>
4725
4726         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4727         * gst-libs/gst/vaapi/gstvaapiencoder.h:
4728         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4729         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4730         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4731         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4732         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4733         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4734         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4735         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4736         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4737         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4738         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4739         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4740         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4741         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4742         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4743         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4744         * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4745           lib: encoder: gstobjectfy all vaapi encoders.
4746           Replace all gstvaapiobject in vaapi encoders with standard gstobject.
4747           Let the gstobject common logic to handle all the init and finalize
4748           works. But the property install/set/get still use the old way, need
4749           to be improved later.
4750
4751 2019-08-29 12:11:36 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4752
4753         * gst/vaapi/gstvaapipostproc.c:
4754           vaapipostproc: check for filter before appending caps
4755           While ensuring the allowed sink pad caps, the filter attributes set
4756           the frame size restriction, but it is not ensured, at that moment,
4757           that the filter is already instantiaded.
4758           In order to silence the glib logs, this patch add only calls
4759           gst_vaapi_filter_append_caps() if the filter is instantiated.
4760
4761 2019-08-28 12:49:03 -0400  Thibault Saunier <tsaunier@igalia.com>
4762
4763         * gst/vaapi/gstvaapidecodebin.c:
4764           Classify vaapidecodebin as a hardware decoder
4765
4766 2019-08-27 18:12:45 +0800  He Junyan <junyan.he@hotmail.com>
4767
4768         * gst/vaapi/gstvaapipostproc.c:
4769           libs: postproc: fix a memory leak point.
4770           filter_ops and filter_formats should already have valid value when
4771           the function gst_vaapipostproc_ensure_filter_caps re-enter
4772
4773 2019-08-27 01:30:36 +0800  He Junyan <junyan.he@hotmail.com>
4774
4775         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4776           libs: util: Fix a memory leak in config_surface_attributes_get
4777
4778 2019-08-22 14:33:54 +0800  Wangfei <fei.w.wang@intel.com>
4779
4780         * gst/vaapi/gstvaapidecode.c:
4781           vaapidecode: support transform ROI meta
4782           This will benefit the use case like:
4783           src --->   encode    ---> decode ---> circle ROI ---> sink
4784           |                |
4785           --> analyse to -->
4786           get ROI
4787
4788 2019-08-23 19:10:15 +0200  Mathieu Duponchelle <mathieu@centricular.com>
4789
4790         * gst/vaapi/gstvaapidecodedoc.c:
4791           docstrings: port ulinks to markdown links
4792
4793 2019-08-20 17:05:14 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4794
4795         * gst-libs/gst/vaapi/Makefile.am:
4796         * gst-libs/gst/vaapi/gstvaapicontext.c:
4797         * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
4798         * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
4799         * gst-libs/gst/vaapi/meson.build:
4800           libs: remove context's overlay
4801           The context overlay was an optimization to apply a video composition
4802           to all the surfaces bound to a context.
4803           But since commit 18031dc6 this optimization was disabled, so it is
4804           better just get rid of it.
4805
4806 2019-08-20 16:50:46 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4807
4808         * gst-libs/gst/vaapi/gstvaapicontext.c:
4809         * gst-libs/gst/vaapi/gstvaapisurface.c:
4810         * gst-libs/gst/vaapi/gstvaapisurface.h:
4811         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
4812         * gst/vaapi/gstvaapipluginutil.c:
4813         * tests/test-subpicture.c:
4814           libs: remove surface's parent context
4815           In commit 18031dc6 surface's parent context is not assigned because of
4816           circular references. Since then (2013), there's has no issue with
4817           subpictures attached to a context, the current only users of this API.
4818           This patch cleans up all of related code with the unused surface's
4819           parent context.
4820
4821 2019-08-18 13:53:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4822
4823         * gst/vaapi/gstvaapidecode.c:
4824           vaapidecode: guard if no structure is available in caps
4825
4826 2019-08-18 13:53:19 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4827
4828         * gst-libs/gst/vaapi/gstvaapifilter.c:
4829         * gst-libs/gst/vaapi/gstvaapifilter.h:
4830         * gst/vaapi/gstvaapipostproc.c:
4831           vaapipostproc: append frame size restrictions in caps
4832
4833 2019-08-18 13:09:58 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4834
4835         * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4836           libs: profilecaps: refactor common code
4837
4838 2019-08-16 19:35:58 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4839
4840         * gst/vaapi/gstvaapiencode.c:
4841           vaapiencode: set frame size restrictions in caps
4842           Fixes: #12
4843
4844 2019-08-16 19:28:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4845
4846         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4847         * gst-libs/gst/vaapi/gstvaapiencoder.h:
4848         * gst/vaapi/gstvaapiencode.c:
4849           vaapiencode: enhance how the profile is defined
4850           This code doesn't define the profile used by the internal encoder, but
4851           it used to "predict" which is going to be used and to get the caps
4852           restrictions.
4853           Before the profile was predicted by checking the donwstream caps, but
4854           sometimes they are not defined, setting an unknown profile. In order
4855           to enhances this situation, the encoder asks to internal encoder if it
4856           has one. If so, it is used.
4857           To ask the internal encoder's profile a new accessor function was
4858           added: gst_vaapi_encoder_get_profile()
4859
4860 2019-08-16 19:26:36 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4861
4862         * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4863         * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4864           libs: profilecaps: defines gst_vaapi_profile_caps_append_encoder()
4865           Previously it was just a boilerplate. Now it is real implementation.
4866
4867 2019-08-16 19:17:48 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4868
4869         * gst-libs/gst/vaapi/gstvaapiutils.c:
4870           libs: utils: treat va_rt_format as bitwise flag
4871           The return value of vaGetConfigAttributes() of VAConfigAttribRTFormat
4872           is a bitwise flag with *all* the supported chroma types.
4873           Previously it was assumed that the return value was a single value,
4874           thus when returning the GST_VAAPI_CHROMA_TYPE_XXX the code was a
4875           simple case. But it is wrong.
4876           This patch changes the case block with a sequence of ifs testing the
4877           bitwise. For now we assume a "priority" list in the testing sequence.
4878
4879 2019-08-16 18:07:43 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4880
4881         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4882         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4883         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4884         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4885         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4886         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4887         * gst-libs/gst/vaapi/gstvaapiprofile.c:
4888         * gst-libs/gst/vaapi/gstvaapiprofile.h:
4889         * tests/test-display.c:
4890           libs: profile: add gst_vaapi_profile_get_va_name()
4891           gst_vaapi_profile_get_name() returns a proper name for
4892           GstCaps. Nonetheless, there are many profiles which don't have a name
4893           representation for that realm.
4894           gst_vaapi_profile_get_va_name() returns the name of the profile
4895           according to its VAProfile name.
4896           This new funtion is used in the encoder error message.
4897
4898 2019-08-05 19:47:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4899
4900         * gst-libs/gst/vaapi/Makefile.am:
4901         * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4902         * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4903         * gst-libs/gst/vaapi/meson.build:
4904         * gst/vaapi/gstvaapidecode.c:
4905           libs: profilecaps: move caps config into a new file
4906           Implement all the appending of frame size restrictions in caps, for
4907           encoders and decoders, in a new source file.
4908
4909 2019-08-05 19:45:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4910
4911         * gst-libs/gst/vaapi/gstvaapidecoder.c:
4912           libs: decoder: ref the caps as property
4913
4914 2019-08-02 16:56:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4915
4916         * gst-libs/gst/vaapi/gstvaapicontext.c:
4917         * gst-libs/gst/vaapi/gstvaapicontext.h:
4918           libs: context: add gst_vaapi_context_get_surface_attributes()
4919           This function copies the surface attributes from the context's object
4920           to the caller.
4921
4922 2019-08-02 12:46:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4923
4924         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
4925         * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
4926         * gst-libs/gst/vaapi/gstvaapiutils.c:
4927         * gst-libs/gst/vaapi/gstvaapiutils.h:
4928           libs: move memory types conversions to gstvaapiutils
4929           And add more supported memory types by current VA.
4930
4931 2019-08-01 19:48:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4932
4933         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4934         * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4935           libs: utils: remove unused function gst_vaapi_get_surface_formats()
4936
4937 2019-08-01 19:46:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4938
4939         * gst-libs/gst/vaapi/gstvaapicontext.c:
4940         * gst-libs/gst/vaapi/gstvaapicontext.h:
4941         * gst-libs/gst/vaapi/gstvaapifilter.c:
4942           libs: context, filter: use new surface attributes API
4943
4944 2019-08-01 19:13:39 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4945
4946         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4947         * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4948           libs: utils: add gst_vaapi_config_surface_attributes_get()
4949           To extract the surface restrictions per config using a new structure:
4950           GstVaapiConfigSurfaceAttributes
4951
4952 2019-07-31 13:08:43 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4953
4954         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4955           Split the surface attribute retrieval
4956
4957 2019-07-15 21:51:46 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4958
4959         * gst/vaapi/gstvaapipostproc.c:
4960           vaapipostproc: handle navigation downstream event
4961           When navigation events contains coordiantes those have to be mapped
4962           to the new size and/or orientation.
4963
4964 2019-07-15 21:23:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4965
4966         * tests/elements/test-vaapisink.c:
4967           test-vaapisink: also use vaapipostproc to change orientation
4968
4969 2019-07-15 21:27:20 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4970
4971         * gst-libs/gst/vaapi/gstvaapifilter.c:
4972         * gst-libs/gst/vaapi/gstvaapifilter.h:
4973         * gst/vaapi/gstvaapipostproc.c:
4974         * gst/vaapi/gstvaapipostproc.h:
4975         * gst/vaapi/gstvaapipostprocutil.c:
4976           vaapipostproc: handle image-orientation upstream event
4977           Now that vaapipostproc can possible handle video-direction, it
4978           should also handle the image-orientation event from upstream if
4979           video-direction property is set to auto.
4980
4981 2019-07-26 22:09:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4982
4983         * gst/vaapi/gstvaapipostproc.c:
4984           vaapipostproc: add missing locks when adding flags
4985
4986 2019-07-26 22:05:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4987
4988         * gst/vaapi/gstvaapipostproc.c:
4989           vaapipostproc: update filter before fixate caps
4990           It is requiered to know if postproc is capable to change the video
4991           direction before fixating the source caps.
4992           In order to do it, it'ss required to know if there's a functional VPP,
4993           but that's checked at create() vmethod, which occurs after caps
4994           fixating.
4995           This patch checks for a functional VPP at fixate caps and, if so,
4996           checks for the enabled filtes and later do the caps fixations.
4997
4998 2019-07-26 19:46:09 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4999
5000         * gst-libs/gst/vaapi/gstvaapifilter.c:
5001         * gst-libs/gst/vaapi/gstvaapivalue.c:
5002         * gst-libs/gst/vaapi/gstvaapivalue.h:
5003         * gst/vaapi/gstvaapipostproc.c:
5004           vaapipostproc: element warning if video direction is unsupported
5005           If the video direction is unsupported by the driver, an element
5006           warning is posted in the bus to notify the application.
5007           gst_vaapi_enum_type_get_nick() was added in the library thus it can
5008           be used elsewhere. It retrives the nick from an enum gtype.
5009
5010 2019-07-26 19:09:54 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5011
5012         * gst-libs/gst/vaapi/gstvaapifilter.c:
5013           libs: filter: check mirror and rotation caps only once
5014           This patch locks the display before querying the pipeline caps and
5015           stores the mirror and rotation capabilities, thus they are not queried
5016           every time the video direction is set.
5017
5018 2019-08-16 19:51:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5019
5020         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5021           libs: encoder: vp9: set VP9_0 profile as default
5022           Commit 0afc8131 introduced a regression and only NV12 format were
5023           admitted, failing in any other valid color format.
5024           This patch sets the profile to GST_VAAPI_PROFILE_VP9_0 by default.
5025
5026 2019-08-16 13:25:06 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5027
5028         * gst-libs/gst/vaapi/gstvaapifilter.c:
5029           libs: filter: fail if first color balance value is invalid
5030
5031 2019-08-06 19:24:08 +0800  Yan Wang <yan.wang@linux.intel.com>
5032
5033         * gst-libs/gst/vaapi/gstvaapifilter.c:
5034         * gst-libs/gst/vaapi/gstvaapiutils.c:
5035         * gst-libs/gst/vaapi/gstvaapiutils.h:
5036           libs: filter: set all color balance values
5037           When set multiple settings of color balance like hue, saturation,
5038           brightness and contrast for vaapipostproc, they should be set as
5039           parameters of color balance filter, at the same color balance
5040           filter calling.
5041           Otherwise, multiple color balance filter calling will cause
5042           previous setting get reset by the last calling with default value.
5043           Fixes #182.
5044           Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
5045
5046 2019-08-16 11:02:08 +0800  Wangfei <fei.w.wang@intel.com>
5047
5048         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5049           libs: h265dec: remove limitation of get iq matrix
5050           According hevc spec, scaling_list_data is not related
5051           to chroma_format_idc.
5052
5053 2019-05-30 23:52:51 +0800  He Junyan <junyan.he@hotmail.com>
5054
5055         * gst-libs/gst/vaapi/gstvaapivideopool.c:
5056           libs: videopool: fix undocumented behavior and counting
5057           gst_vaapi_video_pool_reserve_unlocked() hit an undocumented behavoir
5058           because it locks twice the same mutex.
5059           Also, n had different meanings in the current code: as an increase
5060           value and as a new total of allocated surfaces.
5061           This patche removes the undocumented behavoir (usually a deadlock) and
5062           fixes the meaning of n as the new total of allocated surfaces.
5063           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5064
5065 2019-07-17 11:56:45 +0800  He Junyan <junyan.he@hotmail.com>
5066
5067         * gst-libs/gst/vaapi/gstvaapiutils.c:
5068           libs: utils: Add missing entries for string_of_VAEntrypoint.
5069
5070 2019-07-18 22:01:01 +0800  He Junyan <junyan.he@hotmail.com>
5071
5072         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5073           libs: encoder: Consider vp9 profiles based on input format.
5074           Only support GST_VAAPI_PROFILE_VP9_0 and GST_VAAPI_PROFILE_VP9_2 now.
5075           Fix: #184
5076
5077 2019-08-12 18:41:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5078
5079         * gst/vaapi/gstvaapivideomemory.c:
5080           vaapivideomemory: demote error message to info
5081           The main reason to demote the message's level is because it is not an
5082           error, it's a possible output of the trial and there's a code path
5083           that handles it.
5084           Secondly, it's very annoying when using gallium driver for radeon.
5085
5086 2019-07-18 13:32:46 +0800  Wangfei <fei.w.wang@intel.com>
5087
5088         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5089         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5090         * gst-libs/gst/vaapi/gstvaapitypes.h:
5091         * gst-libs/gst/vaapi/gstvaapiutils.c:
5092         * gst-libs/gst/vaapi/gstvaapivalue.c:
5093           libs: encoder: h264: support ICQ/QVBR bitrate control mode
5094           ICQ is Intelligent Constant Quality. It will use the initial QP
5095           vaule of icq-quality-factor to adjust QP at MB level intelligently
5096           to improve subjective quality.
5097           QVBR is Quality defined VBR. It will use qvbr-quality-factor to
5098           adjust QP for each MB to get enough quality picture without waste
5099           of bits.
5100
5101 2019-08-05 10:51:24 +0800  Wangfei <fei.w.wang@intel.com>
5102
5103         * gst-libs/gst/vaapi/gstvaapitypes.h:
5104           libs: Let GST_VAAPI_RATECONTROL_MASK return unsigned int
5105           The value return from GST_VAAPI_RATECONTROL_MASK will be used by
5106           GST_VAAPI_POPCOUNT32 as its inpput. GST_VAAPI_POPCOUNT32 can only
5107           deal with unsigned int. Otherwise there may be an error of out of
5108           range of integer if we define few more rate-control mode.
5109
5110 2019-06-07 09:54:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5111
5112         * gst/vaapi/gstvaapidecodebin.c:
5113           vaapidecodebin: set queue's max size buffers to 1
5114           Otherwise the queue will swallow all the available decoder's surfaces
5115           reaching a dead-lock.
5116           This setting might impact the bin's peformance, but it's a trade-off.
5117
5118 2019-06-07 09:53:08 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5119
5120         * gst/vaapi/gstvaapidecodebin.c:
5121           vaapidecodebin: set properties default values
5122
5123 2019-05-31 13:12:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5124
5125         * gst/vaapi/gstvaapidecode.c:
5126           vaapidecode: don't error if can't push buffers downtream
5127           When the code path goes to push buffers downstream when no surface
5128           available in decoder context, and it fails the code bails out with a
5129           fatal error.
5130           That behavior is wrong, since it shouldn't be fatal. The use case is
5131           when the video stream is disabled.
5132           This patch just ignores the errors in this situation and demotes the
5133           level of a log message.
5134
5135 2019-05-18 13:24:35 +0800  Wangfei <fei.w.wang@intel.com>
5136
5137         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5138         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5139         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5140         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
5141         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5142         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
5143           libs: encoder: h264,h265: add new property "max-qp"
5144           Add new property "max-qp" to allow set the maximum quantisation
5145           parameter values.
5146
5147 2019-05-23 10:18:52 -0400  Wangfei <fei.w.wang@intel.com>
5148
5149         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5150           libs: encoder: vp9: add low power mode encode
5151           By now, this feature only support by media-driver on Ice Lake
5152           platform, more information you can reference:
5153           https://github.com/intel/media-driver
5154
5155 2019-07-15 15:33:07 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5156
5157         * gst/vaapi/gstvaapipostprocutil.c:
5158           vaapipostproc: update PAR when rotating
5159           When rotating, swap pixel-aspect-ratio during
5160           negotiation.
5161           Fixes #181
5162
5163 2019-07-01 15:26:18 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5164
5165         * gst-libs/gst/vaapi/gstvaapifilter.c:
5166         * gst-libs/gst/vaapi/gstvaapiutils.c:
5167         * gst-libs/gst/vaapi/gstvaapiutils.h:
5168         * gst/vaapi/gstvaapipostprocutil.c:
5169           vaapipostproc: add rotation support
5170           Adds vpp rotation support to vaapipostproc.  Uses
5171           property video-direction. Default is identity (no
5172           rotation).
5173           Closes #104
5174
5175 2019-05-22 10:47:30 -0400  Wangfei <fei.w.wang@intel.com>
5176
5177         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5178           libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver
5179           Intel media-driver requires enablement of diff_cu_qp_delta_depth when
5180           cu_qp_delta_enabled_flag enabled.
5181           Fixes: #177
5182
5183 2019-07-01 17:02:33 +0800  Wangfei <fei.w.wang@intel.com>
5184
5185         * gst-libs/gst/vaapi/gstvaapiutils.c:
5186           libs: encoder: Add MB ratecontrol mode to get its string
5187
5188 2019-07-01 16:52:00 +0800  Wangfei <fei.w.wang@intel.com>
5189
5190         * gst-libs/gst/vaapi/gstvaapiutils.c:
5191           libs: encoder: refine guard of bitrate control mode
5192           Remove useless guard of all bitrate control mode's guard except MB
5193           which is define in VA-API version 0.39.1.
5194
5195 2019-06-29 00:08:40 +1000  Jan Schmidt <jan@centricular.com>
5196
5197         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5198           h264: Update for parse_vui_params parameter removal.
5199           Update calls to the h264 parser lib for removal of the
5200           parse_vui_params parameter.
5201
5202 2019-06-24 16:26:56 -0400  Wang Zhanjun <zhanjunx.wang@intel.com>
5203
5204         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5205           libs: dec: vp9: do not use display size as decoded size
5206           If display size is smaller than current frame size, then the crop size
5207           will be set as display size, which either crashes the pipeline or the
5208           output MD5 does not match. Rather it should use the actual decoded size.
5209           This patch removes the cropping set. For rendering we can use aspect
5210           ratio to set display size.
5211           Fixes #175
5212           Signed-off-by: Wang Zhanjun <zhanjunx.wang@intel.com>
5213           Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
5214
5215 2019-06-28 16:32:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5216
5217         * README:
5218           Update README
5219
5220 2019-06-25 19:11:12 +0800  He Junyan <junyan.he@hotmail.com>
5221
5222         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5223         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5224         * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
5225           libs: dec: h265: Consider chroma_bit_depth to choose chrome type
5226           For some main-10 stream, sometime the luma is 8 bits while chrome is more
5227           than 8 bits, which cause using the wrong NV12 surface as the render target
5228           and decoding error.
5229           Fix #176
5230
5231 2019-06-25 10:31:20 +0800  Wangfei <fei.w.wang@intel.com>
5232
5233         * gst/vaapi/gstvaapidecode.c:
5234           vaapidecode: set initial decode format according surface chroma type
5235           For surfaces with different chroma type, it is prefer to initialize
5236           a format which chroma type should be same with surface chroma type
5237           instead of using fixed NV12.
5238
5239 2019-05-30 09:48:51 -0400  Wangfei <fei.w.wang@intel.com>
5240
5241         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5242         * gst-libs/gst/vaapi/gstvaapiimage.c:
5243         * gst-libs/gst/vaapi/video-format.c:
5244         * gst/vaapi/gstvaapidecode.c:
5245         * gst/vaapi/gstvaapipluginutil.h:
5246           libs: decoder: jpeg: add support 400/411/422/444 chroma type
5247           When create vaapi surface, it is better to use the chroma type get
5248           from jpeg file instead of using fixed 420 format. And the correct
5249           chroma type can be determined by horizontal_factor/vertical_factor
5250           flags that get from jpegparse.
5251
5252 2019-06-22 00:05:24 +0800  He Junyan <junyan.he@hotmail.com>
5253
5254         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5255           libs: dec: h265: Fix profile_idc mapping.
5256           The old mapping values return by gst_vaapi_utils_h265_get_profile_idc is
5257           wrong, though GST_H265_PROFILE_IDC_MAIN and GST_H265_PROFILE_IDC_MAIN_10
5258           happened to be the correct value.
5259           We only support Annex A profile_idc (1-4).
5260
5261 2019-06-10 20:46:30 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5262
5263         * gst/vaapi/gstvaapipluginbase.c:
5264           plugins: remove last negotiated video info if caps are same
5265           If the allocation caps and negotiated caps are the same,
5266           then ensure any previously negotiated video info is also
5267           removed.  This can occur when multi-resolution video
5268           decoding returns to it's original resolution.
5269           Fixes #170
5270
5271 2019-06-10 20:39:28 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5272
5273         * gst/vaapi/gstvaapivideomemory.c:
5274           vaapivideomemory: allow negotiated info to be removed
5275           Allow NULL negotiated_vinfo to be passed into
5276           gst_allocator_set_vaapi_negotiated_video_info to allow
5277           any previously set info to be removed.
5278
5279 2019-06-06 17:24:30 +0300  Freyr <freyrnjordrson@gmail.com>
5280
5281         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5282         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5283           libs: encoder: vp8,vp9: reset frame_counter when input frame's format changes
5284           When input frame's formate changes, vp{8,9} encoders don't reset their frame
5285           counter, hence the newly created frame could become a P-frame, leading to some
5286           major troubles (sigabrt in libdrm in case of vp9). This patch adds some frame
5287           prediction-related reset logic to the `flush' methods of GstVaapiEncoderVP8 and
5288           GstVaapiEncoderVP9 implementations.
5289
5290 2019-05-31 12:30:03 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5291
5292         * gst-libs/gst/vaapi/gstvaapiencoder.c:
5293           libs: encoder: increase bitrate prop max value
5294           There are many profile levels that can support
5295           more than 102400 kbps.  Thus, increase the max
5296           allowed bitrate property value from 102400 kbps
5297           to 2048000 kbps (same as msdk encoder plugins).
5298
5299 2019-06-04 13:27:50 +0800  He Junyan <junyan.he@hotmail.com>
5300
5301         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5302           libs: mpeg2 encoder: No packed header for SPS and PPS
5303           Dislable passing down packed PPS and PPS to driver if driver does
5304           not want it.
5305           Fix: #168
5306
5307 2019-05-31 23:10:33 +0200  Niels De Graef <niels.degraef@barco.com>
5308
5309         * configure.ac:
5310         * meson.build:
5311         * tests/output.c:
5312           meson: Bump minimal GLib version to 2.44
5313           This means we can use some newer features and get rid of some
5314           boilerplate code using the G_DECLARE_* macros.
5315           As discussed on IRC, 2.44 is old enough by now to start depending on it.
5316
5317 2019-05-31 13:08:39 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5318
5319         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5320           libs: dec: vp9: clear parser pointer after release
5321           Fix an use-after-release of the parser pointer in VP9 decoder.
5322
5323 2019-05-28 12:09:36 +0300  Freyr666 <sky_rider_93@mail.ru>
5324
5325         * gst/vaapi/gstvaapiencode.c:
5326           vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function
5327           This fixes a deadlock in gst_vaapiencode_change_state, which was due to
5328           srcpad's chain function was locked waiting for available buffers. Since the
5329           coded buffers in codedbuf_queue become available after sinkpad consume the
5330           encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers
5331           are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for
5332           available buffers and holds the stream_lock of the srcpad.
5333
5334 2019-05-29 23:08:22 +0200  Mathieu Duponchelle <mathieu@centricular.com>
5335
5336         * gst-libs/gst/vaapi/gstvaapitypes.h:
5337         * gst/vaapi/gstvaapidecodebin.c:
5338         * gst/vaapi/gstvaapidecodedoc.c:
5339         * gst/vaapi/gstvaapiencode_h264.c:
5340         * gst/vaapi/gstvaapiencode_h264_fei.c:
5341         * gst/vaapi/gstvaapiencode_h265.c:
5342         * gst/vaapi/gstvaapiencode_jpeg.c:
5343         * gst/vaapi/gstvaapiencode_mpeg2.c:
5344         * gst/vaapi/gstvaapiencode_vp8.c:
5345         * gst/vaapi/gstvaapiencode_vp9.c:
5346         * gst/vaapi/gstvaapipostproc.c:
5347         * gst/vaapi/gstvaapisink.c:
5348           doc: remove xml from comments
5349
5350 2019-05-13 16:39:33 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5351
5352         * gst-libs/gst/vaapi/gstvaapifilter.c:
5353         * gst-libs/gst/vaapi/gstvaapifilter.h:
5354         * gst-libs/gst/vaapi/gstvaapiutils.c:
5355         * gst-libs/gst/vaapi/gstvaapiutils.h:
5356         * gst/vaapi/gstvaapipostproc.c:
5357         * gst/vaapi/gstvaapipostproc.h:
5358           vaapipostproc: add mirror support
5359           Adds vpp mirroring support to vaapipostproc.  Use
5360           property video-direction.  Valid values are identity,
5361           horiz or vert.  Default is identity (no mirror).
5362           Closes #89
5363           v2: Use GstVideoOrientationMethod enum
5364           v3: Don't warn for VA_MIRROR_NONE.
5365           Use GST_TYPE_VIDEO_ORIENTATION_METHOD type.
5366           v4: Query VAAPI caps when setting mirror value
5367           instead of during per-frame processing.
5368           v5: Return TRUE in warning cases when setting mirror value.
5369
5370 2019-05-29 01:35:17 +0200  Mathieu Duponchelle <mathieu@centricular.com>
5371
5372         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
5373         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5374         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5375         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5376         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
5377         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5378         * gst/vaapi/gstvaapidecodebin.c:
5379         * gst/vaapi/gstvaapisink.c:
5380           doc: fix some incorrect gtk-doc links
5381
5382 2019-05-16 09:22:42 -0400  Thibault Saunier <tsaunier@igalia.com>
5383
5384         * docs/gst_plugins_cache.json:
5385           docs: Update plugin cache
5386           Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
5387
5388 2019-05-16 16:46:43 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5389
5390         * gst-libs/gst/vaapi/gstvaapisurface.h:
5391           libs: surface: fix documentation format
5392
5393 2019-05-16 10:05:17 +0800  Wangfei <fei.w.wang@intel.com>
5394
5395         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5396           libs: enc: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
5397           When enable low delay B, the reference list 1 will be same with
5398           reference list 0, so need reset the num_ref_idx_l1_active_minus1
5399           to num_ref_idx_l0_active_minus1.
5400           Fixes: #160
5401
5402 2019-05-13 19:05:43 -0400  Thibault Saunier <tsaunier@igalia.com>
5403
5404         * docs/meson.build:
5405           meson: Fix call to wrong function
5406
5407 2018-10-22 11:48:29 +0200  Thibault Saunier <tsaunier@igalia.com>
5408
5409         * Makefile.am:
5410         * configure.ac:
5411         * docs/Makefile.am:
5412         * docs/gst_plugins_cache.json:
5413         * docs/index.md:
5414         * docs/meson.build:
5415         * docs/plugins/Makefile.am:
5416         * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5417         * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
5418         * docs/plugins/gstreamer-vaapi-plugins.types:
5419         * docs/plugins/inspect/plugin-vaapi.xml:
5420         * docs/plugins/running.xml:
5421         * docs/sitemap.txt:
5422         * docs/version.entities.in:
5423         * gst/vaapi/meson.build:
5424         * meson.build:
5425         * meson_options.txt:
5426           docs: Port to hotdoc
5427
5428 2019-05-10 18:29:10 +0800  He Junyan <junyan.he@hotmail.com>
5429
5430         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5431         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5432           libs: encoder: not call ensure_num_slices inside g_assert
5433           g_assert will take no effect when glib's G_DISABLE_ASSERT macro is
5434           defined. The function inside the g_assert will take no effect and
5435           we will fail to set the correct slice number.
5436
5437 2019-04-29 09:52:39 +0800  Wangfei <fei.w.wang@intel.com>
5438
5439         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5440           libs: h265: dec: Add extension flags setting.
5441           Use VAPictureParameterBufferHEVCExtension&
5442           VASliceParameterBufferHEVCExtension to pass extension setting from
5443           some extension profile clips which may include these information.
5444           The hevc extension setting only supported after libva release 2.2.0
5445           (API 1.2.0).
5446
5447 2019-05-01 12:56:55 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5448
5449         * gst-libs/gst/vaapi/gstvaapiencoder.c:
5450         * gst-libs/gst/vaapi/gstvaapiencoder.h:
5451         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5452           libs: encoder: add target-percentage property
5453           Allow users to set the target-percentage for
5454           variable rate controls.  The default value is
5455           70 (as hard-coded prior).
5456           v2: minimum allowed value changed from 0 to 1
5457           v3: target-percentage unchanged if CBR used
5458           Resolves #129
5459
5460 2019-05-09 00:09:21 +0800  He Junyan <junyan.he@hotmail.com>
5461
5462         * gst-libs/gst/vaapi/gstvaapiencoder.h:
5463           libs: encoder: Add a missing comment for DEFAULT_ROI_VALUE property.
5464
5465 2019-05-08 23:39:20 +0800  He Junyan <junyan.he@hotmail.com>
5466
5467         * gst-libs/gst/vaapi/gstvaapiencoder.c:
5468         * gst-libs/gst/vaapi/gstvaapiencoder.h:
5469         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5470         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
5471         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5472           libs: encoder: Enable trellis quantization method.
5473           The advanced trellis algorithm is supported in VA driver. We add
5474           its support as a property named "trellis" of encoder.
5475           It only works for H264 now, should be more in future.
5476
5477 2019-05-07 11:03:51 +0800  Wangfei <fei.w.wang@intel.com>
5478
5479         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5480           libs: decoder: vp9: support 422/444 8bit/10bit chroma type.
5481           According to the vp9 sepc, profile 1/3 support 422/440/444 chroma
5482           type, so we need to add subsampling_x&subsampling_y to fix it.
5483           Here is the relationship between chroma type and profile and
5484           subsampling_x&subsampling_y according to vp9 spec:
5485           ------------------------------------------
5486           Profile | Bit depth | Chroma subsampling |
5487           ------------------------------------------
5488           0      | 8         | 420                |
5489           ------------------------------------------
5490           1      | 8         | 422,440,444        |
5491           ------------------------------------------
5492           2      | 10, 12    | 420                |
5493           ------------------------------------------
5494           3      | 10, 12    | 422,440,444        |
5495           ------------------------------------------
5496           -----------------------------------------------
5497           Subsampling_x | Subsampling_y | Chroma format |
5498           -----------------------------------------------
5499           0            | 0             | 444           |
5500           -----------------------------------------------
5501           0            | 1             | 440           |
5502           -----------------------------------------------
5503           1            | 0             | 422           |
5504           -----------------------------------------------
5505           1            | 1             | 420           |
5506           -----------------------------------------------
5507
5508 2019-04-16 18:33:54 +0800  He Junyan <junyan.he@hotmail.com>
5509
5510         * gst-libs/gst/vaapi/gstvaapiimage.c:
5511         * gst-libs/gst/vaapi/video-format.c:
5512           libs: Add packed 24 RGB format support.
5513           Can not find a suitable chrome_type for this GST_VIDEO_FORMAT_RGB
5514           packed 24 format. Just use GST_VAAPI_CHROMA_TYPE_RGB32 as its chrome
5515           type. This kind of surface will just be created by new API with fourcc
5516           and no old style chrome based creation is available.
5517           fixes: #151
5518
5519 2019-03-15 14:29:41 +0800  Wangfei <fei.w.wang@intel.com>
5520
5521         * gst/vaapi/gstvaapiencode.c:
5522         * gst/vaapi/gstvaapiencode_h264.c:
5523         * gst/vaapi/gstvaapiencode_h264_fei.c:
5524         * gst/vaapi/gstvaapiencode_h265.c:
5525         * gst/vaapi/gstvaapiencode_jpeg.c:
5526         * gst/vaapi/gstvaapiencode_mpeg2.c:
5527         * gst/vaapi/gstvaapiencode_vp8.c:
5528         * gst/vaapi/gstvaapiencode_vp9.c:
5529           vaapiencode: handle DMABuf caps feature in sink pad
5530           Add DMABuff caps features in all encoders' sink pad.
5531
5532 2019-05-03 10:31:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5533
5534         * gst-libs/gst/vaapi/gstvaapiencoder.c:
5535           libs: encoder: continue if roi meta is NULL
5536           Coverity scan bug:
5537           If the function actually returns a null value, a null pointer
5538           dereference will occur.
5539           In gst_vaapi_encoder_ensure_param_roi_regions(): Return value of
5540           function which returns null is dereferenced without checking
5541
5542 2019-04-15 19:58:14 +0800  He Junyan <junyan.he@hotmail.com>
5543
5544         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5545           lib: decoder: vp9: Set chroma_type by VP9 bit_depth
5546           The decoder's surface chroma type should depend on the bit depth
5547           of VP9's parser. For 10bits VP9 stream, we need to use P10LE kind
5548           10 bits surface as the decoder result.
5549           Fixes #155
5550
5551 2019-05-02 16:00:57 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5552
5553         * gst/vaapi/gstvaapipostprocutil.c:
5554           vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD
5555           https://bugzilla.gnome.org/show_bug.cgi?id=748184 has resurrected
5556           with commit 3e992d8a
5557           Since gst_vaapi_find_preferred_caps_feature() returns a color format
5558           from caps negotiation, different from the default one (NV12), the
5559           postproc enables the color transformation. But when GL_TEXTURE_UPLOAD
5560           feature is negotiated, no color transformation shall be done.
5561           Nonetheless, with commit 3e992d8a the requested format changes
5562           firstly, because there's no video sink yet, so ANY caps are
5563           negotiated; but later, when there's a video sink and a caps
5564           renegotiation, the GL_TEXTURE_UPLOAD is negotiated though the color
5565           format conversion still ongoing. It is required to reset that
5566           conversion.
5567           This patch force default color format when GL_TEXTURE_UPLOAD is
5568           selected as preferred, thus avoiding the color conversion.
5569           Fixes: #157
5570
5571 2019-04-19 15:49:37 -0700  Julien Isorce <jisorce@oblong.com>
5572
5573         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
5574           libs: surface: fix double free when dmabuf export fails
5575           Happens if vaAcquireBufferHandle fails.
5576
5577 2019-04-29 20:10:39 +0800  He Junyan <junyan.he@hotmail.com>
5578
5579         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5580           libs: h264encoder: fix a typo of GstVaapiEncoderH264PredictionType
5581
5582 2019-04-19 10:43:35 +0100  Tim-Philipp Müller <tim@centricular.com>
5583
5584         * RELEASE:
5585         * configure.ac:
5586         * docs/plugins/inspect/plugin-vaapi.xml:
5587         * meson.build:
5588           Back to development
5589
5590 === release 1.16.0 ===
5591
5592 2019-04-19 00:38:12 +0100  Tim-Philipp Müller <tim@centricular.com>
5593
5594         * ChangeLog:
5595         * NEWS:
5596         * RELEASE:
5597         * configure.ac:
5598         * gstreamer-vaapi.doap:
5599         * meson.build:
5600           Release 1.16.0
5601
5602 2019-04-19 00:38:12 +0100  Tim-Philipp Müller <tim@centricular.com>
5603
5604         * docs/plugins/inspect/plugin-vaapi.xml:
5605           Update docs
5606
5607 2019-04-15 19:34:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5608
5609         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5610         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5611         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5612           libs: encoder: h264,h265: guard VA version for max_qp property
5613           This patch fixes a regression from commit 5b1fe9c6.
5614           max_qp, in rate control configuration, appeared in libva release
5615           2.1 (API 1.1), thus it is required to guard the VA API version.
5616           Fixes: #150
5617
5618 2019-04-08 18:29:35 +0800  He Junyan <junyan.he@hotmail.com>
5619
5620         * gst-libs/gst/vaapi/gstvaapiimage.c:
5621         * gst-libs/gst/vaapi/video-format.c:
5622           libs: Add RGB565 image format support.
5623
5624 2019-04-10 13:59:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5625
5626         * configure.ac:
5627           build: configure: delay USE_GTK conditional until check libva-x11
5628           libva-x11 is used for X11 applications, so it is required to build
5629           any GTK application.
5630           Later, when Wayland test is added, we should change this.
5631
5632 2019-04-10 13:25:10 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5633
5634         * configure.ac:
5635           build: configure: disable GLX if libva-x11 is not found
5636
5637 2019-04-15 13:55:26 +0200  He Junyan <junyan.he@hotmail.com>
5638
5639         * gst-libs/gst/vaapi/gstvaapiutils.c:
5640           libs: utils: avoid macro evaluation when stringify
5641           string_of_va_chroma_format() gets a wrong string format description.
5642           For example, the YUV420_10BPP get a string of 0x00000100 as output.
5643           It's because VA_RT_FORMAT_xxx values are macro definitions. And
5644           STRINGIFY(VA_RT_FORMAT_xxx) will expand to its real value
5645           0x00000XXX.
5646           To avoid the macro evaluation, it is changed to show only the color
5647           format without VA_RT_FORMAT_ prefix.
5648
5649 2019-04-15 13:54:15 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5650
5651         * gst-libs/gst/vaapi/gstvaapiutils.c:
5652           libs: utils: use glib's macros
5653           Don't reinvent the wheel.
5654
5655 2019-04-11 15:05:02 +0800  Wangfei <fei.w.wang@intel.com>
5656
5657         * gst/vaapi/gstvaapipluginutil.c:
5658           plugins: find the preferred format from right caps.
5659           When the downstream has any caps, then raw video feature will
5660           be used. At this situation, the preferred format should be chose
5661           from caps which contains "vide/x-raw" feature instead of from
5662           the fist allowed caps.
5663           Fixes #142
5664
5665 2019-04-10 11:43:33 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5666
5667         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5668           libs: encoder: h265: fill tier in va seq param buf
5669           Now that tier is calculated in commit 58e74f9440fe (!68),
5670           ensure we fill in the general_tier_flag in the
5671           VAEncSequenceParameterBufferHEVC.
5672
5673 === release 1.15.90 ===
5674
5675 2019-04-11 00:40:03 +0100  Tim-Philipp Müller <tim@centricular.com>
5676
5677         * ChangeLog:
5678         * NEWS:
5679         * RELEASE:
5680         * configure.ac:
5681         * gstreamer-vaapi.doap:
5682         * meson.build:
5683           Release 1.15.90
5684
5685 2019-04-11 00:40:03 +0100  Tim-Philipp Müller <tim@centricular.com>
5686
5687         * docs/plugins/inspect/plugin-vaapi.xml:
5688           Update docs
5689
5690 2019-04-09 20:42:04 +0800  He Junyan <junyan.he@hotmail.com>
5691
5692         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5693           libs: encoder: h265: Recognize the correct level and tier.
5694           The current manner can not recognize the correct level and always
5695           set the tier to main. Need to add frame rate check to recognize
5696           levels such as 4.1, 6.2, etc. We also add a logic to check main
5697           and high tier based on bitrate.
5698           Fixes: #145
5699
5700 2019-04-03 14:12:23 +0800  He Junyan <junyan.he@hotmail.com>
5701
5702         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5703         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5704         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5705           libs: encoder: h264,h265: Set max_qp if min_qp is non-zero.
5706           media-driver currently fails to set a correct value of max_qp when
5707           min_qp is different to zero, in CBR and VBR mode, generating full
5708           quality frames, thus unexpected huge output.
5709           This patch sets max_qp to an arbitrary value to avoid this output
5710           temporary.
5711           Fixes: #144
5712
5713 2019-04-09 12:42:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5714
5715         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5716         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5717         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5718           libs: encoder: h264,h265: initial and minimal QP can be zero
5719           Currently the minimal value for either min_qp and init_qp are 1,
5720           but VA documentation specifiy that zero is also valid and means
5721           to ignore the quantiser.
5722           The default value is not changed though to avoid behaivor changes
5723           to users.
5724
5725 2019-04-09 09:20:23 +0800  Haihao Xiang <haihao.xiang@intel.com>
5726
5727         * tests/elements/meson.build:
5728           meson: build test-vaapicontext when using X11
5729           x11_dep and libva_x11_dep are optional and meson ignores these
5730           dependencies even if they are added into the dependency list.
5731           This fixes the error below when libva-x11 is not avaiblabe:
5732           cc -Itests/elements/tests@elements@@test-vaapicontext@exe
5733           -Itests/elements -I../../gstreamer-vaapi/tests/elements -I.
5734           -I../../gstreamer-vaapi/ -Igst-libs -I../../gstreamer-vaapi/gst-libs
5735           -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0
5736           -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4
5737           -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0
5738           -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
5739           -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/
5740           -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/pango-1.0
5741           -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo
5742           -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2
5743           -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
5744           -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
5745           -Winvalid-pch -O2 -g -fvisibility=hidden -fno-strict-aliasing -pthread
5746           -DHAVE_CONFIG_H  -MD -MQ
5747           'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5748           -MF
5749           'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o.d'
5750           -o
5751           'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5752           -c ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c
5753           ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c:29:10: fatal
5754           error: va/va_x11.h: No such file or directory
5755           #include <va/va_x11.h>
5756
5757 2019-04-01 12:56:28 +0800  He Junyan <junyan.he@hotmail.com>
5758
5759         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5760         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
5761         * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
5762           libs: encoder: h264_fei: Use gst_param_spec_array for view-ids
5763           GValueArray is deprecated. Use GstValueArray instead.
5764
5765 2019-03-30 18:29:31 +0100  Danilo Spinella <danyspin97@protonmail.com>
5766
5767         * gst/vaapi/gstvaapipluginutil.c:
5768           vaapipluginutil: Fix #endif for USE_X11
5769
5770 2019-03-29 18:29:51 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5771
5772         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5773           libs: encoder: h264: simplify the view-ids setting
5774
5775 2019-03-26 14:54:47 +0800  He Junyan <junyan.he@hotmail.com>
5776
5777         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5778           libs: encoder: h264: Use gst_param_spec_array for view-ids
5779           GValueArray is deprecated. Use GstValueArray instead.
5780           gst_param_spec_array can be deserialized from command line using:
5781           vaapih264enc view-ids="<(uint)40,(uint)100>" num-views=2
5782           While the g_param_spec_value_array() can not, and always get
5783           error: "gst_value_deserialize_g_value_array: unimplemented"
5784           Also fixed an out-of-range bug.
5785
5786 2019-03-29 13:33:41 +0800  He Junyan <junyan.he@hotmail.com>
5787
5788         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
5789           libs: Change the parameter setting order when encode picture.
5790           The order in gst_vaapi_enc_picture_encode when encoding one
5791           picture is not very correct. The misc parameters are set before
5792           the picture parameters. Some of the misc parameters such as
5793           ROI may change the current picture parameters. But the later
5794           setting of picture parameter will re-init all picture related
5795           parameters and clear the previous setting. The right order
5796           should be picture parameter first and then misc parameters.
5797           Signed-off-by: He Junyan <junyan.he@hotmail.com>
5798
5799 2019-03-26 14:20:34 +0800  Wangfei <fei.w.wang@intel.com>
5800
5801         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5802           libs: decoder: jpeg: support dynamic resolution change decode.
5803           Add size_changed flag to watch out resolution. if change, reset
5804           jpeg decoder's context.
5805
5806 2019-03-23 15:34:03 +0800  Wangfei <fei.w.wang@intel.com>
5807
5808         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5809           libs: encoder: h265: add low power mode encode.
5810           By now, this feature only support by media-driver on Ice Lake
5811           platform, more information you can reference:
5812           https://github.com/intel/media-driver
5813
5814 2019-03-15 18:40:21 +0800  He Junyan <junyan.he@hotmail.com>
5815
5816         * gst/vaapi/gstvaapiencode.c:
5817           vaapiencode: gobject's prop_id differ from vaapi encoder
5818           The vaapi internal encoder's property id are negative, thus they are
5819           different from GObject's property ids.
5820           gst_vaapi_encoder_set_property() should map to the internal encoder
5821           property id, assigned in gst_vaapiencode_default_set_property().
5822
5823 2019-03-21 16:56:34 +0000  Tim-Philipp Müller <tim@centricular.com>
5824
5825         * meson.build:
5826           meson: disable compiler warnings for unused vars and args if gst debug system is disabled
5827
5828 2019-03-21 13:31:57 +0000  Tim-Philipp Müller <tim@centricular.com>
5829
5830         * meson.build:
5831           meson: use new 'python' module instead of deprecated 'python3' one
5832
5833 2019-03-11 18:38:36 -0300  Thibault Saunier <tsaunier@igalia.com>
5834
5835         * common:
5836           Update common submodule back to 59cb678164719ff59dcf6c8b93df4617a1075d11
5837           It was wrongly changed in 3d9555a86d45565870c684fe00ec8bbb0fed7205
5838
5839 2019-03-04 09:16:17 +0000  Tim-Philipp Müller <tim@centricular.com>
5840
5841         * NEWS:
5842         * RELEASE:
5843         * configure.ac:
5844         * docs/plugins/inspect/plugin-vaapi.xml:
5845         * meson.build:
5846           Back to development
5847
5848 2019-03-01 12:33:26 +0800  He Junyan <junyan.he@hotmail.com>
5849
5850         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
5851           libs: Fix a typo in comments.
5852           Fix a typo in function description of
5853           gst_vaapi_surface_pool_new_with_chroma_type.
5854           Signed-off-by: He Junyan <junyan.he@hotmail.com>
5855
5856 2019-02-27 13:02:10 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5857
5858         * gst/vaapi/gstvaapipluginutil.c:
5859           plugin: if any caps in downstream, negotiate raw video
5860           When downstream has any caps, vaapi should not shovel vaapi featured
5861           buffers, but rather plain raw video, assuming always the worst case
5862           scenario (downstream cannot handle featured video memory but raw
5863           system memory buffers).
5864           This patch query the peer caps without any filter, to know if
5865           donwstream just ask for any caps, if so jump to the color space
5866           checking, otherwise do the caps intersection and continue with the
5867           feature selection algorithm.
5868           Fixes: #139
5869
5870 === release 1.15.2 ===
5871
5872 2019-02-26 12:01:53 +0000  Tim-Philipp Müller <tim@centricular.com>
5873
5874         * ChangeLog:
5875         * NEWS:
5876         * RELEASE:
5877         * configure.ac:
5878         * gstreamer-vaapi.doap:
5879         * meson.build:
5880           Release 1.15.2
5881
5882 2019-02-26 12:01:53 +0000  Tim-Philipp Müller <tim@centricular.com>
5883
5884         * docs/plugins/inspect/plugin-vaapi.xml:
5885           Update docs
5886
5887 2019-02-05 16:59:40 +0800  He Junyan <junyan.he@hotmail.com>
5888
5889         * gst/vaapi/gstvaapivideomemory.c:
5890           vaapivideomemory: Prefer same format for surface and image
5891           We prefer to use the same format between image and surface for gst
5892           vaapi allocator. The old way may choose different formats between
5893           image and surface. For example, the RGBA image may have a NV12 surface.
5894           So we need to do format conversion when we put/get image to surface.
5895           Some drivers such as iHD can not support such conversion and always
5896           cause a data flow error. There may also have some performance cost
5897           for format conversion when put/get images.
5898           So we prefer to use the same format for image and surface in the
5899           allocator. If the surface can not support that format, we then
5900           fallback to find a best one as the surface format.
5901           Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
5902
5903 2019-02-15 15:19:51 +0800  He Junyan <junyan.he@hotmail.com>
5904
5905         * gst-libs/gst/vaapi/video-format.c:
5906           libs: Delete the duplicated ARGB video format.
5907           Two ARGB formats with the same format information.
5908           Should be verbose and delete one.
5909           Signed-off-by: He Junyan <junyan.he@hotmail.com>
5910
5911 2019-02-13 10:39:59 -0500  Adam Jackson <ajax@redhat.com>
5912
5913         * common:
5914         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
5915           glx: Stop specifying GLX_DEPTH_SIZE
5916           This code is just confused. It's asking for at least as many bits of
5917           (z-axis) depth as the root window has bits of (color) depth. For rgb565
5918           or rgb888 this is harmless, but at 10 bits per channel this demands a
5919           30-bit or deeper Z buffer. While some hardware could in principle do a
5920           32-bit Z buffer, Mesa does not expose such fbconfigs (at least on Intel
5921           and AMD).
5922           We're not actually using the Z buffer, so just stop asking for one.
5923
5924 2019-01-14 11:30:48 +0100  Niels De Graef <niels.degraef@barco.com>
5925
5926         * configure.ac:
5927         * gst-libs/gst/vaapi/Makefile.am:
5928         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5929         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5930         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5931         * gst-libs/gst/vaapi/meson.build:
5932         * gst/vaapi/gstvaapisink.c:
5933         * meson.build:
5934           libs: wayland: add support for XDG-shell protocol
5935           [wl_shell] is officially [deprecated], so provide support for the
5936           XDG-shell protocol should be provided by all desktop-like compositors.
5937           (In case they don't, we can of course fall back to wl_shell).
5938           Note that the XML file is directly provided by the `wayland-protocols`
5939           dependency and generates the protocol marshalling code.
5940           [wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
5941           [deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c
5942
5943 2019-02-16 19:09:50 +0100  Niels De Graef <nielsdegraef@gmail.com>
5944
5945         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5946           libs: window: wayland: Prefix wl_shell_surface field with `wl_`
5947           It will help us to distinguish from other Wayland shell surface
5948           (such as XDG-shell) later on.
5949
5950 2019-01-14 09:58:19 +0100  Niels De Graef <nielsdegraef@gmail.com>
5951
5952         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5953         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5954         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5955           libs: wayland: Prefix wl_shell field with `wl_`
5956           It will help us to distinguish from other Wayland shells (such as
5957           XDG-shell) later on.
5958
5959 2019-02-08 09:21:28 +0300  Denis Nagorny <denis.nagorny@intel.com>
5960
5961         * gst-libs/gst/vaapi/gstvaapidisplay.c:
5962           libs: display: lock ensure_profile()
5963           Thread safety patch for ensure_profile() function
5964           Fixes #133
5965
5966 2019-02-08 16:35:39 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5967
5968         * meson.build:
5969           meson: bump the minimum wayland version requirement to 1.11.0
5970           This was missed on commit 77bb3424
5971
5972 2019-01-24 21:08:07 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5973
5974         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5975         * gst/vaapi/gstvaapisink.c:
5976           vaapisink: x11: trap WM_DELETE_WINDOW message
5977           Register the WM_DELETE_WINDOW message from window manager and
5978           trap it to stop the pipeline cleanly.
5979           Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/130
5980
5981 2019-01-21 19:22:58 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5982
5983         * gst-libs/gst/vaapi/gstvaapiwindow.c:
5984           libs: window: remove native-id property
5985           native-id property is problematic since the variable that stores it is
5986           gsize, which is platform specific, and in some is bigger than unsigned
5987           long, and there are not way to handle gsize properties.
5988           Also, GST_VAAPI_ID_INVALID is defined in gsize terms, and we would
5989           like to keep using it for this scope.
5990           This patch removes the native-id property and set it manually in
5991           gst_vaapi_window_new_internal().
5992
5993 2019-01-18 10:33:37 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5994
5995         * gst-libs/gst/vaapi/gstvaapiwindow.c:
5996           libs: window: use G_GSIZE_MODIFIER for window id
5997           gsize type is not equal in all platforms, then the 'l' print modifier
5998           shall not be used always.
5999           This issue was found in Debian builds.
6000
6001 2019-01-17 10:27:13 +0800  Wangfei <fei.w.wang@intel.com>
6002
6003         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6004         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6005           encoder: h264/h265: set SPS cbr_flag with correct value.
6006           The flag only set as 1 when the rate-control mode is CBR.
6007
6008 === release 1.15.1 ===
6009
6010 2019-01-17 02:36:52 +0000  Tim-Philipp Müller <tim@centricular.com>
6011
6012         * ChangeLog:
6013         * NEWS:
6014         * RELEASE:
6015         * configure.ac:
6016         * gstreamer-vaapi.doap:
6017         * meson.build:
6018           Release 1.15.1
6019
6020 2019-01-17 02:36:52 +0000  Tim-Philipp Müller <tim@centricular.com>
6021
6022         * docs/plugins/inspect/plugin-vaapi.xml:
6023           Update docs
6024
6025 2019-01-14 19:35:34 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6026
6027         * gst-libs/gst/vaapi/gstvaapiencoder.c:
6028           libs: encoder: refactor to avoid code duplication
6029           gst_vaapi_encoder_put_frame() and gst_vaapi_encoder_flush() duplicates
6030           the same code segment where the coded buffer is created, the picture
6031           encoded on it and pushed to the async queue.
6032           The function gst_vaapi_encoder_encode_and_queue() refactor this.
6033
6034 2019-01-14 18:21:30 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6035
6036         * gst-libs/gst/vaapi/gstvaapiencoder.c:
6037         * gst-libs/gst/vaapi/gstvaapiencoder.h:
6038         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6039         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6040         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
6041           libs: encoder: h264/h265: flush pending ordered pictures
6042           In order to flush the pending pictures, a new internal encoder vmethod
6043           is used: get_pending_reordered()
6044           This method follows an iterator pattern which will return the next
6045           picture to encode and push.
6046           The base encoder will call this function in a loop when flush() is called.
6047           For now, only H.264 and H.265 encoders implement this flushing mechanism.
6048
6049 2018-12-06 10:18:53 +0800  Wangfei <fei.w.wang@intel.com>
6050
6051         * gst-libs/gst/vaapi/gstvaapiencoder.c:
6052         * gst-libs/gst/vaapi/gstvaapiencoder.h:
6053         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
6054         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6055           libs: encoder: h264/h265: fix encode lose frame issue.
6056           Instead of dropping all remain frames in reorder_frame_list during
6057           flush, keep encoding.
6058           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/97
6059
6060 2019-01-15 14:33:11 +0800  Wangfei <fei.w.wang@intel.com>
6061
6062         * gst/vaapi/gstvaapipostproc.c:
6063           vaapipostproc: before set surface proxy, check if it already been created and exist.
6064           Fix the deinterlace black frame when playing with glimagesink:
6065           gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \
6066           ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink
6067
6068 2019-01-11 13:48:29 +0800  Wangfei <fei.w.wang@intel.com>
6069
6070         * gst-libs/gst/vaapi/gstvaapiutils.c:
6071           vaapipostproc: clean up USE_VA_VPP macro since it already removed from configure file.
6072
6073 2018-12-26 14:36:23 +0800  Haihao Xiang <haihao.xiang@intel.com>
6074
6075         * gst-libs/gst/vaapi/meson.build:
6076         * gst/vaapi/meson.build:
6077         * meson.build:
6078         * tests/meson.build:
6079           meson: build h264 fei encoder if possible
6080
6081 2018-12-26 14:04:08 +0800  Haihao Xiang <haihao.xiang@intel.com>
6082
6083         * configure.ac:
6084           configure: bump the minimum wayland version requirement to 1.11.0
6085
6086 2018-12-24 12:58:53 +0800  Haihao Xiang <haihao.xiang@intel.com>
6087
6088         * configure.ac:
6089         * gst-libs/gst/vaapi/Makefile.am:
6090         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6091         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6092         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6093         * gst-libs/gst/vaapi/gstvaapicompat.h:
6094         * gst-libs/gst/vaapi/gstvaapicontext.c:
6095         * gst-libs/gst/vaapi/gstvaapidisplay.c:
6096         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
6097         * gst-libs/gst/vaapi/gstvaapifilter.c:
6098         * gst-libs/gst/vaapi/gstvaapiprofile.c:
6099         * gst-libs/gst/vaapi/gstvaapisurface.c:
6100         * gst-libs/gst/vaapi/gstvaapiutils.c:
6101         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
6102         * gst-libs/gst/vaapi/meson.build:
6103         * gst/vaapi/Makefile.am:
6104         * gst/vaapi/gstvaapi.c:
6105         * gst/vaapi/gstvaapidecode.c:
6106         * gst/vaapi/gstvaapidecodebin.c:
6107         * gst/vaapi/gstvaapipluginbase.c:
6108         * gst/vaapi/meson.build:
6109         * meson.build:
6110         * tests/decoder.c:
6111         * tests/simple-decoder.c:
6112           vaapi: bump the minimum vaapi version requirement to 0.39.0
6113           And reduce unnecessary API version and structures check as well.
6114           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/108
6115
6116 2018-12-22 18:07:35 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6117
6118         * gst-libs/gst/vaapi/gstvaapiwindow.c:
6119         * gst-libs/gst/vaapi/gstvaapiwindow.h:
6120         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6121         * tests/test-decode.c:
6122         * tests/test-filter.c:
6123         * tests/test-subpicture.c:
6124         * tests/test-textures.c:
6125         * tests/test-windows.c:
6126           libs: window: remove custom ref() and unref()
6127           Use gst_object_ref() and gst_object_unref() instead.
6128
6129 2018-12-22 13:25:09 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6130
6131         * gst-libs/gst/vaapi/gstvaapiwindow.c:
6132         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6133         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6134         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6135         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6136         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6137           libs: window: use its own debug category
6138
6139 2018-12-22 18:02:38 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6140
6141         * gst-libs/gst/vaapi/gstvaapiwindow.c:
6142         * gst-libs/gst/vaapi/gstvaapiwindow.h:
6143         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6144         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
6145         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6146         * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
6147         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6148         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
6149         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6150         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6151         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
6152         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6153         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
6154         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
6155           libs: window: refactor as gobject
6156           This is another step in the gobjectification of the internal library
6157           of gstreamer-vaapi. Now it is the turn of GstVaapiWindow and its
6158           derivates.
6159           The idea is to minimize the changeset keeping the same design as
6160           much as possible.
6161           GstVaapiWindow is defined as an abstract class with two properties:
6162           the GstVaapiDisplay and the native ID. Thus, many of the
6163           GstVaapiObject macros were copied as GstVaapiWindow macros.
6164           The function gst_vaapi_window_new_internal() is kept as a decorator
6165           of for calling gst_vaapi_window_create() and the possibility of
6166           failure.
6167           The descendant classes, such as glx, still use the private
6168           structures, but through the gobject mechanism.
6169
6170 2018-12-03 22:05:29 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6171
6172         * gst-libs/gst/vaapi/gstvaapifilter.c:
6173           libs: filter: use its own debug category
6174
6175 2018-12-24 14:08:42 +0800  He Junyan <junyan.he@hotmail.com>
6176
6177         * gst/vaapi/gstvaapidecode.c:
6178         * gst/vaapi/gstvaapipluginbase.c:
6179         * gst/vaapi/gstvaapipluginbase.h:
6180         * gst/vaapi/gstvaapipostproc.c:
6181         * gst/vaapi/gstvaapisink.c:
6182           plugins: Add more check for allowed raw caps.
6183           The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink
6184           pad and src pad, which cause some bugs. For sink pad, we need to verify
6185           vaPutImage() while for the src pad we need to verify vaGetImage().
6186           For vaapidecoderXXX kind of plugins, the case is more complex. We need
6187           to verify whether the decoded result(in some surface, NV12 format most
6188           of the time) can be vaGetImage to some raw image format. Add more check
6189           to fix all these problems.
6190           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/123
6191           Signed-off-by: He Junyan <junyan.he@hotmail.com>
6192
6193 2018-12-18 10:44:21 +0800  Wangfei <fei.w.wang@intel.com>
6194
6195         * gst/vaapi/gstvaapipostproc.c:
6196           vaapipostproc: fix csc fail when only change width or height.
6197
6198 2018-12-15 09:47:15 +0900  Wonchul Lee <chul0812@gmail.com>
6199
6200         * tests/elements/meson.build:
6201           meson: Add gtk guard
6202
6203 2018-12-15 14:48:03 +0800  Wangfei <fei.w.wang@intel.com>
6204
6205         * gst/vaapi/gstvaapiencode_h264.c:
6206           libs: enc: h264: set max profile idc with correct profile.
6207           Use the highest rank of available profile as the max profile to
6208           set max idc value.
6209           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/124
6210
6211 2018-12-03 13:56:52 +0100  Niels De Graef <nielsdegraef@gmail.com>
6212
6213         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6214         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6215         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6216           Use G_DEFINE_TYPE_WITH_PRIVATE if applicable
6217           This gets rid of the strange `do_init` macro and makes the intent a bit
6218           more clear.
6219
6220 2018-12-05 17:24:53 -0300  Thibault Saunier <tsaunier@igalia.com>
6221
6222         * common:
6223           Automatic update of common submodule
6224           From ed78bee to 59cb678
6225
6226 2018-11-27 09:47:44 -0500  Wangfei <fei.w.wang@intel.com>
6227
6228         * gst-libs/gst/vaapi/gstvaapiimage.c:
6229         * gst-libs/gst/vaapi/gstvaapiprofile.c:
6230         * gst-libs/gst/vaapi/gstvaapiprofile.h:
6231         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6232         * gst-libs/gst/vaapi/video-format.c:
6233         * gst/vaapi/gstvaapidecode.c:
6234         * gst/vaapi/gstvaapipluginutil.h:
6235           libs: dec: h265: support decode for main-444 10bit streams.
6236           Add 444 10bit yuv format Y410, which can be used to decode
6237           main-444 10bit streams. Currently, this feature is only
6238           supported by media-driver in Icelake.
6239
6240 2018-11-28 05:56:44 +0200  Jordan Petridis <jordan@centricular.com>
6241
6242         * gst/vaapi/gstvaapidecode.c:
6243         * gst/vaapi/gstvaapisink.c:
6244           Run gst-indent through the files
6245           This is required before we enabled an indent test in the CI.
6246           https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
6247
6248 2018-11-14 13:11:56 +0800  He Junyan <junyan.he@hotmail.com>
6249
6250         * gst/vaapi/gstvaapipluginbase.c:
6251           plugins: modify image check of extract_allowed_surface_formats.
6252           The extract_allowed_surface_formats function just check whether
6253           we can support some kind of surface/image format pair. We just
6254           need to create a surface, create an image with the same video-format
6255           and putImage from image to surface. All these operations success,
6256           that kind of video-format is supported.
6257           The old manner do not work for some kind of video-format. For example,
6258           the RGBA kind of format will create a NV12 surface and RGBA image,
6259           and the putImage will fail because the format is not same. And so
6260           the RGBA format is not supported but actually it is supported.
6261
6262 2018-11-14 11:34:20 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
6263
6264         * gst/vaapi/gstvaapipostproc.c:
6265           vaapipostproc: add some missing locking
6266           gst_vaapi_plugin_base_close() removed the raw caps that are used indirectly
6267           in gst_vaapipostproc_transform_caps(). The usage is already protected by
6268           the mutex.
6269           This is needed when the pipeline is stopped during startup.
6270
6271 2018-11-20 16:07:44 +0800  Xiang, Haihao <haihao.xiang@intel.com>
6272
6273         * gst/vaapi/gstvaapivideomemory.c:
6274           Close dmabuf_fd
6275           Otherwise it will result in resource leak when failed to create
6276           dmabuf memory
6277
6278 2018-11-12 13:39:51 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
6279
6280         * gst/vaapi/gstvaapiencode.c:
6281           vaapiencode: don't start src pad task in set_format
6282           Otherwise the task may be restarted during shutdown. Start the task in
6283           gst_vaapiencode_handle_frame() instead.
6284
6285 2018-11-14 13:52:48 +0800  Wangfei <fei.w.wang@intel.com>
6286
6287         * gst-libs/gst/vaapi/gstvaapiprofile.c:
6288         * gst-libs/gst/vaapi/gstvaapiprofile.h:
6289         * gst-libs/gst/vaapi/gstvaapiutils.c:
6290         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6291         * gst/vaapi/gstvaapidecode.c:
6292         * gst/vaapi/gstvaapipluginutil.h:
6293           libs: dec: h265: support decode for main-444 8bit streams.
6294           Add 444 8bit yuv format AYUV, which can be used to decode
6295           main-444 8bit streams. Currently, this feature is only
6296           supported by media-driver in Icelake.
6297           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/119
6298
6299 2018-11-12 17:43:54 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6300
6301         * .gitlab-ci.yml:
6302           Add Gitlab CI configuration
6303           This commit adds a .gitlab-ci.yml file, which uses a feature
6304           to fetch the config from a centralized repository. The intent is
6305           to have all the gstreamer modules use the same configuration.
6306           The configuration is currently hosted at the gst-ci repository
6307           under the gitlab/ci_template.yml path.
6308           Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
6309
6310 2018-11-09 22:03:43 +0800  He Junyan <junyan.he@hotmail.com>
6311
6312         * gst-libs/gst/vaapi/gstvaapisurface.h:
6313         * gst-libs/gst/vaapi/gstvaapiutils.c:
6314           libs: Sync the GstVaapiChromaType to VA header file.
6315           Add more kinds of chrometype which will be used to describe
6316           new video formats. Sync it with 1.4.0 version header file.
6317           Alse delete useless GST_VAAPI_CHROMA_TYPE_YUV410 chrome type.
6318           Signed-off-by: He Junyan <junyan.he@hotmail.com>
6319
6320 2018-11-09 23:55:05 +0000  Tim-Philipp Müller <tim@centricular.com>
6321
6322         * gst-libs/gst/vaapi/meson.build:
6323           meson: link with -lm
6324           Fixes #117 hopefully.
6325
6326 2018-11-09 23:46:53 +0000  Tim-Philipp Müller <tim@centricular.com>
6327
6328         * meson.build:
6329           meson: bump meson required to 0.47 for feature options
6330
6331 2018-11-06 14:38:08 +0800  Junyan He <junyan.he@intel.com>
6332
6333         * gst-libs/gst/vaapi/video-format.c:
6334           libs: Modify the video format of endianness.
6335           We lack some video format because endianness declare.
6336           The video format should not directly relate to endianness. For example,
6337           ARGB on big endian should not be simplely seen as BGRA on little endian
6338           machine. We should provide endianess convert or format convert help
6339           functions if endianness does not match.
6340           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/112
6341           Signed-off-by: Junyan He <junyan.he@intel.com>
6342
6343 2018-10-17 18:36:52 +0800  Junyan He <junyan.he@intel.com>
6344
6345         * gst/vaapi/gstvaapipluginutil.c:
6346           plugins: Fix build error when GL is enabled while EGL is disabled.
6347           gl_platform_type in gst_vaapi_get_display_type_from_gl_env generate
6348           unused-variable warning and may block build when Werror enabled.
6349           Several functions like gst_vaapi_display_egl_new_with_native_display
6350           have no prototype warning and link error when GL is enabled but EGL
6351           is disabled. Fix all these warning and link error.
6352           https://bugzilla.gnome.org/show_bug.cgi?id=797358
6353           Signed-off-by: Junyan He <junyan.he@intel.com>
6354
6355 2018-11-03 15:06:09 +0800  Wangfei <fei.w.wang@intel.com>
6356
6357         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6358         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
6359           libs: encoder: h264/h264fei: remove unuseless code.
6360           The variable are set twice, remove previous one.
6361           https://bugzilla.gnome.org/show_bug.cgi?id=797365
6362
6363 2018-11-03 15:28:35 +0800  Wangfei <fei.w.wang@intel.com>
6364
6365         * tests/simple-encoder.c:
6366         * tests/test-fei-enc-in.c:
6367           tests: check return value when using gst_buffer_map.
6368           https://bugzilla.gnome.org/show_bug.cgi?id=797366
6369
6370 2018-11-02 16:50:47 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6371
6372         * meson.build:
6373         * meson_options.txt:
6374         * tests/elements/meson.build:
6375         * tests/meson.build:
6376           build: meson: build examples
6377
6378 2018-11-02 16:50:00 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6379
6380         * gst-libs/gst/vaapi/meson.build:
6381           build: meson: declare headers for libgstvaapi
6382           Thus handling its recompilation if needed.
6383
6384 2018-11-05 05:41:13 +0000  Matthew Waters <matthew@centricular.com>
6385
6386         * .gitmodules:
6387           Update common submodule location
6388           Remove the git directory
6389
6390 2018-11-05 13:00:28 +0800  Haihao Xiang <haihao.xiang@intel.com>
6391
6392         * .gitmodules:
6393         * gstreamer-vaapi.doap:
6394           Clone the code from gitlab
6395           This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/116
6396
6397 2018-10-24 14:18:37 -0400  Wangfei <fei.w.wang@intel.com>
6398
6399         * gst-libs/gst/vaapi/gstvaapiimage.c:
6400         * gst-libs/gst/vaapi/gstvaapisurface.h:
6401         * gst-libs/gst/vaapi/gstvaapiutils.c:
6402         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6403         * gst-libs/gst/vaapi/video-format.c:
6404         * gst/vaapi/gstvaapidecode.c:
6405         * gst/vaapi/gstvaapipluginutil.h:
6406           libs: dec: h265: support decode for main-10-422 10bit streams.
6407           Add 422 10bit yuv format Y210, which can be used to decode
6408           main-10-422 10bit streams. Currently, this feature is only
6409           supported by media-driver in Icelake.
6410           https://bugzilla.gnome.org/show_bug.cgi?id=797264
6411
6412 2018-10-13 15:00:32 +0800  Wangfei <fei.w.wang@intel.com>
6413
6414         * gst-libs/gst/vaapi/gstvaapicontext.c:
6415           libs: context: roi_rc_qp_delta_support should not be checked when CQP.
6416           VA_ROI_RC_QP_DELTA_SUPPORT return value will be ignored when the
6417           rate control mode is set as CQP. In CQP mode, it shouldn't check
6418           roi_rc_qp_delta_support return value from driver backend.
6419           https://bugzilla.gnome.org/show_bug.cgi?id=797087
6420
6421 2018-10-15 17:55:24 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6422
6423         * gst/vaapi/gstvaapipostproc.c:
6424           vaapipostproc: fix classification string
6425           The classification string is splitted by '/' and then looks for the
6426           components.
6427           This patch removes the ';' by unifying all the components.
6428
6429 2018-10-15 16:05:02 +0100  Philippe Normand <philn@igalia.com>
6430
6431         * gst/vaapi/gstvaapipostproc.c:
6432           vaapipostproc: Add Hardware classifier to metadata
6433
6434 2018-10-12 16:37:34 +0800  Wangfei <fei.w.wang@intel.com>
6435
6436         * gst-libs/gst/vaapi/gstvaapicontext.c:
6437           libs: context: create context first before using it to create surface.
6438           In gst_vaapi_context_reset(), if the context has to be destroyed, make
6439           sure to create it first before allocating its associated surfaces.
6440           This patch fixes a regression introduced in commit 82872f4 because
6441           the formats available in the current context now are ensured before
6442           creating the context's surfaces.
6443           https://bugzilla.gnome.org/show_bug.cgi?id=797277
6444
6445 2018-10-12 15:39:53 +0100  Philippe Normand <philn@igalia.com>
6446
6447         * docs/plugins/inspect/plugin-vaapi.xml:
6448         * gst/vaapi/gstvaapidecode.c:
6449         * gst/vaapi/gstvaapiencode_h264.c:
6450         * gst/vaapi/gstvaapiencode_h264_fei.c:
6451         * gst/vaapi/gstvaapiencode_h265.c:
6452         * gst/vaapi/gstvaapiencode_jpeg.c:
6453         * gst/vaapi/gstvaapiencode_mpeg2.c:
6454         * gst/vaapi/gstvaapiencode_vp8.c:
6455         * gst/vaapi/gstvaapiencode_vp9.c:
6456           gst: Advertise elements interacting with hardware devices
6457
6458 2018-10-01 09:26:05 +0800  Wangfei <fei.w.wang@intel.com>
6459
6460         * gst-libs/gst/vaapi/gstvaapicontext.c:
6461         * gst-libs/gst/vaapi/gstvaapisurface.c:
6462         * gst-libs/gst/vaapi/gstvaapisurface.h:
6463           libs: context: query surface format before context to create surface.
6464           Before using context to create surface, the supported surface format
6465           should be checked first.
6466           https://bugzilla.gnome.org/show_bug.cgi?id=797222
6467
6468 2018-10-09 17:23:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6469
6470         * gst-libs/gst/vaapi/gstvaapiimage.c:
6471         * gst-libs/gst/vaapi/gstvaapivalue.c:
6472           libs: replace g_error with GST_ERROR
6473           And handle those errors rather than halting.
6474
6475 2018-10-09 17:23:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6476
6477         * gst-libs/gst/vaapi/gstvaapiimage.c:
6478         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6479         * gst-libs/gst/vaapi/gstvaapisurface.c:
6480           libs: replace g_warning with GST_WARNING
6481
6482 2018-09-26 14:55:32 -0500  Matteo Valdina <matteo.valdina@gmail.com>
6483
6484         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6485         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6486         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6487         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
6488           libs: Move from g_debug to GST_DEBUG.
6489           https://bugzilla.gnome.org/show_bug.cgi?id=797202
6490
6491 2018-10-04 02:20:10 +0800  Soon, Thean Siew <thean.siew.soon@intel.com>
6492
6493         * gst/vaapi/gstvaapipostproc.c:
6494           vaapipostproc: change the way of handling deinterlace
6495           The current vaapipostproc calls driver's video processing
6496           pipeline for deinterlacing only if it is Advance deinterlacing.
6497           Modify in the way that it always tries with driver's video
6498           processing pipeline for deinterlacing, and falls back to software
6499           method of appending picture structure meta data only if it fails
6500           with driver's method.
6501           https://bugzilla.gnome.org/show_bug.cgi?id=797095
6502
6503 2018-09-24 16:54:29 -0500  Matteo Valdina <matteo.valdina@gmail.com>
6504
6505         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6506         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
6507           libs: h264: Update level table to "Recommendation H.264 (04/17)".
6508           Added level 6, 6.1 and 6.2. Reference Table A-1 – Level limits
6509           from T-REC-H.264-201704.
6510           https://bugzilla.gnome.org/show_bug.cgi?id=797202
6511
6512 2018-09-20 09:57:33 +0800  Wangfei <fei.w.wang@intel.com>
6513
6514         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6515         * gst-libs/gst/vaapi/gstvaapiprofile.c:
6516         * gst-libs/gst/vaapi/gstvaapiprofile.h:
6517         * gst-libs/gst/vaapi/gstvaapisurface.c:
6518         * gst-libs/gst/vaapi/gstvaapiutils.c:
6519         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6520         * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
6521         * gst-libs/gst/vaapi/video-format.c:
6522         * gst-libs/gst/vaapi/video-format.h:
6523         * gst/vaapi/gstvaapidecode.c:
6524         * gst/vaapi/gstvaapipluginbase.c:
6525         * gst/vaapi/gstvaapipluginutil.h:
6526           libs: dec: h265: add 422 chroma format support.
6527           Add main-422-10 profile which support 422 chroma format stream.
6528           Currently, this feature is only supported by media-driver in Icelake.
6529           https://bugzilla.gnome.org/show_bug.cgi?id=797143
6530
6531 2018-09-26 19:34:06 +0200  U. Artie Eoff <ullysses.a.eoff@intel.com>
6532
6533         * tests/y4mreader.c:
6534           tests: include sysdeps.h in compilation unit
6535           Fixes https://bugzilla.gnome.org/show_bug.cgi?id=797204
6536           Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6537
6538 2018-09-26 18:04:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6539
6540         * tests/y4mreader.c:
6541         * tests/y4mreader.h:
6542           tests: fix compilation
6543           https://bugzilla.gnome.org/show_bug.cgi?id=797204
6544
6545 2018-09-25 20:28:02 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6546
6547         * tests/y4mreader.h:
6548           tests: don's use sysdeps.h in header
6549
6550 2018-09-14 19:30:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6551
6552         * gst-libs/gst/vaapi/gstvaapiutils.h:
6553           libs: utils: no need of include config.h
6554
6555 2018-09-13 18:12:02 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6556
6557         * tests/decoder.c:
6558         * tests/output.c:
6559         * tests/test-decode.c:
6560         * tests/test-subpicture.c:
6561           tests: remove already include string.h
6562           Since sysdeps.h includes string.h there's no need to include it again.
6563
6564 2018-09-13 18:11:25 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6565
6566         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6567         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6568         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6569         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6570         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6571         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6572         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6573         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6574         * gst-libs/gst/vaapi/gstvaapidisplay.c:
6575         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6576         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6577         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6578         * gst-libs/gst/vaapi/gstvaapiimage.c:
6579         * gst-libs/gst/vaapi/gstvaapiprofile.c:
6580         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6581         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6582         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6583         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6584           libs: remove already include string.h
6585           Since sysdeps.h includes string.h there's no need to include it again.
6586
6587 2018-09-13 18:26:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6588
6589         * gst-libs/gst/vaapi/gstvaapiobject.h:
6590         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6591         * gst/vaapi/gstvaapivideometa_texture.c:
6592           libs: object: separation of internal API and plugins
6593           Removed exposed macros GST_VAAPI_OBJECT_DISPLAY() and
6594           GST_VAAPI_OBJECT_ID() to plugins, keeping them only for internal
6595           library usage.
6596           The purpose is readability.
6597           https://bugzilla.gnome.org/show_bug.cgi?id=797139
6598
6599 2018-09-13 16:34:54 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6600
6601         * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
6602           libs: parser_frame: change macros for inlined functions
6603           https://bugzilla.gnome.org/show_bug.cgi?id=797139
6604
6605 2018-09-13 16:10:13 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6606
6607         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
6608         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
6609         * gst-libs/gst/vaapi/gstvaapivideopool.c:
6610         * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
6611           libs: videopool: remove unneeded code
6612           The removed code comes frome the bad practice of copy&paste. Better
6613           move it as internal function.
6614           https://bugzilla.gnome.org/show_bug.cgi?id=797139
6615
6616 2018-09-13 12:22:42 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6617
6618         * gst-libs/gst/vaapi/Makefile.am:
6619         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6620         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6621         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
6622         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
6623         * gst-libs/gst/vaapi/gstvaapiobject.c:
6624         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6625         * gst-libs/gst/vaapi/gstvaapipixmap.c:
6626         * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
6627         * gst-libs/gst/vaapi/gstvaapitexture.c:
6628         * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
6629         * gst-libs/gst/vaapi/gstvaapiwindow.c:
6630         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6631         * gst-libs/gst/vaapi/meson.build:
6632           libs: remove dependency on IN_LIBGSTVAAPI_CORE
6633           This conditional code was when libgstvaapi was intended to be library
6634           used outside GStreamer. This not the case anymore, thus removing it.
6635           https://bugzilla.gnome.org/show_bug.cgi?id=797139
6636
6637 2018-09-19 10:16:36 +0800  Wangfei <fei.w.wang@intel.com>
6638
6639         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6640           libs: dec: h265: fix the macros used for IDC profile
6641           profile_idc flag in SPS only indicate the IDC profile, which may
6642           need some other flags together to get the real profile.
6643           https://bugzilla.gnome.org/show_bug.cgi?id=797160
6644
6645 2018-09-12 19:06:22 +0900  Jimmy Ohn <yongjin.ohn@lge.com>
6646
6647         * gst-libs/gst/vaapi/gstvaapidisplay.c:
6648         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6649         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6650         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6651         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6652           libs: use g_clear_pointer() when possible
6653           https://bugzilla.gnome.org/show_bug.cgi?id=797131
6654
6655 2018-09-03 13:56:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6656
6657         * gst-libs/gst/vaapi/gstvaapifilter.h:
6658           libs: filter: add gobject's cleanup function
6659
6660 2018-05-22 14:28:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6661
6662         * gst-libs/gst/vaapi/gstvaapifilter.c:
6663         * gst-libs/gst/vaapi/gstvaapifilter.h:
6664         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
6665         * tests/test-filter.c:
6666           libs: filter: remove custom ref() and unref()
6667           Replacing them by gst_object_ref() and gst_object_unref()
6668           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6669
6670 2018-05-22 14:26:48 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6671
6672         * gst-libs/gst/vaapi/gstvaapifilter.c:
6673         * gst-libs/gst/vaapi/gstvaapifilter.h:
6674           libs: filter: refactor filter as gobject
6675           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6676
6677 2018-05-21 13:38:00 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6678
6679         * gst-libs/gst/vaapi/gstvaapidecoder.c:
6680         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6681           libs: decoder: remove destoy() and create() callbacks
6682           They were all replaced by reset()
6683           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6684
6685 2018-05-21 13:26:01 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6686
6687         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6688           libs: decoder: vp9: implement reset() callback
6689           remove destroy() and create() callback
6690           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6691
6692 2018-05-21 13:25:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6693
6694         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6695           libs: decoder: vp8: implement reset() callback
6696           remove create() and destroy() callbacks
6697           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6698
6699 2018-05-21 13:24:39 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6700
6701         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6702           libs: decoder: vc1: implement reset() callback
6703           remove destroy() and create() callbacks
6704           use g_clear_pointer for rbdu_buffer
6705           no cast for enum
6706           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6707
6708 2018-05-21 13:24:13 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6709
6710         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6711           libs: decoder: mpeg4: implement reset() callback
6712           remove destroy() and create() callback
6713           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6714
6715 2018-05-21 13:22:45 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6716
6717         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6718           libs: decoder: mpeg2: implement reset() callback
6719           remove create() and destroy() callbacks
6720           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6721
6722 2018-05-21 13:22:07 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6723
6724         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6725           libs: decoder: jpeg: implement reset() callback
6726           and remove create() and destroy() callbacks.
6727           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6728
6729 2018-05-21 13:13:31 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6730
6731         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6732           libs: decoder: h265: implement reset() callback
6733           and remove create() and destroy()
6734           and use g_clear_pointer for dpb structure
6735           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6736
6737 2018-05-21 13:11:41 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6738
6739         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6740           libs: decoder: h264: remove create() and destroy() callbacks
6741           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6742
6743 2018-05-21 11:56:11 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6744
6745         * gst-libs/gst/vaapi/gstvaapidecoder.c:
6746         * gst-libs/gst/vaapi/gstvaapidecoder.h:
6747         * tests/test-decode.c:
6748         * tests/test-subpicture.c:
6749           libs: decoder: remove gst_vaapi_decoder_unref()
6750           Replaced by gst_object_unref() in tests
6751           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6752
6753 2018-05-21 11:51:14 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6754
6755         * gst-libs/gst/vaapi/gstvaapidecoder.c:
6756         * gst-libs/gst/vaapi/gstvaapidecoder.h:
6757           libs: decoder: remove gst_vaapi_decoder_ref()
6758           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6759
6760 2018-05-21 11:50:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6761
6762         * gst-libs/gst/vaapi/gstvaapidecoder.c:
6763         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6764           libs: decoder: remove gst_vaapi_decoder_new()
6765           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6766
6767 2018-05-18 16:09:31 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6768
6769         * gst-libs/gst/vaapi/gstvaapidecoder.c:
6770         * gst-libs/gst/vaapi/gstvaapidecoder.h:
6771         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6772         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
6773         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6774         * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
6775         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6776         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
6777         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6778         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
6779         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6780         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
6781         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6782         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6783         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
6784         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6785         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
6786         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6787         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
6788           libs: decoder: refactor decoders as gobject
6789           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6790
6791 2018-08-31 20:56:13 -0500  Matteo Valdina <matteo.valdina@gmail.com>
6792
6793         * gst/vaapi/gstvaapidecode.c:
6794           vaapidecode: Requests upstream a key unit at parse or decode error.
6795           This is done to resume decoding after a parse error or decode error.
6796           Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6797
6798 2018-08-31 20:48:13 -0500  Matteo Valdina <matteo.valdina@gmail.com>
6799
6800         * gst/vaapi/gstvaapidecode.c:
6801           vaapidecode: sets return value in failure case.
6802           In gst_vaapidecode_handle_frame, when there is a decode error
6803           there is a code path the returns an uninitialized value.
6804           Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6805
6806 2018-08-30 18:56:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6807
6808         * gst-libs/gst/vaapi/gstvaapidisplay.c:
6809           libs: display: lock at extracting available image formates
6810           When running several vaapi elements at the concurrently, at
6811           initialization, there is a race condition when extractin the avaible
6812           formats for images and subpictures.
6813           This patch add a lock when the those arrays are filled.
6814           https://bugzilla.gnome.org/show_bug.cgi?id=797039
6815
6816 2018-08-31 14:47:55 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
6817
6818         * meson.build:
6819           meson: Sync libversion and osxversion code from other repos
6820           gstreamer-vaapi does not build any libraries, only plugins, so this is
6821           not used, but sync it just in case someone does add it in the future.
6822
6823 2018-08-29 13:44:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6824
6825         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6826           libs: encoder: h265: trivial documentation fix
6827
6828 2018-08-30 11:08:07 +0800  Wangfei <fei.w.wang@intel.com>
6829
6830         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6831         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6832           libs: encoder: h265: add low delay B frame support.
6833           Low delay B frame provide the function of transforming
6834           P frame into low delay B frame which frame type is B, but
6835           only reference predictive frames. This can be used when P
6836           frame unsupported. Especially for P and B both unsupported,
6837           in this case, I and low delay B frame can be encoded in a
6838           stream.
6839           https://bugzilla.gnome.org/show_bug.cgi?id=796984
6840
6841 2018-08-27 20:42:15 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6842
6843         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6844           libs: decoder: h264: Avoid using picture after it has been free
6845           In some cases, the found_picture ended up being evicted and freed, which
6846           would lead to a use after free when accessing picture->base.poc. In this
6847           fix, we take a ref on the picture before calling dpb_evict.
6848           https://bugzilla.gnome.org/show_bug.cgi?id=787124
6849
6850 2018-07-25 17:03:19 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6851
6852         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6853           h264decoder: Fail decoding slice with missing inter-view reference
6854           Similarly to previous patch, we have no error concealment. As a side
6855           effect, it's better to skip slices with missing references then passing
6856           NULL pointers to the accelerator. Passing NULL pointer would lead to
6857           major visual artifact, a behaviour that is likely undefined.
6858           https://bugzilla.gnome.org/show_bug.cgi?id=787124
6859
6860 2017-09-14 14:25:41 +0900  Hyunjun Ko <zzoon@igalia.com>
6861
6862         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6863           libs: decoder: h264: reset context when the number of view is increased
6864           Usually in case of MVC decoding, dpb size is increasedi if subset sps.
6865           That's why it resets context without this patch.
6866           But for some media it doesn't increase dpb size. Even in this case we
6867           should reset context to deal with MVC decoding.
6868           Otherwise, it leads to assert.
6869           https://bugzilla.gnome.org/show_bug.cgi?id=787124
6870
6871 2018-07-25 13:50:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6872
6873         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6874         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6875         * gst/vaapi/gstvaapidecode.c:
6876           vaapidecode: Skip unparsable units from adapter
6877           If the unit could not be parsed, just skip this nal and keep parsing
6878           what is left in the adapter. We need to flush the broken unit in the
6879           decoder specific parser because the generic code does not know about
6880           units boundary. This increases error resilliance.
6881           Before this, the broken unit would stay in the adapter and EOS would be
6882           returned. Which stopped the streaming. Just removing the EOS would have
6883           lead to the adapter size growing indefinitely.
6884           https://bugzilla.gnome.org/show_bug.cgi?id=796863
6885
6886 2018-07-24 12:40:00 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6887
6888         * gst/vaapi/gstvaapidecode.c:
6889           vaapidecoder: Don't error out on decode errors
6890           This is problematic on live pipeline where loosing network can
6891           cause an important amount of errors.
6892           https://bugzilla.gnome.org/show_bug.cgi?id=796832
6893
6894 2018-07-25 15:47:49 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6895
6896         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6897           h265decoder: Don't scan empty buffer
6898           Same as what we did for H264 decoder, this is to avoid an assertion
6899           in the adapter.
6900           https://bugzilla.gnome.org/show_bug.cgi?id=796832
6901
6902 2018-07-25 20:21:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6903
6904         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6905           libs: h264: renable the vaapi category for logging
6906           h264 log messages were logged in default category because a regression
6907           in code. This patch renable the usage of vaapi logging category.
6908           This regression was introduced in commit 7c365bdd.
6909
6910 2018-07-18 13:09:42 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6911
6912         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6913           h264decoder: Fail decoding slice if modification process failed
6914           This patch chains up failure to executing the modification process. The
6915           end result is that we now fail decoding the slice if this process fails.
6916           This avoid sending a corrupted state to the accelerator. In some special
6917           cases, this could lead to unrecoverable errors.
6918           https://bugzilla.gnome.org/show_bug.cgi?id=796832
6919
6920 2018-07-18 13:07:51 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6921
6922         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6923           h264decoder: Don't scan empty buffer
6924           gst_adapter_masked_scan_uint32_peek() asserts if size is 0. Don't
6925           try and scan in that case. This fixes assertion that would some times
6926           happen when the stream is corrupted.
6927           https://bugzilla.gnome.org/show_bug.cgi?id=796832
6928
6929 2018-07-04 12:51:10 +0800  Tianhao Liu <tianhao.liu@intel.com>
6930
6931         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
6932           libs: encoder: jpeg: set component id and Tqi
6933           This change is due a problem encoding JPEGs with Intel's
6934           media-driver: green/black image when playback jpeg
6935           This patch sets component identifier and quantization table
6936           destination selector in frame header to support packing headers
6937           by Intel's media-driver that does not accept packed header
6938           in AP level.
6939           https://bugzilla.gnome.org/show_bug.cgi?id=796705
6940
6941 2018-06-25 14:20:32 +0200  Mathieu Duponchelle <mathieu@centricular.com>
6942
6943         * gst/vaapi/gstvaapipluginutil.c:
6944           pluginutil: downgrade unsupported driver logging
6945           On systems with an Nvidia card, this error is output each time
6946           the registry is rebuilt, which happens pretty often when
6947           using gst-build as a development environment.
6948           https://bugzilla.gnome.org/show_bug.cgi?id=796663
6949
6950 2018-06-24 13:07:20 +0200  Tim-Philipp Müller <tim@centricular.com>
6951
6952         * gst/vaapi/gstvaapivideobufferpool.c:
6953           Update for g_type_class_add_private() deprecation in recent GLib
6954
6955 2018-05-30 16:01:36 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6956
6957         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6958           h264dec: Remove false assumption about parity order
6959           The decoder was trying to detect earlier that a field was lost base
6960           on guessing the parity order. This breaks in streams were the parity
6961           order changes.
6962           This patch reverts the field order prediction code added by commit
6963           8dd93e9c8.
6964           https://bugzilla.gnome.org/show_bug.cgi?id=796169
6965
6966 2018-05-18 17:03:57 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6967
6968         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6969           h264dec: Properly set sentinel in ref frame list
6970           This ensure that we always have sentinels set in the reference
6971           pictures arrays. The code wasn't unsafe, this simply improve the
6972           tracing, so instead of printing 32 lines of zeros, va tracer
6973           prints proper empty lists.
6974           https://bugzilla.gnome.org/show_bug.cgi?id=796169
6975
6976 2018-06-13 18:00:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6977
6978         * gst-libs/gst/vaapi/gstvaapidecoder.c:
6979         * gst-libs/gst/vaapi/gstvaapidisplay.c:
6980         * gst-libs/gst/vaapi/gstvaapidisplay.h:
6981         * gst-libs/gst/vaapi/gstvaapiencoder.c:
6982         * gst-libs/gst/vaapi/gstvaapifilter.c:
6983         * gst-libs/gst/vaapi/gstvaapiobject.c:
6984         * gst-libs/gst/vaapi/gstvaapivideopool.c:
6985         * gst/vaapi/gstvaapipluginbase.c:
6986         * gst/vaapi/gstvaapivideometa.c:
6987         * tests/test-decode.c:
6988           libs: display: remove gst_vaapi_display_ref()
6989           Replace it with gst_object_ref()
6990           https://bugzilla.gnome.org/show_bug.cgi?id=796470
6991
6992 2018-06-13 17:54:23 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6993
6994         * gst-libs/gst/vaapi/gstvaapidisplay.c:
6995         * gst-libs/gst/vaapi/gstvaapidisplay.h:
6996         * gst/vaapi/gstvaapi.c:
6997         * gst/vaapi/gstvaapidecode.c:
6998         * gst/vaapi/gstvaapiencode.c:
6999         * gst/vaapi/gstvaapipluginbase.c:
7000         * gst/vaapi/gstvaapipluginutil.c:
7001         * tests/output.c:
7002         * tests/simple-encoder.c:
7003         * tests/test-decode.c:
7004         * tests/test-display.c:
7005         * tests/test-fei-enc-in.c:
7006         * tests/test-filter.c:
7007         * tests/test-subpicture.c:
7008         * tests/test-surfaces.c:
7009         * tests/test-textures.c:
7010         * tests/test-windows.c:
7011           libs: display: remove gst_vaapi_display_unref()
7012           Use gst_object_unref() instead.
7013           https://bugzilla.gnome.org/show_bug.cgi?id=796470
7014
7015 2018-06-13 18:10:28 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7016
7017         * gst/vaapi/gstvaapivideobufferpool.c:
7018           vaapibufferpool: declare parameter display as object
7019           We have neglected to update this code since GstVaapiDisplay turned
7020           into a GstObject descendant.
7021           https://bugzilla.gnome.org/show_bug.cgi?id=796470
7022
7023 2018-06-01 12:36:51 +0900  Hyunjun Ko <zzoon@igalia.com>
7024
7025         * gst-libs/gst/vaapi/gstvaapidisplay.c:
7026         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7027         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7028         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
7029         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7030         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7031         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7032           libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config()
7033           Gobjectification for GstVaapiDisplay was almost done by the commit 185da3d1.
7034           But still something breaking GObject code convention remains, which is
7035           calling gst_vaapi_display_new() in each decendants.
7036           This patch replaces it with gst_vaapi_display_config(), defined in private
7037           header.
7038           https://bugzilla.gnome.org/show_bug.cgi?id=796470
7039
7040 2018-06-13 17:05:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7041
7042         * gst-libs/gst/vaapi/gstvaapidisplay.c:
7043           libs: display: redefine gst_vaapi_display_create()
7044           The function name was gst_vaapi_display_create_unlocked(), nonetheless
7045           it wasn't called unlocked. In order to keep the semantics this patch
7046           renames the gst_vaapi_display_create_unlocked() as
7047           gst_vaapi_display_create(), removing the previous function
7048           gst_vaapi_display_create().
7049           https://bugzilla.gnome.org/show_bug.cgi?id=796470
7050
7051 2018-06-12 15:53:04 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7052
7053         * meson.build:
7054           Revert "build: meson: libva gst-uninstall friendly"
7055           This reverts commit fc3eef9c432c1628cb92ab56e74924cf1182da30.
7056
7057 2018-06-12 15:13:33 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7058
7059         * gst/vaapi/gstvaapipluginutil.c:
7060           plugins: fix compilation
7061           gstvaapipluginutil.c:171:1: error: old-style function definition [-Werror=old-style-definition]
7062
7063 2018-04-20 18:05:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7064
7065         * meson.build:
7066           build: meson: libva gst-uninstall friendly
7067           Make gstreamer-vaapi to use libva uninstalled.
7068
7069 2018-06-10 10:44:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7070
7071         * gst/vaapi/gstvaapipluginutil.c:
7072           plugins: refactor gst_vaapi_create_display_from_gl_context()
7073           gst_vaapi_create_display_from_gl_context() was a spaghetti mess.
7074           This path refactors it, in order to make the code readable and
7075           easy to follow.
7076           https://bugzilla.gnome.org/show_bug.cgi?id=796564
7077
7078 2018-05-25 12:17:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7079
7080         * gst-libs/gst/vaapi/gstvaapidisplay.c:
7081         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7082         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7083           libs: display: resurrect parent private member
7084           This is, practically, a revert of commit dcf135e2.
7085           The parent logic is useful for the EGL display, which is a decorator
7086           of the real windowing subsystem (X11 or Wayland). Thus it is avoided
7087           calling vaInitialize() and vaTerminate() twice.
7088           https://bugzilla.gnome.org/show_bug.cgi?id=795391
7089
7090 2018-04-27 18:35:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7091
7092         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7093           libs: display: egl: initialize params structure
7094           Statically initialise the internal params structure.
7095           https://bugzilla.gnome.org/show_bug.cgi?id=795391
7096
7097 2018-04-27 18:34:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7098
7099         * gst/vaapi/gstvaapipluginutil.c:
7100           plugins: handle EGL when creating VAAPI display from gl
7101           If GstGL reports a EGL platform force to create a EGL display using
7102           the native EGL display.
7103           https://bugzilla.gnome.org/show_bug.cgi?id=795391
7104
7105 2018-04-24 18:17:24 +0900  Hyunjun Ko <zzoon@igalia.com>
7106
7107         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7108         * gst/vaapi/gstvaapipluginutil.c:
7109           display: egl: create VaapiDisplayEGL with native EGL display
7110           gst_vaapi_display_egl_new_with_native_display() has been broken since
7111           it wasn't used.
7112           Currently it's needed to call this API to create a display providing
7113           the EGL display, so it could avoid duplicated calls to the native
7114           display (eg. eglTerminate).
7115           Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
7116           https://bugzilla.gnome.org/show_bug.cgi?id=795391
7117
7118 2018-06-07 09:34:11 +0800  Tianhao Liu <tianhao.liu@intel.com>
7119
7120         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
7121           libs: decoder: release VA buffers after vaEndPicture
7122           This change is due a problem decoding JPEGs with Intel's media-driver:
7123           no image was generated.
7124           This patch relases the VA buffers after vaEndPicture() is called,
7125           and not before (after vaRenderPicture()).
7126           https://bugzilla.gnome.org/show_bug.cgi?id=796505
7127
7128 2018-06-07 19:49:02 +0100  Tim-Philipp Müller <tim@centricular.com>
7129
7130         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
7131         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
7132         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
7133           meson: fix build when xrender or xrandr are not available
7134           HAVE_XRENDER are defined to 1 or 0, not defined or undefined.
7135
7136 2018-05-25 16:47:00 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
7137
7138         * gst/vaapi/gstvaapipostproc.c:
7139           vaapipostproc: don't copy the GstParentBufferMeta if use_vpp
7140           Otherwise a reference to a DMABuf input buffer is kept until the output
7141           buffer is deleted.
7142           https://bugzilla.gnome.org/show_bug.cgi?id=796399
7143
7144 2018-05-22 21:13:08 +0900  Hyunjun Ko <zzoon@igalia.com>
7145
7146         * gst-libs/gst/vaapi/gstvaapidisplay.c:
7147         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7148           libs: display: remove unnecessary legacy code since gobjectification
7149           https://bugzilla.gnome.org/show_bug.cgi?id=796470
7150
7151 2018-05-22 21:05:54 +0900  Hyunjun Ko <zzoon@igalia.com>
7152
7153         * gst-libs/gst/vaapi/gstvaapidisplay.c:
7154         * gst-libs/gst/vaapi/gstvaapidisplay.h:
7155           libs: display: remove unused code
7156           https://bugzilla.gnome.org/show_bug.cgi?id=796470
7157
7158 2018-06-05 15:16:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7159
7160         * gst/vaapi/gstvaapiencode_h264.c:
7161           vaapiencode: h264: log output caps
7162
7163 2018-06-05 22:38:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7164
7165         * gst/vaapi/gstvaapiencode_h264.c:
7166           vaapiencode: h264: find profile in available and allowed caps
7167           The commit 67e33d3de225d0e006d7bf606e7abb20d4544eab ("vaapiencode: h264:
7168           find best profile in those available") changed the code to pick a profile
7169           that is actually supported by the hardware. Unfortunately it dropped the
7170           downstream constraints. This can cause negotiation failures under certain
7171           circumstances.
7172           The fix is split in two cases:
7173           1\ the available VA-API caps doesn't intersect with pipeline's allowed
7174           caps:
7175           * The best allowed profile (pipeline's caps) is set as the encoding
7176           target profile (it will be adjusted later by the available profiles
7177           and properties)
7178           2\ the available VA-API caps does intersect with pipeline's allowed
7179           caps:
7180           * The intersected caps are fixed, and its profile is set as the
7181           encoding target profile. In this case the is not the best profile,
7182           but the minimal one (if VA-API reports the profiles in order).
7183           Setting the minimal profile of the intersected caps is better for
7184           compatibility.
7185           This patch fixes other tests related with caps negotiation, for
7186           example, it handles baseline profile, even when VA only supports
7187           constrained-baseline.
7188           Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
7189           https://bugzilla.gnome.org/show_bug.cgi?id=794306
7190
7191 2018-06-01 15:27:25 +0900  Hyunjun Ko <zzoon@igalia.com>
7192
7193         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7194           libs: encoder: h265: increase log2_max_pic_order_cnt range according to spec
7195           The specification says,
7196           "log2_max_pic_order_cnt_lsb_minus4 shall be in the range of 0 to 12, inclusive."
7197           This patch changes the upper limit from 6 to 12.
7198           https://bugzilla.gnome.org/show_bug.cgi?id=796179
7199
7200 2018-05-21 13:27:14 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7201
7202         * gst/vaapi/gstvaapipluginutil.c:
7203           plugins: guard GstGL code
7204
7205 2018-05-18 18:23:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7206
7207         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7208           libs: decoder: h264: use g_clear_pointer()
7209
7210 2018-05-18 17:27:46 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7211
7212         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
7213         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
7214           libs: decoder: mpeg4, vc1: remove unused header
7215
7216 2018-05-18 11:09:58 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7217
7218         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7219           libs: decoder: remove unused forward declaration
7220
7221 2018-05-07 07:59:25 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
7222
7223         * configure.ac:
7224           fix configure.ac regression
7225           Fixes regression introduced by 77527d67abe
7226           https://bugzilla.gnome.org/show_bug.cgi?id=795885
7227
7228 2018-05-05 17:57:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7229
7230         * gst-libs/gst/Makefile.am:
7231         * gst-libs/gst/base/Makefile.am:
7232         * gst-libs/gst/base/gstbitwriter.c:
7233         * gst-libs/gst/base/gstbitwriter.h:
7234         * gst-libs/gst/base/meson.build:
7235         * gst-libs/gst/meson.build:
7236         * gst-libs/gst/vaapi/Makefile.am:
7237         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7238         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7239         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7240         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7241         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7242         * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7243         * gst-libs/gst/vaapi/meson.build:
7244           libs: remove gstbitwriter
7245           Since it is deployed in gstreamer-core, there is no need to use
7246           our custom version.
7247           https://bugzilla.gnome.org/show_bug.cgi?id=795848
7248
7249 2018-04-28 16:10:46 +0800  Wang,Fei <fei.w.wang@intel.com>
7250
7251         * gst/vaapi/gstvaapidecode.c:
7252           vaapih264dec: add constrained and progressive profiles
7253           Those profiles have been added in the version 2012-01
7254           and 2011-06 of the AVC spec (A.2.4.1 and A.2.4.2).
7255           Both are supported by VAProfileH264High
7256           https://bugzilla.gnome.org/show_bug.cgi?id=795624
7257
7258 2018-04-26 18:15:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7259
7260         * gst/vaapi/gstvaapipluginbase.c:
7261         * gst/vaapi/gstvaapipluginutil.c:
7262         * gst/vaapi/gstvaapivideocontext.c:
7263         * gst/vaapi/gstvaapivideocontext.h:
7264           plugin: remove custom GstGL context handling
7265           Instead of using our own context handling for looking for GstGL
7266           parameters (display, context and other context), this patch changes
7267           the logic to use the utility function offered by GstGL.
7268           https://bugzilla.gnome.org/show_bug.cgi?id=793643
7269
7270 2018-04-26 15:03:23 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7271
7272         * gst/vaapi/gstvaapipluginbase.c:
7273           plugins: GstGL API must use the member variables
7274           This commit basically is a revert of commits 8092537 and fc1c415
7275           https://bugzilla.gnome.org/show_bug.cgi?id=793643
7276
7277 2018-04-25 16:24:32 +0900  Hyunjun Ko <zzoon@igalia.com>
7278
7279         * gst/vaapi/gstvaapipluginbase.c:
7280           plugins: pass members as parameters of gst_gl_ensure_element_data()
7281           The parameters of gst_gl_ensure_element_data() have to be not
7282           local variable since they are going to be used to see if they're
7283           set in gst_element_set_context() inside the API.
7284           This is basically a revert of commit 3d56306c
7285           https://bugzilla.gnome.org/show_bug.cgi?id=793643
7286
7287 2018-04-25 17:50:14 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7288
7289         * meson.build:
7290           meson: fix USE_GLES_VERSION_MASK
7291           1. The macro in the code is USE_GLES_VERSION_MASK
7292           2. glesv3 is provided by glesv2 pkg-config, then it's required to
7293           check headers
7294           https://bugzilla.gnome.org/show_bug.cgi?id=795391
7295
7296 2018-04-24 18:12:44 +0900  Hyunjun Ko <zzoon@igalia.com>
7297
7298         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7299           libs: egl: utils: mark context as wrapped when it is
7300           The returning egl context may be null, so we should check the
7301           return value.
7302           https://bugzilla.gnome.org/show_bug.cgi?id=795391
7303
7304 2018-04-24 10:02:33 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7305
7306         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7307           libs: egl: utils: fix usage of GstGL macros
7308           Include gl.h for the required GstGL symbols.
7309           https://bugzilla.gnome.org/show_bug.cgi?id=795391
7310
7311 2018-04-25 11:01:45 +0100  Tim-Philipp Müller <tim@centricular.com>
7312
7313         * meson.build:
7314           meson: use -Wl,-Bsymbolic-functions where supported
7315           Just like the autotools build.
7316
7317 2018-04-20 16:01:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7318
7319         * meson.build:
7320           meson: use get_pkgconfig_variable()
7321           Use get_pkgconfig_variable() method, of dependency class, rather
7322           than using run_command().
7323
7324 2018-04-20 11:50:55 +0100  Tim-Philipp Müller <tim@centricular.com>
7325
7326         * gst-libs/gst/base/meson.build:
7327         * gst-libs/gst/vaapi/meson.build:
7328         * meson.build:
7329           meson: fix miscellaneous meson warnings
7330           WARNING: Passed invalid keyword argument "rqeuired".
7331           gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "version".
7332           gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "soversion".
7333           gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "version".
7334           gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "soversion".
7335
7336 2018-03-30 13:41:39 +0200  Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7337
7338         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7339           display: drm: Allow finding DRM paths out of the PCI subsystem
7340           This removes hard-coded checks on the parent subsystem of potential DRM
7341           devices. These checks were set to exlude devices that do not originate
7342           from the PCI bus, which is only a valid approach on x86 devices.
7343           Other devices may have a DRM device originating from the platform
7344           subsystem, so the checks that were previously restricted to PCI are
7345           extended to cover platform devices as well.
7346           https://bugzilla.gnome.org/show_bug.cgi?id=794840
7347           Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7348
7349 2017-11-08 13:27:06 +0900  Hyunjun Ko <zzoon@igalia.com>
7350
7351         * gst/vaapi/gstvaapivideocontext.c:
7352           videocontext: support wl-display in "gst.vaapi.app.Display"
7353           Through "gst.vaapi.app.Display" context, users can set their own
7354           VADisplay and native display of their backend.
7355           So far we support only X11 display, from now we also support Wayland
7356           display.
7357           Attributes:
7358           - wl-display : pointer of struct wl_display .
7359           https://bugzilla.gnome.org/show_bug.cgi?id=705821
7360
7361 2017-11-08 13:26:38 +0900  Hyunjun Ko <zzoon@igalia.com>
7362
7363         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7364         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
7365           libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display()
7366           Implements new API function so that users could create GstVaapiDisplay
7367           with their own VADisplay within a native display as backend.
7368           https://bugzilla.gnome.org/show_bug.cgi?id=705821
7369
7370 2018-04-13 09:28:53 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
7371
7372         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
7373           wayland: don't poll if there are no pending frames
7374           Otherwise the following poll may not return for an arbitrary amount of
7375           time. This can happen if another wayland event queue has flushed and read
7376           our events.
7377           https://bugzilla.gnome.org/show_bug.cgi?id=795224
7378
7379 2017-10-16 12:09:08 +0900  Hyunjun Ko <zzoon@igalia.com>
7380
7381         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7382           libs: encoder: h265: 16 bit rounding of picture width and height
7383           pic_width_in_luma_samples/pic_height_in_luma_samples can be 16-bit rounded
7384           instead of 32-bit.
7385           In addition, codedbuf_size must be calculated according to this change.
7386           https://bugzilla.gnome.org/show_bug.cgi?id=753229
7387
7388 2018-04-16 10:53:47 +0100  Tim-Philipp Müller <tim@centricular.com>
7389
7390         * common:
7391           Automatic update of common submodule
7392           From 3fa2c9e to ed78bee
7393
7394 2018-03-30 20:39:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7395
7396         * gst/vaapi/gstvaapiencode_h264.c:
7397           vaapiencode: h264: find best profile in those available
7398           Instead to look for the best profile in the allowed profiles by
7399           downstream, the encoder should look for the base profile in the
7400           available profile in VA-API.
7401           https://bugzilla.gnome.org/show_bug.cgi?id=794306
7402
7403 2018-03-20 10:49:10 +0000  Tim-Philipp Müller <tim@centricular.com>
7404
7405         * NEWS:
7406         * RELEASE:
7407         * configure.ac:
7408         * docs/plugins/inspect/plugin-vaapi.xml:
7409         * meson.build:
7410           Back to development
7411
7412 === release 1.14.0 ===
7413
7414 2018-03-19 20:30:28 +0000  Tim-Philipp Müller <tim@centricular.com>
7415
7416         * ChangeLog:
7417         * NEWS:
7418         * configure.ac:
7419         * gstreamer-vaapi.doap:
7420         * meson.build:
7421           Release 1.14.0
7422
7423 2018-03-12 16:59:01 +0000  Julien Isorce <jisorce@oblong.com>
7424
7425         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7426           libs: decoder: h264: ensure num_ref_frames is greater than 0
7427           Even if it is the h264parse fault or bad video file, vaapih264dec
7428           should set a proper value for VAPictureParameterBufferH264.num_ref_frames
7429           as the driver might use it.
7430           Also see "info.ref_frames = dpb_size;" in
7431           gstvaapidecoder_h264.c::ensure_context
7432           https://bugzilla.gnome.org/show_bug.cgi?id=793836
7433
7434 === release 1.13.91 ===
7435
7436 2018-03-13 19:32:05 +0000  Tim-Philipp Müller <tim@centricular.com>
7437
7438         * ChangeLog:
7439         * NEWS:
7440         * configure.ac:
7441         * gstreamer-vaapi.doap:
7442         * meson.build:
7443           Release 1.13.91
7444
7445 === release 1.13.90 ===
7446
7447 2018-03-03 22:59:30 +0000  Tim-Philipp Müller <tim@centricular.com>
7448
7449         * ChangeLog:
7450         * NEWS:
7451         * configure.ac:
7452         * gstreamer-vaapi.doap:
7453         * meson.build:
7454           Release 1.13.90
7455
7456 2018-03-01 07:33:27 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7457
7458         * gst/vaapi/gstvaapipostproc.c:
7459           vaapipostproc: change how the metadata is copied
7460           Instead of copying the metada in prepare_output_buffer() vmethod,
7461           it is done in append_output_buffer_metadata() thus deinterlaced
7462           buffers could also have the proper metas.
7463           GstVideoCropMeta now it is copied internally and it is decided via
7464           transform_meta() vmethod.
7465           A new internal method, copy_metadata() was added to handle VPP
7466           transformation where non-GstVideoVaapiMeta metas were lost.
7467
7468 2018-02-27 16:20:15 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
7469
7470         * gst/vaapi/gstvaapipostproc.c:
7471           postproc: Copy meta data from input to output
7472           This will ensure that meta data without memory tags will be copied. This
7473           was noticed when testing ROI.
7474           https://bugzilla.gnome.org/show_bug.cgi?id=768248
7475
7476 2018-02-23 10:48:36 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7477
7478         * tests/elements/test-roi.c:
7479           tests: element: rewrite ROI test
7480           Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
7481           than injecting GstEvents. These meta are added as a pad probe in
7482           the queue src pad.
7483           Also
7484           * Use of navigation messages to control de test
7485           * Use signal watch for processing messages
7486           * Change to H265 rather than H264 since current intel-vaapi-driver
7487           only supports ROI on kabylake.
7488           TODO: add a parameter to change the encoder/decoder to test.
7489           https://bugzilla.gnome.org/show_bug.cgi?id=768248
7490
7491 2018-02-22 14:20:42 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7492
7493         * gst-libs/gst/vaapi/gstvaapicontext.c:
7494         * gst-libs/gst/vaapi/gstvaapiencoder.c:
7495         * gst-libs/gst/vaapi/gstvaapiencoder.h:
7496         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7497         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7498         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7499           libs: encoder: reimplement ROI using meta
7500           Check input buffers for ROI metas and pass them to VA. Also added a
7501           new "default-roi-delta-qp" property in order to tell the encoder what
7502           delta QP should be applied to ROI by default.
7503           Enabled it for H264 and H265 encoders.
7504           https://bugzilla.gnome.org/show_bug.cgi?id=768248
7505
7506 2018-02-22 08:22:35 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7507
7508         * gst-libs/gst/vaapi/gstvaapiencoder.c:
7509         * gst-libs/gst/vaapi/gstvaapiencoder.h:
7510         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7511           Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
7512           This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
7513           https://bugzilla.gnome.org/show_bug.cgi?id=768248
7514
7515 2018-02-22 14:29:19 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7516
7517         * tests/simple-encoder.c:
7518           Revert "tests: simple-encoder: add an option to set ROI"
7519           This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
7520           https://bugzilla.gnome.org/show_bug.cgi?id=768248
7521
7522 2018-02-21 10:56:47 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7523
7524         * gst/vaapi/gstvaapiencode.c:
7525         * gst/vaapi/gstvaapiencode_h264.c:
7526           Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
7527           This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
7528           https://bugzilla.gnome.org/show_bug.cgi?id=768248
7529
7530 2018-02-23 09:25:51 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7531
7532         * gst/vaapi/gstvaapipluginbase.c:
7533           plugins: copy input buffer metas
7534           When importing buffers to a VA-base buffer, it is required to copy
7535           the metas in the original buffer, otherwise information will be
7536           lost, such as GstVideoRegionOfInterestMeta.
7537           https://bugzilla.gnome.org/show_bug.cgi?id=768248
7538
7539 2018-02-27 06:10:09 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7540
7541         * gst-libs/gst/vaapi/gstvaapisurface.c:
7542           libs: surface: cast to uintptr_t pointer
7543           According to Debian package auto-building, uintptr_t is not an
7544           unsigned long in i386 arch, raising an "incompatible pointer type"
7545           error.
7546           This patch adds a casting for compiler's satisfaction in i386.
7547
7548 2018-02-25 20:46:56 -0600  Matteo Valdina <matteo.valdina@gmail.com>
7549
7550         * gst-libs/gst/vaapi/gstvaapiencoder.c:
7551           libs: encoder: add zero as valid value for periodic keyframe.
7552           Enabled zero as valid value for keyframe-period property.
7553           https://bugzilla.gnome.org/show_bug.cgi?id=793829
7554
7555 2018-02-22 08:24:12 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7556
7557         * gst-libs/gst/vaapi/gstvaapiencoder.c:
7558           libs: encoder: code-style fix
7559
7560 2018-02-17 18:32:11 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7561
7562         * gst/vaapi/gstvaapidecode.c:
7563           vaapidecode: generate system allocated buffers
7564           Generate system allocated output buffers when downstream doesn't
7565           support GstVideoMeta.
7566           The VA buffer content is copied to the new output buffer, and it
7567           replaces the VA buffer.
7568           https://bugzilla.gnome.org/show_bug.cgi?id=785054
7569
7570 2018-02-15 19:32:37 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7571
7572         * gst/vaapi/gstvaapipostproc.c:
7573           vaapipostproc: handle system allocated buffers when required
7574           When downstream can't handle GstVideoMeta it is required to send
7575           system allocated buffers.
7576           The system allocated buffers are produced in prepare_output_buffer()
7577           vmethod if downstream can't handl GstVideoMeta.
7578           At transform() vmethod if the buffer is a system allocated buffer,
7579           a VA buffer is instanciated and replaces the out buffer. Later
7580           the VA buffer is copied to the system allocate buffer and it
7581           replaces the output buffer.
7582           https://bugzilla.gnome.org/show_bug.cgi?id=785054
7583
7584 2018-02-15 19:32:19 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7585
7586         * gst/vaapi/gstvaapipluginbase.c:
7587         * gst/vaapi/gstvaapipluginbase.h:
7588           plugins: add gst_vaapi_copy_va_buffer()
7589           This helper function aims to copy buffers with VA memory to dumb
7590           buffers, when GstVideoMeta is not available dowstream.
7591           https://bugzilla.gnome.org/show_bug.cgi?id=785054
7592
7593 2018-02-15 19:29:51 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7594
7595         * gst/vaapi/gstvaapipluginbase.c:
7596         * gst/vaapi/gstvaapipluginbase.h:
7597           plugins: add COPY_OUTPUT_FRAME flag
7598           This patch add the member copy_output_frame and set it TRUE when
7599           when downstream didn't request GstVideoMeta API, the caps are raw
7600           and the internal allocator is the VA-API one.
7601           https://bugzilla.gnome.org/show_bug.cgi?id=785054
7602
7603 2018-02-15 19:28:33 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7604
7605         * gst/vaapi/gstvaapipluginbase.c:
7606         * gst/vaapi/gstvaapipluginbase.h:
7607           plugins: store the first downstream allocator if available
7608           The allocator will be required if we need to allocate a buffer
7609           to store the frame with the expected strides.
7610           https://bugzilla.gnome.org/show_bug.cgi?id=785054
7611
7612 2018-02-20 02:25:13 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7613
7614         * gst/vaapi/gstvaapivideobufferpool.c:
7615         * gst/vaapi/gstvaapivideobufferpool.h:
7616           vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
7617           This function will inform the element if it shall copy the generated
7618           buffer by the pool to a system allocated buffer before pushing it
7619           to downstream.
7620           https://bugzilla.gnome.org/show_bug.cgi?id=785054
7621
7622 2018-02-15 19:22:08 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7623
7624         * gst/vaapi/gstvaapivideobufferpool.c:
7625           vaapibufferpool: don't change config when forcing video meta
7626           VA-API based buffer might need a video meta because of different
7627           strides. But when donwstream doesn't support video meta we need to
7628           force the usage of video meta.
7629           Before we changed the buffer pool configuration, but actually this
7630           is a hack and we cannot rely on that for downstream.
7631           This patch add a check fo raw video caps and allocator is VA-API,
7632           then the option is enabled without changing the pool configuration.
7633           In this case the element is responsible to copy the frame to a
7634           simple buffer with the expected strides.
7635           https://bugzilla.gnome.org/show_bug.cgi?id=785054
7636
7637 2018-02-20 09:15:05 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7638
7639         * gst/vaapi/gstvaapipostproc.c:
7640           vaapipostproc: set discont flag at vpp deinterlacing
7641           When deinterlacing with VPP the discont flag was not forwarded to
7642           the new created buffer. This patch sets the discont flag if input
7643           buffer has it.
7644
7645 2018-02-20 02:14:37 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7646
7647         * gst/vaapi/gstvaapivideobufferpool.h:
7648           vaapibufferpool: remove wrong gcc annotation
7649
7650 2018-02-15 14:55:42 -0600  Matteo Valdina <matteo.valdina@gmail.com>
7651
7652         * gst-libs/gst/vaapi/gstvaapiencoder.c:
7653         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7654         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7655         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7656         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
7657         * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7658         * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
7659           libs: encoder: h264,h265: extend max periodic keyframe.
7660           Increased max values of periodic key frame for h26x codecs.
7661           This allow more fine tunning of encoder that in certian scenario
7662           want higher periodic key frame.
7663           For example: it doesn't want a key frame each 10 seconds but
7664           each 120 seconds.
7665           https://bugzilla.gnome.org/show_bug.cgi?id=786320
7666
7667 2018-02-15 19:44:35 +0000  Tim-Philipp Müller <tim@centricular.com>
7668
7669         * configure.ac:
7670         * meson.build:
7671           Back to development
7672
7673 === release 1.13.1 ===
7674
7675 2018-02-15 17:39:16 +0000  Tim-Philipp Müller <tim@centricular.com>
7676
7677         * Makefile.am:
7678         * NEWS:
7679         * configure.ac:
7680         * gstreamer-vaapi.doap:
7681         * meson.build:
7682           Release 1.13.1
7683
7684 2018-02-15 18:15:33 +0000  Tim-Philipp Müller <tim@centricular.com>
7685
7686         * gst/vaapi/Makefile.am:
7687           vaapi: dist new header
7688
7689 2018-02-12 17:53:58 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7690
7691         * gst/vaapi/gstvaapi.c:
7692           vaapi: register vaapisink as marginal on wayland
7693           vaapsink, when used with the Intel VA-API driver, tries to display
7694           surfaces with format NV12, which are handled correctly by
7695           Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
7696           pipelines on mutter.
7697           This shall be solved either by COGL or by making the driver to paint
7698           RGB surfaces. In the meanwhile, let's just demote vaapisink as
7699           marginal when the Wayland environment is detected, no matter if it is
7700           Weston.
7701           https://bugzilla.gnome.org/show_bug.cgi?id=775698
7702
7703 2018-02-12 19:00:36 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7704
7705         * gst/vaapi/gstvaapipluginutil.c:
7706           plugins: update mesa's vendor string in whitelist
7707           Mesa has updated its VA-API Gallium driver vendor string:
7708           https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
7709           This patch tries to cover both, the old and the new one.
7710           https://bugzilla.gnome.org/show_bug.cgi?id=793386
7711
7712 2018-02-08 19:22:17 +0000  Tim-Philipp Müller <tim@centricular.com>
7713
7714         * meson.build:
7715           meson: make version numbers ints and fix int/string comparison
7716           WARNING: Trying to compare values of different types (str, int).
7717           The result of this is undefined and will become a hard error
7718           in a future Meson release.
7719
7720 2018-02-07 09:13:26 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7721
7722         * gst/vaapi/gstvaapipluginbase.c:
7723           plugins: handle vaapi allocator in allocation query
7724           In propose_allocation() if the numer of allocation params is zero, the
7725           system's allocator is added first, and lastly the native VA-API
7726           allocator.
7727           In decide_allocation(), the allocations params in query are travered,
7728           looking for a native VA-API allocator. If it is found, it is reused as
7729           src pad allocator. Otherwise, a new allocator is instantiated and
7730           appended in the query.
7731           https://bugzilla.gnome.org/show_bug.cgi?id=789476
7732
7733 2018-02-07 09:06:46 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7734
7735         * gst/vaapi/gstvaapivideomemory.h:
7736           vaapivideomemory: remove unused macro
7737           GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
7738           was never used, since the native VA-API allocator name has been
7739           GST_VAAPI_VIDEO_MEMORY_NAME.
7740           This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
7741           https://bugzilla.gnome.org/show_bug.cgi?id=789476
7742
7743 2018-02-02 08:54:00 +0000  VaL Doroshchuk <valkov@yandex.ru>
7744
7745         * gst/vaapi/gstvaapisink.c:
7746           vaapisink: don't mask button events for foreign windows
7747           Don't subscribe to button press events when using a foreing window,
7748           because the user created window would trap those events, preveting the
7749           show of frames.
7750           https://bugzilla.gnome.org/show_bug.cgi?id=791615
7751
7752 2018-02-05 08:51:56 +0100  Tim-Philipp Müller <tim@centricular.com>
7753
7754         * configure.ac:
7755           autotools: use -fno-strict-aliasing where supported
7756           https://bugzilla.gnome.org/show_bug.cgi?id=769183
7757
7758 2018-01-30 20:38:37 +0000  Tim-Philipp Müller <tim@centricular.com>
7759
7760         * meson.build:
7761           meson: use -fno-strict-aliasing where supported
7762           https://bugzilla.gnome.org/show_bug.cgi?id=769183
7763
7764 2018-01-30 12:56:49 +0000  Philippe Normand <philn@igalia.com>
7765
7766         * gst/vaapi/gstvaapi.c:
7767           vaapi: add NULL-sentinel to kernel_names
7768           The array needs to be NULL-terminated according to the
7769           gst_plugin_add_dependency() documentation.
7770
7771 2018-01-18 18:53:29 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7772
7773         * gst/vaapi/gstvaapipostprocutil.c:
7774           vaapipostproc: remove spurious code
7775           This assignation is dead code, since gst_video_info_from_caps() set
7776           to 1 by default.
7777           https://bugzilla.gnome.org/show_bug.cgi?id=790149
7778
7779 2018-01-18 18:51:57 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7780
7781         * gst/vaapi/gstvaapipostprocutil.c:
7782           vaapipostproc: if no p-a-r in out caps define a range
7783           Instead of copying the pixel-aspect-ratio from the sink caps, define
7784           an open range for the src caps pixel-aspect-ratio. Later it will be
7785           defined.
7786           https://bugzilla.gnome.org/show_bug.cgi?id=790149
7787
7788 2018-01-18 13:10:59 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7789
7790         * gst/vaapi/gstvaapisink.c:
7791           vaapisink: check for display's color-balance properties
7792           Check for display's color-balance properties, available by the VA-API
7793           driver, before setting them.
7794           Also logs an info message of those unavailable properties.
7795           https://bugzilla.gnome.org/show_bug.cgi?id=792638
7796
7797 2018-01-17 17:30:50 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7798
7799         * gst/vaapi/gstvaapipluginbase.c:
7800           plugins: re-using buffer pool breaks renegotiation
7801           at propose_allocation() we should not reuse the proposed buffer,
7802           because it could break renegotiation.
7803           https://bugzilla.gnome.org/show_bug.cgi?id=792620
7804
7805 2018-01-17 17:26:24 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7806
7807         * gst/vaapi/gstvaapipluginbase.c:
7808           plugins: use g_clear_object() to unref sinkpad_buffer_pool
7809           https://bugzilla.gnome.org/show_bug.cgi?id=792620
7810
7811 2018-01-17 12:42:12 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7812
7813         * gst-libs/gst/vaapi/meson.build:
7814           build: meson: add missing GstGL dependency
7815
7816 2018-01-17 12:41:54 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7817
7818         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7819           libs: utils: egl: add missing guards for GstGL
7820
7821 2018-01-11 11:48:02 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7822
7823         * gst/vaapi/gstvaapipluginbase.c:
7824           plugins: remove dmabuf-import hack
7825           Remove the hack to check if an upstream element has enabled the
7826           property io-mode enabled as dmabuf-import.
7827           https://bugzilla.gnome.org/show_bug.cgi?id=792034
7828
7829 2017-12-01 15:04:35 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7830
7831         * gst-libs/gst/vaapi/Makefile.am:
7832         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7833         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7834         * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
7835           libs: egl: utils: use eglGetPlatformDisplay()
7836           eglGetDisplay() is currently broken in Mesa for Wayland.  Also using
7837           eglGetDisplay() is rather fragile, and it is recommended to use
7838           eglGetPlatformDisplay() when possible.
7839           In order to do that, this patch uses the helper in GstGL. If
7840           gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
7841           will be used.
7842           https://bugzilla.gnome.org/show_bug.cgi?id=790493
7843
7844 2017-12-08 14:46:02 +0100  Michael Tretter <m.tretter@pengutronix.de>
7845
7846         * gst/vaapi/gstvaapipostproc.c:
7847           vaapipostproc: lock ensure_filter with postproc_lock
7848           gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
7849           and allowed_sinkpad_caps. This can race with copying these caps in
7850           gst_vaapipostproc_transform_caps and lead to segfaults.
7851           The gst_vaapipostproc_transform_caps function already locks
7852           postproc_lock before copying the caps. Make sure that calls to
7853           gst_vaapipostproc_ensure_filter also acquire this lock.
7854           https://bugzilla.gnome.org/show_bug.cgi?id=791404
7855
7856 2018-01-10 17:10:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7857
7858         * tests/test-filter.c:
7859           tests: test-filter: fix dereference before null check
7860           Null-checking op_info suggests that it may be null, but it has already
7861           been dereferenced on all paths leading to the check.
7862           There may be a null pointer dereference, or else the comparison
7863           against null is unnecessary.
7864
7865 2018-01-10 17:06:53 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7866
7867         * tests/y4mreader.c:
7868           tests: y4mreader: fix string state checkup
7869           str cannot be null in that moment, but it may be the end of string.
7870
7871 2018-01-10 16:59:56 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7872
7873         * tests/y4mreader.c:
7874           tests: y4mreader: use int for fgetc
7875           Assigning the return value of fgetc to char truncates its value.
7876           It will not be possible to distinguish between EOF and a valid
7877           character.
7878
7879 2018-01-10 16:48:07 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7880
7881         * tests/y4mreader.c:
7882           tests: y4mreader: fix incompatible cast
7883           Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
7884           they are dereferenced as a wider long (64 bits, signed). This may lead
7885           to memory corruption.
7886
7887 2017-12-19 16:01:10 +0000  Tim-Philipp Müller <tim@centricular.com>
7888
7889         * meson.build:
7890           meson: fix fallback for gstreamer-gl-1.0, it's now in -base
7891
7892 2017-12-14 14:53:27 +1100  Matthew Waters <matthew@centricular.com>
7893
7894         * common:
7895           Automatic update of common submodule
7896           From e8c7a71 to 3fa2c9e
7897
7898 2017-12-06 16:11:46 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
7899
7900         * gst/vaapi/gstvaapivideocontext.c:
7901           videoconvert: gst_element_post_message() is transfer full on msg
7902           For this reson we need not to unref the message, even if it failed.
7903
7904 2017-12-06 16:11:25 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
7905
7906         * gst/vaapi/gstvaapivideocontext.c:
7907           Revert "vaapivideocontext: possible memleak when no bus attached"
7908           This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
7909
7910 2017-12-01 23:03:32 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7911
7912         * tests/elements/test-vaapicontext.c:
7913           test: vaapicontext: process have-context bus message
7914
7915 2017-11-29 18:29:45 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7916
7917         * tests/elements/test-vaapicontext.c:
7918           test: vaapicontext: app context is not persistent
7919
7920 2017-11-29 11:02:03 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7921
7922         * gst/vaapi/gstvaapipluginbase.c:
7923         * gst/vaapi/gstvaapivideocontext.c:
7924         * gst/vaapi/gstvaapivideocontext.h:
7925           vaapivideocontext: only vaapisink process app context
7926           gst.vaapi.app.Display context is made for applications that will
7927           provide the VA display and the native display to used by the
7928           pipeline, when are using vaapisink as overlay. There are no use
7929           case for encoders, decoders, neither for the postprocessor.
7930           In the case of the vaapisink, it shall query for gst.vaapi.Display
7931           upstream first, and then, if there is no reply,
7932           gst.vaapi.app.Display context will be posted in the bus for the
7933           application. If the application replies, a GstVaapiDisplay object
7934           is instantiated given the context info, otherwise a
7935           GstVaapiDisplay is created with the normal algorithm to guess the
7936           graphics platform. Either way, the instantiated GstVaapiDisplay
7937           is propagated among the pipeline and the have-message bus message.
7938           Also only vaapisink will process the gst.vaapi.app.Display, if
7939           and only if, it doesn't have a display already set. This is
7940           caused because if vaapisink is in a bin (playsink, for example)
7941           the need-context is posted twice, leading to an error state.
7942           https://bugzilla.gnome.org/show_bug.cgi?id=790999
7943
7944 2017-12-01 20:21:54 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7945
7946         * gst/vaapi/gstvaapivideocontext.c:
7947           vaapivideocontext: log the name of GstVaapiDisplay
7948           https://bugzilla.gnome.org/show_bug.cgi?id=790999
7949
7950 2017-11-30 14:24:43 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7951
7952         * gst/vaapi/gstvaapivideocontext.c:
7953           vaapivideocontext: possible memleak when no bus attached
7954           https://bugzilla.gnome.org/show_bug.cgi?id=790999
7955
7956 2017-11-27 13:04:24 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7957
7958         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
7959           libs: window: wayland: remove unused header include
7960           Remove wayland-client.h include since there is no exposed symbols from
7961           it.
7962
7963 2017-11-27 12:18:56 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7964
7965         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7966         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7967           libs: encoder: h264,h265: guard rate control's macroblock
7968           macroblock parameter appear on VA-API 1.0.0. It should be guarded.
7969
7970 2017-11-27 20:17:55 +1100  Matthew Waters <matthew@centricular.com>
7971
7972         * common:
7973           Automatic update of common submodule
7974           From 3f4aa96 to e8c7a71
7975
7976 2016-07-29 14:58:49 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7977
7978         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7979           libs: encoder: h264: Add Hierarchical-B encode
7980           Frames are encoded as different layers. Frame in a particular
7981           layer will use pictures in lower or same layer as references.
7982           Which means decoder can drop the frames in upper layer but still
7983           decode lower layer frames.
7984           B-frames, except the one in top most layer, are reference frames.
7985           All the base layer frames are I or P.
7986           eg: with 3 temporal layers
7987           T3:             B1            B3              B5              B7
7988           T2:                   B2                              B6
7989           T1:   I0                                P4                        P8
7990           T1, T2, T3: Temporal Layers
7991           P1...Pn:   P-Frames:
7992           B1...Bn:   B-frames:
7993           T1: I0->P4 , P4->P8 etc..
7994           T2: I0--> B2 <-- P4
7995           T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
7996           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7997           https://bugzilla.gnome.org/show_bug.cgi?id=788918
7998
7999 2016-07-28 18:33:23 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8000
8001         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8002           libs: encoder: h264: Add Hierarchical-P encode
8003           Frames are encoded as different layers. A frame in a particular
8004           layer will use pictures in lower or same layer as references.
8005           Which means decoder can drop the frames in upper layer but still
8006           decode lower layer frames.
8007           eg: with 3 temporal layers
8008           T3:             P1            P3              P5              P7
8009           T2:                   P2                              P6
8010           T1:   P0                                P4                        P8
8011           T1, T2, T3: Temporal Layers
8012           P1...pn:   P-Frames:
8013           P0->P1 , P0->P2, P2->P3, P0->P4......repeat
8014           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8015           https://bugzilla.gnome.org/show_bug.cgi?id=788918
8016
8017 2016-07-28 16:51:28 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8018
8019         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8020           libs: encoder: h264: Fix frame_num generation
8021           The frame_num generation was not correctly implemented.
8022           According to h264 spec, frame_num should get incremented
8023           for each frame if previous frame is a referece frame.
8024           For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
8025           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8026           https://bugzilla.gnome.org/show_bug.cgi?id=788918
8027
8028 2016-07-28 15:53:48 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8029
8030         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8031         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8032           libs: encoder: h264: Add new property "prediction-type"
8033           Adds new property "prediction-type" to select different reference
8034           picture selection modes like hierarchical-p, hierarchical-b etc.
8035           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8036           https://bugzilla.gnome.org/show_bug.cgi?id=788918
8037
8038 2016-07-28 15:12:05 +0300  XuGuangxin <guangxin.xu@intel.com>
8039
8040         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8041         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8042           libs: encoder: h264: Add machinery for implementing hierarchical-prediction
8043           Adds some basic building blocks to ease the implementation
8044           of hierarchical prediction modes.
8045           -- add an utility method to find temporal level of each frame
8046           -- define max_ref_frame count based on temporal level count
8047           -- add temporal_level_div[] for finding temporal level each frame
8048           to be encoded.
8049           -- find ip_period based on temporal level count
8050           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8051           https://bugzilla.gnome.org/show_bug.cgi?id=788918
8052
8053 2016-07-28 14:17:53 +0300  XuGuangxin <guangxin.xu@intel.com>
8054
8055         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8056         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8057           libs: encoder: h264: Add property "temporal-levels"
8058           Adds new property "temporal-levels" to select the number of
8059           temporal levels to be included in the encoded stream.
8060           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8061           https://bugzilla.gnome.org/show_bug.cgi?id=788918
8062
8063 2016-07-27 16:41:01 +0300  XuGuangxin <guangxin.xu@intel.com>
8064
8065         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8066           libs: encoder: objects: Add a reference flag
8067           We can have p-frame as non-ref and also b-frame as ref
8068           which are not supported yet. Reference flag
8069           is the first machinery needed for more advanced
8070           reference picture selection modes.
8071           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8072           https://bugzilla.gnome.org/show_bug.cgi?id=788918
8073
8074 2017-11-02 13:21:34 +0100  Daniel van Vugt <daniel.van.vugt@canonical.com>
8075
8076         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8077           libs: surface: egl: add comment
8078           Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
8079           where the creation of surfaces from GEM fd may fail.
8080           https://bugzilla.gnome.org/show_bug.cgi?id=773453
8081
8082 2017-10-10 13:38:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8083
8084         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8085         * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
8086         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8087           libs: display: egl: add gst_vaapi_display_egl_set_current_display()
8088           Adds a new function that changes the internal EGL display to the
8089           current one (eglGetCurrentDisplay()) and sets the current context
8090           too (eglGetCurrentContext()).
8091           This new function is called by gst_vaapi_texture_egl_create() updating
8092           the GstVaapiDisplayEGL with the current EGL display.
8093           https://bugzilla.gnome.org/show_bug.cgi?id=773453
8094
8095 2017-10-09 16:02:11 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8096
8097         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8098           libs: texture: egl: update EGL display and context
8099           It is required to use the context of the calling thread when wrapping
8100           a foreign texture. According the documentation of
8101           GstVideoGLTextureUploadMeta:
8102           "The caller of gst_video_gl_texture_upload_meta_upload() must
8103           have OpenGL set up and call this from a thread where it is valid
8104           to upload something to an OpenGL texture."
8105           This patch updates the EGL display and context in GstVaapiDisplay
8106           instance to the one used by te renderer that uploads the texture.
8107           Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
8108           https://bugzilla.gnome.org/show_bug.cgi?id=773453
8109
8110 2017-10-10 19:53:04 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8111
8112         * gst/vaapi/gstvaapipluginbase.c:
8113           plugins: centralize assignation of GL objects
8114           Add plugin_set_gst_gl() where the GstGL objects are assigned.
8115           https://bugzilla.gnome.org/show_bug.cgi?id=773453
8116
8117 2017-10-10 19:13:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8118
8119         * gst/vaapi/gstvaapipluginbase.c:
8120           plugins: set GL objects if ensured
8121           Only set the GL display and GL other context if they are ensured.
8122           https://bugzilla.gnome.org/show_bug.cgi?id=773453
8123
8124 2017-10-10 17:14:15 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8125
8126         * gst/vaapi/gstvaapipluginbase.c:
8127           plugins: set GL objects if context is handled
8128           Only set the GL display and GL other context if they are extracted
8129           correctly from the gstreamer's context.
8130           https://bugzilla.gnome.org/show_bug.cgi?id=773453
8131
8132 2017-10-10 19:57:45 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8133
8134         * gst/vaapi/gstvaapipluginbase.c:
8135           plugins: fix memory leak when GL context is created
8136           When the GL display and context are created inside an VAAPI element
8137           the created GL context is leaked.
8138           https://bugzilla.gnome.org/show_bug.cgi?id=773453
8139
8140 2017-10-10 14:01:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8141
8142         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8143           libs: display: egl: free leaked memory
8144           The EGL VAAPI display forgot to release the egl display, context and
8145           proxied VAAPI display.
8146           https://bugzilla.gnome.org/show_bug.cgi?id=773453
8147
8148 2017-10-05 19:25:08 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8149
8150         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8151           libs: texture: egl: code style
8152           https://bugzilla.gnome.org/show_bug.cgi?id=773453
8153
8154 2017-10-04 13:51:23 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8155
8156         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8157           libs: surface: egl: error message if no extension
8158           Instead of silently fail to export the image if there is not available
8159           the EGL_MESA_drm_image, log an error message. Also a code refactoring
8160           was done.
8161           https://bugzilla.gnome.org/show_bug.cgi?id=773453
8162
8163 2017-10-31 13:10:50 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8164
8165         * gst/vaapi/gstvaapipluginbase.c:
8166           plugins: direct rendering on memory:VASurface
8167           As buffers negotiated with memory:VASurface caps feature can also be
8168           mapped, they can also be configured to use VA derived images, in other
8169           words "direct rendering".
8170           Also, because of the changes in dmabuf allocator as default allocator,
8171           the code for configuring the direct rendering was not clear.
8172           This patch cleans up the code and enables direct rendering when the
8173           environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
8174           even then the memory:VASurface cap feature is negotiated.
8175           https://bugzilla.gnome.org/show_bug.cgi?id=786054
8176
8177 2017-10-04 11:54:31 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8178
8179         * gst/vaapi/gstvaapipluginbase.c:
8180         * gst/vaapi/gstvaapipluginutil.c:
8181           plugins: only dmabuf on srcpad if downstream
8182           Set if source pad can handle dmabuf only if the GstGL context comes
8183           from downstream.
8184           It is possible to know that at two moments:
8185           1\ In the case of GstGLTextureUpload caps feature is negotiated and
8186           downstream pool reports back gst.gl.GstGLContext.
8187           2\ When GstGLContext is found as GstContext from dowstream.
8188           https://bugzilla.gnome.org/show_bug.cgi?id=788503
8189
8190 2017-10-04 11:52:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8191
8192         * gst/vaapi/gstvaapivideocontext.c:
8193           vaapivideocontext: add inline documentation
8194           Document function gst_vaapi_find_gl_local_context().
8195           https://bugzilla.gnome.org/show_bug.cgi?id=788503
8196
8197 2017-10-04 11:50:25 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8198
8199         * gst/vaapi/gstvaapipluginutil.c:
8200         * gst/vaapi/gstvaapivideocontext.c:
8201         * gst/vaapi/gstvaapivideocontext.h:
8202           vaapivideocontext: return the direction of gl context
8203           In function gst_vaapi_find_gl_context() add a direction parameter to
8204           return back the direction where the GstGL context was found.
8205           This is going to be useful when checking if downstream can import
8206           dmabuf-based buffers.
8207           https://bugzilla.gnome.org/show_bug.cgi?id=788503
8208
8209 2017-10-04 08:30:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8210
8211         * gst/vaapi/gstvaapipluginbase.c:
8212         * gst/vaapi/gstvaapipluginbase.h:
8213           plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
8214           This patch refactors the code by adding the function
8215           vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
8216           GstGLContext can handle dmabuf-based buffers.
8217           The function is exposed publicly since it is intended to be used later
8218           at GstVaapiDisplay instantiation.
8219           https://bugzilla.gnome.org/show_bug.cgi?id=788503
8220
8221 2017-10-20 12:37:15 +0200  Hyunjun Ko <zzoon@igalia.com>
8222
8223         * gst/vaapi/gstvaapiencode.c:
8224           vaapiencode: allow to set property on runtime
8225           Tis patch, allows some properties that we want to be set on
8226           runtime. (eg. bitrate)
8227           Note that all properties are under control by num_codedbuf_queued.
8228           https://bugzilla.gnome.org/show_bug.cgi?id=786321
8229
8230 2017-09-15 15:38:18 +0900  Hyunjun Ko <zzoon@igalia.com>
8231
8232         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8233           libs: encoder: allow to set bitrate on runtime
8234           In case of streaming, controlling bitrate dynamically for encoder might be
8235           important to manage quality of the streaming.
8236           This patch is to support such a scenario.
8237           https://bugzilla.gnome.org/show_bug.cgi?id=786321
8238
8239 2017-10-10 11:35:24 +0300  Sebastian Dröge <sebastian@centricular.com>
8240
8241         * gst/vaapi/gstvaapi.c:
8242         * gst/vaapi/gstvaapi.h:
8243         * gst/vaapi/gstvaapidecodebin.c:
8244           vaapidecodebin: Register element if no VPP support is available too
8245           VPP support is only needed for advanced deinterlacing, which is not
8246           enabled by default either. Error out if it is selected but VPP is not
8247           supported, and otherwise just work without VPP support.
8248           https://bugzilla.gnome.org/show_bug.cgi?id=788758
8249
8250 2017-10-16 11:57:16 +0200  Thibault Saunier <thibault.saunier@osg.samsung.com>
8251
8252         * gst/vaapi/gstvaapipluginutil.c:
8253           Avoid infinite loop when vaapi_create_display fails
8254           Which might be the case when using, for example, xvfb.
8255
8256 2017-10-02 18:53:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8257
8258         * gst-libs/gst/vaapi/gstvaapiutils.c:
8259           libs: utils: log warn if display fail
8260           gstreamer-vaapi initializes the display by trial-and-error, thus
8261           logging an error message if the display initialisation fails the user
8262           may be weary of the error message in the screen, if using VA-API 1.0
8263           This commit set the VA error log handler to GStreamer warning level
8264           while calling vaInitialize() and set it to error after that.
8265           https://bugzilla.gnome.org/show_bug.cgi?id=783169
8266
8267 2017-09-29 20:05:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8268
8269         * gst/vaapi/gstvaapipluginutil.c:
8270           plugins: try to create test display in order
8271           When creating the test display for querying capabilites, it try in
8272           certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
8273           since they are either composited with X11 or Wayland.
8274           The reason for this is to reduce the posibility of failure that could
8275           blacklist the plugin.
8276           https://bugzilla.gnome.org/show_bug.cgi?id=782212
8277
8278 2017-09-29 15:07:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8279
8280         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8281         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8282           libs: display: delay getting screen resolution
8283           Instead of extracting the screen resolution at GstVaapiDisplay
8284           creation, this patch delay it until the screen size is requested for
8285           first time.
8286           https://bugzilla.gnome.org/show_bug.cgi?id=782212
8287
8288 2017-09-28 18:58:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8289
8290         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8291           libs: display: egl: avoid two vaDisplay instantiates
8292           GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
8293           or Wayland. Nonetheless it created another vaDisplay for it, instead
8294           of using the wrapped one.
8295           This patch enables the reuse of the wrapped vaDisplay avoiding
8296           instantiating two.
8297           https://bugzilla.gnome.org/show_bug.cgi?id=782212
8298
8299 2017-09-28 17:45:00 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8300
8301         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8302         * gst-libs/gst/vaapi/gstvaapidisplay.h:
8303         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
8304         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
8305         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
8306           libs: display: remove display_type from display info
8307           Since it's no required to pass the display type in the display info,
8308           the structure member is removed.
8309           https://bugzilla.gnome.org/show_bug.cgi?id=782212
8310
8311 2017-09-28 17:35:01 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8312
8313         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8314         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8315           libs: display: remove display_type member
8316           It is not used any more since GstVaapiDisplay was ported as a
8317           GstObject-based. This information is part of the class information.
8318           https://bugzilla.gnome.org/show_bug.cgi?id=782212
8319
8320 2017-09-28 16:12:23 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8321
8322         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8323         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8324           libs: display: remove parent member
8325           Parent was a crumb left from display cache.
8326           https://bugzilla.gnome.org/show_bug.cgi?id=782212
8327
8328 2017-10-03 13:06:33 +0200  Sebastian Dröge <sebastian@centricular.com>
8329
8330         * gst/vaapi/gstvaapi.c:
8331           vaapi: Also register vaapipostproc without VPP support
8332           It can still do simple deinterlacing then.
8333
8334 2017-10-03 10:51:06 +0200  Sebastian Dröge <sebastian@centricular.com>
8335
8336         * gst/vaapi/gstvaapipostproc.c:
8337           vaapipostproc: Allow running without VPP support
8338           We returned FALSE from ::start() if VPP support is not available, but it
8339           is only really needed for complex filters and during transform we check
8340           for that. For simple deinterlacing it is not needed.
8341
8342 2017-09-27 18:35:20 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8343
8344         * gst/vaapi/gstvaapipostproc.c:
8345           vaapipostproc: use scoped variable for return value
8346           Instead of reusing a parameter variable for the return value of
8347           gst_vaapipostproc_transform_caps(), this patch uses the function
8348           scoped pointer. Thus, the code is cleaner.
8349           https://bugzilla.gnome.org/show_bug.cgi?id=785706
8350
8351 2017-09-27 18:32:03 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8352
8353         * gst/vaapi/gstvaapipostproc.c:
8354           vaapipostproc: removed unused parameter
8355           Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
8356           helper function since the it is not used.
8357           https://bugzilla.gnome.org/show_bug.cgi?id=785706
8358
8359 2017-09-27 13:32:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8360
8361         * gst/vaapi/gstvaapipostproc.c:
8362           vaapipostproc: use scoped variable for return value
8363           Instead of reusing a parameter variable for the return value of
8364           gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
8365           pointer. Thus, the code is cleaner.
8366           https://bugzilla.gnome.org/show_bug.cgi?id=785706
8367
8368 2017-09-27 11:27:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8369
8370         * gst/vaapi/gstvaapipluginutil.h:
8371           plugins: memory:DMABuf only handles planar formats
8372           When glimagesink negotiates the caps feature memory:DMABuf the
8373           exported dmabufs buffers with NV12 format are not well rendered, thus
8374           setting only planar.
8375           https://bugzilla.gnome.org/show_bug.cgi?id=788229
8376
8377 2017-09-25 17:04:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8378
8379         * gst/vaapi/gstvaapiencode.c:
8380           vaapiencode: flush pending frames before set format
8381           Flush pending frames, if any, in the internal encorder, before setting
8382           the new negotiated format.
8383           https://bugzilla.gnome.org/show_bug.cgi?id=786173
8384
8385 2017-09-25 15:50:19 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8386
8387         * gst/vaapi/gstvaapidecode.c:
8388           vaapidecode: drain pending frames before set format
8389           Drain pending frames, if any, in the internal decoder before setting
8390           the new negotiated format.
8391           https://bugzilla.gnome.org/show_bug.cgi?id=786173
8392
8393 2017-09-22 19:35:04 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8394
8395         * tests/test-display.c:
8396           tests: display: use GObject getter
8397           Instead of using the gst_vaapi_display_get_property(), this patch
8398           replaces it with g_object_get_property() to dump the available VA
8399           display properties.
8400           https://bugzilla.gnome.org/show_bug.cgi?id=788058
8401
8402 2017-09-22 19:25:20 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8403
8404         * gst/vaapi/gstvaapisink.c:
8405           vaapisink: use GObject setter and getter
8406           Instead of using gst_vaapi_display_set_property() or
8407           gst_vaapi_display_get_property(), this patch set replace it usage
8408           with g_object_set() or g_object_get().
8409           Also the internal helper cb_set_value() is removed since it is not
8410           used anymore.
8411           https://bugzilla.gnome.org/show_bug.cgi?id=788058
8412
8413 2017-09-22 18:59:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8414
8415         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8416           libs: display: initialize value if they are not yet
8417           This is a difference between the GObject API and the GstVaapi one: the
8418           GValue passed to get a property value, in GObject has to be
8419           initialized with g_value_init(), but in GstVaapi is has not.
8420           In order to overcome this mismatch, this patch call g_value_init()
8421           internally only in the passed one is not already initialized.
8422           https://bugzilla.gnome.org/show_bug.cgi?id=788058
8423
8424 2017-09-22 17:04:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8425
8426         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8427           libs: display: optimize properties setters and getters
8428           Shuffled some code to avoid to find the properties descriptor in the
8429           array twice, adding the internal functions _set_property() and
8430           _get_property().
8431           https://bugzilla.gnome.org/show_bug.cgi?id=788058
8432
8433 2017-09-22 16:29:02 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8434
8435         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8436           libs: display: install properties in class
8437           Install the properties in the class as a normal GObject. Implement
8438           set_property() and get_property() vmethods.
8439           https://bugzilla.gnome.org/show_bug.cgi?id=788058
8440
8441 2017-09-22 15:16:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8442
8443         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8444           libs: display: remove gst_vaapi_display_properties_init()
8445           Remove gst_vaapi_display_properties_init() since it can be unrolled in
8446           gst_vaapi_display_class_init()
8447           https://bugzilla.gnome.org/show_bug.cgi?id=788058
8448
8449 2017-09-22 15:12:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8450
8451         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8452           libs: display: remove libgstvaapi_init_once()
8453           It is not required since it can be unrolled in
8454           gst_vaapi_display_class_init()
8455           https://bugzilla.gnome.org/show_bug.cgi?id=788058
8456
8457 2017-09-22 17:50:15 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8458
8459         * tests/test-display.c:
8460           tests: test-display: remove display cache tests
8461           Since commit ec3e10f6, display cache was removed. This patch removes
8462           this leftovers in the display test.
8463
8464 2017-09-18 14:29:55 +0900  Hyunjun Ko <zzoon@igalia.com>
8465
8466         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8467         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8468           libs: decoder: h264/h265: decode codec data only if opened
8469           Fixes regression introduced by commit 2eb2b26a.
8470           There is a use case when the decoder set the src caps and immediatly
8471           tries to process the media codec_data, this happens before decoder is
8472           even opened, thus priv->parser is not instantiated yet.
8473           https://bugzilla.gnome.org/show_bug.cgi?id=787818
8474
8475 2017-09-18 19:11:45 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8476
8477         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8478         * gst-libs/gst/vaapi/gstvaapiencoder.h:
8479         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8480         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8481         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8482           libs: encoder: change mbbrc from uint to enum
8483           Instead of handling the macroblock bitrate control as a integer, this
8484           patch changes it as a enum, which is more self documented in the
8485           GStreamer elements.
8486           https://bugzilla.gnome.org/show_bug.cgi?id=787855
8487
8488 2017-09-18 13:55:49 +1000  Jan Schmidt <jan@centricular.com>
8489
8490         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8491           Fix a typo in the prop string for compliance-mode
8492
8493 2017-09-15 18:31:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8494
8495         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8496           libs: encoder: don't unref properties
8497           This patch fixes a regression introduced in commit 148f867c, since the
8498           props variable is set to object's member variable
8499           encoder->properties. And it is set in the instance initialization,
8500           thus it will not be leaked.
8501           https://bugzilla.gnome.org/show_bug.cgi?id=787733
8502
8503 2017-09-15 15:14:47 +0900  Hyunjun Ko <zzoon@igalia.com>
8504
8505         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8506         * gst/vaapi/gstvaapiencode.c:
8507           vaapiencode/libs: encoder: fix leaks of properties
8508           https://bugzilla.gnome.org/show_bug.cgi?id=786321
8509
8510 2017-08-24 21:51:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8511
8512         * gst-libs/gst/vaapi/gstvaapidecoder.c:
8513           libs: decoder: at update_caps() decode codec_data
8514           When updating the caps in decoder, if the caps has codec_data (avC
8515           format), it has to be parsed to update the state of the decoder.
8516           https://bugzilla.gnome.org/show_bug.cgi?id=786173
8517
8518 2017-09-13 15:44:32 +0900  Hyunjun Ko <zzoon@igalia.com>
8519
8520         * gst-libs/gst/vaapi/gstvaapicontext.c:
8521           libs: context: fix wrong counter of the array of attributes
8522           The counter value passed to vaCreateConfig is always +1.
8523           This is a regression caused by commit e42ec3ad.
8524           The present patch fixes wrong counting of the array of attributes.
8525           https://bugzilla.gnome.org/show_bug.cgi?id=787613
8526
8527 2017-09-13 12:23:42 +0900  Hyunjun Ko <zzoon@igalia.com>
8528
8529         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8530         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8531           libs: encoder: h265: support I/P/B QP setting seperatedly
8532           Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8533           frames
8534           and set slice_qp_delta for each frame according to the value provided.
8535           https://bugzilla.gnome.org/show_bug.cgi?id=785923
8536
8537 2017-09-13 12:22:07 +0900  Hyunjun Ko <zzoon@igalia.com>
8538
8539         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8540         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8541           libs: encoder: h264: support I/P/B QP setting seperatedly
8542           Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8543           frames
8544           and set slice_qp_delta for each frame according to the value provided.
8545           In addition, remove the limitation of (<= 4) when setting
8546           slice_qp_delta.
8547           https://bugzilla.gnome.org/show_bug.cgi?id=785923
8548
8549 2017-09-13 12:15:57 +0900  Hyunjun Ko <zzoon@igalia.com>
8550
8551         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8552         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8553           libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
8554           Creates new variable for QP for I frame and keep it at configuration and
8555           use this for pic_init_qp and slice_qp_delta setting.
8556           Since changing min qp doesn't make sense, keep min qp as is.
8557           https://bugzilla.gnome.org/show_bug.cgi?id=785923
8558
8559 2017-09-13 12:09:45 +0900  Hyunjun Ko <zzoon@igalia.com>
8560
8561         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8562         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8563           libs: encoder: h265: Add mbbrc property
8564           This property supports Macroblock level Bitrate Control as the
8565           following (same as h264 encoder):
8566           0: auto
8567           1: on
8568           2: off
8569           https://bugzilla.gnome.org/show_bug.cgi?id=785917
8570
8571 2017-09-13 12:02:53 +0900  Hyunjun Ko <zzoon@igalia.com>
8572
8573         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8574         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8575           libs: encoder: h264: Add mbbrc property
8576           This property supports Macroblock level Bitrate Control as the
8577           following:
8578           0: auto
8579           1: on
8580           2: off
8581           https://bugzilla.gnome.org/show_bug.cgi?id=785917
8582
8583 2017-09-13 11:39:09 +0900  Hyunjun Ko <zzoon@igalia.com>
8584
8585         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8586           libs: encoder: h265: add multi reference support
8587           This is doing the same as h264 encoder as the following:
8588           Using num_ref_frames provided and the result of the Query
8589           VAConfigAttribEncMaxRefFrames, it determines the size of reference list
8590           and perform encoding with multi reference frames as the following:
8591           1\ The num_ref_frames is being considered as the number of
8592           reference picture list0
8593           2\ Encoder adds 1 reference frame more to the reference picture list1
8594           internally if b-frame encoding.
8595           3\ If num_ref_frames is bigger than the number of refrence frames
8596           supported in the driver, it will be lowered.
8597           Also this patch includes:
8598           - Set num_negative_pics and num_positive_pics according to the number of
8599           refs.
8600           - Set delta_poc according to the number of refs.
8601           - Increase max_dec_pic_buffering according to the number of refs
8602           - Change max_num_reorder_pics according to num of bframes
8603           https://bugzilla.gnome.org/show_bug.cgi?id=783804
8604
8605 2017-09-13 11:37:33 +0900  Hyunjun Ko <zzoon@igalia.com>
8606
8607         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8608         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8609           libs: encoder: h265: add refs property
8610           Users can provide the number of reference frame by this property,
8611           which is exaclty same as h264.
8612           The value of the property will be considered as the number of
8613           reference picture list0 and will add 1 reference frame more to the
8614           reference picture list1 internally if b-frame encoding.
8615           If the value provided is bigger than the number of refrence frames
8616           supported in the driver, it will be lowered.
8617           The maximum value is aligned to the value of the driver supported now.
8618           https://bugzilla.gnome.org/show_bug.cgi?id=783804
8619
8620 2017-09-13 11:17:26 +0900  Hyunjun Ko <zzoon@igalia.com>
8621
8622         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8623         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8624           libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
8625           Follows the specification as below:
8626           7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
8627           num_ref_idx_active_override_flag equal to 1 specifies that the syntax
8628           element num_ref_idx_l0_active_minus1 is present for P and B slices and
8629           that the syntax element num_ref_idx_l1_active_minus1 is present for B
8630           slices.
8631           num_ref_idx_active_override_flag equal to 0 specifies that the syntax
8632           elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
8633           are not present.
8634           https://bugzilla.gnome.org/show_bug.cgi?id=783804
8635
8636 2017-09-13 11:06:20 +0900  Hyunjun Ko <zzoon@igalia.com>
8637
8638         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8639           libs: encoder: h265: keep idr_period equal to keyframe period
8640           Remove FIXME code, which makes previous assignation spurious.
8641           This also means to make idr_period equal to keyframe period,
8642           which is same as h264 encoder.
8643           https://bugzilla.gnome.org/show_bug.cgi?id=783804
8644
8645 2017-09-06 14:03:25 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
8646
8647         * gst/vaapi/gstvaapipluginbase.c:
8648           Request minimum buffer even if need_pool is FALSE
8649           When tee is used, it will not request a pool, but still it wants to
8650           know how many buffers are required.
8651           https://bugzilla.gnome.org/show_bug.cgi?id=730758
8652
8653 2017-09-05 10:58:57 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
8654
8655         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8656           libs: encoder: h264_fei: VA-API 1.0 compat
8657           Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
8658           compatibility.
8659           https://bugzilla.gnome.org/show_bug.cgi?id=787322
8660           Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
8661
8662 2017-09-01 13:48:01 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8663
8664         * gst/vaapi/gstvaapisink.c:
8665           vaapisink: Fix rendering in drm display
8666           Make sure vaapisink create a va surface backed buffer pool and all
8667           required attributes get assigned correctly for drm display type.
8668           This is needed to make the below pipeline working:
8669           gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
8670           width=320 height=240 framerate=30/1 ! vaapisink display=drm
8671           https://bugzilla.gnome.org/show_bug.cgi?id=786954
8672
8673 2017-08-09 18:46:09 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8674
8675         * tests/Makefile.am:
8676         * tests/test-fei-enc-in.c:
8677         * tests/test-fei-enc-out.c:
8678           FEI: Add test applications to showcase fei use case
8679           test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
8680           eg:
8681           ./test-fei-enc-out -i sample_320x240.nv12 -w 320 -h 240 -o out.264 -v mv.out -d out.dist -m out.mbcode -e 1
8682           test-fei-enc-in: A simple fei encoding application for testing input fei buffers
8683           eg:
8684           ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
8685           Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
8686           from saved files is still not working
8687           People contributed:
8688           Wang, Yi <yi.a.wang@intel.com>
8689           Leilei <leilei.shang@intel.com>
8690           Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8691           xiaominc <xiaomin.chen@intel.com>
8692           Li, Jing B <jing.b.li@intel.com>
8693           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8694           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8695
8696 2017-08-09 18:36:13 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8697
8698         * gst/vaapi/Makefile.am:
8699         * gst/vaapi/gstvaapi.c:
8700         * gst/vaapi/gstvaapiencode_h264_fei.c:
8701         * gst/vaapi/gstvaapiencode_h264_fei.h:
8702           FEI: plugin: Add vaapih264feienc element
8703           A new FEI based encoder element for h264 is added: vaapih264feienc
8704           FEI is a an extension to VA-API which is providing low level
8705           advanced control over different stages of encoding.
8706           Extending vaapih264enc with fei support is possible, but it will
8707           make the code too much complicated and will be difficult
8708           to debug. So adding the new encoder element, but keeping
8709           the rank as 0 , vaapih264enc will stay as the primary
8710           encoder for normal use cases.
8711           The vaaih264feienc is mainly useful for customers who want to play
8712           with MotionVectors and Macroblock Predictions. Also user can
8713           do one stage of encoding(eg: only the Motion Vector Calculation)
8714           in software and offload trasformation/entroy-coding etc to
8715           Hardware (which is what PAK module is doing) using FEI element.
8716           vaapih264feienc can work in  different modes using fei-mode properoty
8717           eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
8718           Important Note: ENC only mode won't produce any encoded data which is expected.
8719           But ENC alwys requires the output of PAK in order to do the inter-prediction
8720           over reconstructed frames.
8721           Similary PAK mode alway requires MV and MBCode as input, so unless there is an
8722           upstream element providing those buffers, PAK only won't work as expected.
8723           In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
8724           with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
8725           that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
8726           separately in vaapih264feienc.
8727           People contributed:
8728           Wang, Yi <yi.a.wang@intel.com>
8729           Leilei <leilei.shang@intel.com>
8730           Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8731           xiaominc <xiaomin.chen@intel.com>
8732           Li, Jing B <jing.b.li@intel.com>
8733           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8734           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8735           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8736
8737 2017-08-09 18:32:13 -0700  Yi A Wang <yi.a.wang@intel.com>
8738
8739         * gst/vaapi/gstvaapiencode.c:
8740         * gst/vaapi/gstvaapiencode.h:
8741           FEI: plugin: Add virtual methods to base encode
8742           Two new virtual methods are added to gstvaapiencode.
8743           load_control_data():  load the FEI input buffers set by the upstream elements
8744           save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
8745           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8746           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8747           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8748
8749 2017-08-09 18:26:57 -0700  Yi A Wang <yi.a.wang@intel.com>
8750
8751         * gst/vaapi/Makefile.am:
8752         * gst/vaapi/gstvaapifeivideometa.c:
8753         * gst/vaapi/gstvaapifeivideometa.h:
8754           FEI: plugin: Add fei specific video meta
8755           GstVaapiFeiVideoMeta holds the below fei codec objects:
8756           GstVaapiEncFeiMbCode
8757           GstVaapiEncFeiMv
8758           GstVaapiEncFeiMvPredictor
8759           GstVaapiEncFeiMbControl
8760           GstVaapiEncFeiQp
8761           GstVaapiEncFeiDistortion
8762           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8763           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8764           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8765
8766 2017-08-09 18:19:06 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8767
8768         * gst-libs/gst/vaapi/Makefile.am:
8769         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8770         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
8771         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
8772         * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
8773         * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
8774         * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
8775           FEI: libs: Add FEI encoder
8776           Adding FEI encoder to core lib.
8777           The code is splitted into three session:
8778           1: gstvaapiencoder_h264_fei.{h,c}
8779           This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
8780           All the modes ENC, PAK and ENC_PAK are running based
8781           the code in these files.
8782           2: gstvaapifeienc_h264.{h,c}
8783           Abstract implementation intended for ENC (only VME) operation.
8784           3: gstvaapifeipak_h264.{h,c}
8785           Abstrct implementation intended for PAK (only the PAK module)
8786           Right now ENC_PAK, ENC and PAK are running based on code
8787           in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
8788           in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
8789           needed if user request for ENC+PAK mode operation.
8790           ENC+PAK: Here we need to invoke two sequence of
8791           vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
8792           first for the ENC only and the second for PAK only.
8793           Each mode associated with separate context ,but same pool of surfaces are
8794           shared between the modes.
8795           This is more useful once we have custom BRC algorithms.
8796           Other Contributors:
8797           Wang, Yi <yi.a.wang@intel.com>
8798           Leilei <leilei.shang@intel.com>
8799           Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8800           xiaominc <xiaomin.chen@intel.com>
8801           Li, Jing B <jing.b.li@intel.com>
8802           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8803           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8804
8805 2017-08-09 17:54:27 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8806
8807         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
8808         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8809           FEI: libs: Add fei codec objects to GstVaapiEncPicture
8810           All the codec objects(vaapi buffers) supposed to be
8811           submited in vaRenderPicutre are associated with a GstVaapiEncPicture
8812           for each frame, follow the same design for FEI too.
8813           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8814           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8815
8816 2017-08-09 16:05:13 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8817
8818         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
8819         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
8820         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
8821           FEI: libs: Add fei codec objects in codedbufferproxy
8822           MbCode, MV and Distortion buffers (fei codec objects)
8823           can be treated as output of different fei modes based user request.
8824           For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
8825           can be dumped as output in ENC_PAK mode for analysis purpose.
8826           So treating them as a part of CodedBufferProxy too.
8827           Here we avoided Qp, MbControl and MvPredictor codec objects since
8828           there is no practical use case of treating them as "output buffers".
8829           Other contributors:
8830           Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8831           xiaominc <xiaomin.chen@intel.com>
8832           Leilei <leilei.shang@intel.com>
8833           Li, Jing B <jing.b.li@intel.com>
8834           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8835           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8836
8837 2017-08-09 15:49:21 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8838
8839         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
8840         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
8841         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
8842           FEI: libs: Add fei codec objects to surface proxy
8843           Add fei codec objects to surface proxy since handling the
8844           fei buffers(codec objects here) external to gstvaapisurfaceproxy
8845           will make the code complicated. Especially considering the behavior
8846           of encoder where the input frame order from upstream and output
8847           frame order to the downstream are not sequential.
8848           Other contributors:
8849           Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8850           xiaominc <xiaomin.chen@intel.com>
8851           Leilei <leilei.shang@intel.com>
8852           Li, Jing B <jing.b.li@intel.com>
8853           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8854           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8855
8856 2017-08-09 15:35:10 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8857
8858         * gst-libs/gst/vaapi/Makefile.am:
8859         * gst-libs/gst/vaapi/gstvaapifei_objects.c:
8860         * gst-libs/gst/vaapi/gstvaapifei_objects.h:
8861         * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
8862           FEI: Add codec objects for fei usecase
8863           There are 6 new va buffer types, each defined as a specific codec object.
8864           Borrowed the code from gstvaapicodecobject , but made a clear separation
8865           to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
8866           feicodecobjects can be shared between elements and also can be accessed
8867           from different thread.
8868           Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
8869           object is not shared between elements.So we utilize the already
8870           existing gst_vaapi_enc_misc_param_new(), but still keeping the code
8871           in gstvaapfei_objects_priv.h in order to have a better
8872           code readability.
8873           Fixme:
8874           -- Probably we need _locked_map() and _unlocked_map()
8875           -- Context can be associated with PreEnc(not just Enoder)
8876           once we have the proper support inplace, but for now we don't have
8877           PreEnc support, so should be safe enough to use GstVaapiEncoder.
8878           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8879           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8880
8881 2017-08-09 14:22:12 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8882
8883         * gst-libs/gst/vaapi/Makefile.am:
8884         * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
8885         * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
8886           FEI: libs: add H264 fei specific utility functions
8887           Added enum/flag type definitions for a number of FEI
8888           input and output parameters.
8889           Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
8890           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8891           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8892           Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
8893           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8894
8895 2017-08-09 14:10:16 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8896
8897         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8898         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8899           FEI: libs: Add virtual method for secondary context creation.
8900           Add a new vitrual method ensure_secondary_context to the
8901           base encoder which is only required for the FEI entrypoint, that too
8902           only when user configures the ENC+PAK mode. ENC+PAK mode is not something
8903           supported directly by libva or driver, but this can be enabled
8904           from the middleware.
8905           Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
8906           Signed-off-by: Leilei Shang <leilei.shang@intel.com>
8907           Signed-off-by: xiaominc <xiaomin.chen@intel.com>
8908           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8909           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8910           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8911
8912 2017-08-09 14:05:03 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8913
8914         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8915           FEI: libs: make sure the default context creation works as expected.
8916           Current code always guess the entrypoint during init phase in case
8917           if there is no entrypoint already configured in GstVaapiContextInfo.
8918           Make sure FEI Entrypoint is not messing up with this logic.
8919           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8920           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8921
8922 2017-08-09 13:45:40 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8923
8924         * gst-libs/gst/vaapi/gstvaapicontext.c:
8925         * gst-libs/gst/vaapi/gstvaapicontext.h:
8926         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8927           FEI: libs: Add FEI functional mode configuration
8928           FEI Entrypoint can work in either one of the 3 different modes:
8929           VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
8930           Add infrastructure in gstvaapicontext and gstvaapiencoder for this
8931           functioal mode configuration.
8932           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8933           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8934
8935 2017-08-09 13:02:24 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8936
8937         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8938         * gst-libs/gst/vaapi/gstvaapiprofile.c:
8939         * gst-libs/gst/vaapi/gstvaapiprofile.h:
8940           FEI: libs: Add FEI Entrypoint mapping
8941           Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
8942           for VAEntrypointFEI.
8943           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8944           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8945
8946 2017-08-09 12:58:29 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8947
8948         * configure.ac:
8949           FEI: Add support for FEI conditional build
8950           FEI(Flexible Encoding Infrastructure) is an extension
8951           to VA API. Define USE_H264_FEI_ENCODER based on
8952           fei header file and required structures availability.
8953           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8954           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8955
8956 2017-08-28 17:34:50 -0700  Orestis Floros <orestisf1993@gmail.com>
8957
8958         * gst/vaapi/gstvaapidecode.c:
8959           vaapidecode: force add h264 SVC profiles in caps
8960           When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
8961           support in caps.
8962           https://bugzilla.gnome.org/show_bug.cgi?id=732266
8963           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8964
8965 2017-08-28 17:32:57 -0700  Orestis Floros <orestisf1993@gmail.com>
8966
8967         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8968           libs: decoder: h264: decode SVC base layer only
8969           Drops non-base NALs when the base-only property is set to TRUE.
8970           This modifies the behavior for MVC streams with base-only too: All the
8971           non-base units are dropped before they are decoded instead of dropping
8972           the non-base frames.
8973           The relevant part from the H264 spec is:
8974           > Decoders that conform to one or more of the profiles specified in
8975           Annex A rather than the profiles specified in Annexes G or H shall
8976           ignore (remove from the bitstream and discard) the contents of all NAL
8977           units with nal_unit_type equal to 14, 15, or 20.
8978           To eliminate side effects from the offending units:
8979           - PPS's with a broken seq_parameter_set_id (referring to dropped subset
8980           SPS's) are ignored.
8981           - The NAL parsing is skipped and their flags are set to
8982           GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
8983           - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
8984           use them even if they are flagged to be skipped. Subset SPS's and slice
8985           extension units are not stored there either.
8986           https://bugzilla.gnome.org/show_bug.cgi?id=732266
8987           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8988
8989 2017-08-28 17:28:04 -0700  Orestis Floros <orestisf1993@gmail.com>
8990
8991         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8992           libs: decoder: h264: check nalu validity in parser info finalize
8993           https://bugzilla.gnome.org/show_bug.cgi?id=732266
8994           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8995
8996 2017-08-28 19:20:42 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8997
8998         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8999         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9000         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9001         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9002         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9003           libs: encoder: remove unused cast macro
9004           Remove internal macro to cast structure that are already declared
9005           in the header.
9006
9007 2017-08-28 19:09:07 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9008
9009         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9010         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
9011         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
9012         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
9013         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
9014         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9015           Revert "libs: encoders: remove unused cast macros"
9016           This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
9017
9018 2017-08-28 18:32:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9019
9020         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9021         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
9022         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
9023         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
9024         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
9025         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9026           libs: encoders: remove unused cast macros
9027           They are only used inside the code, where another macro is defined.
9028           Thus these exported macros have no use.
9029
9030 2017-08-24 20:26:11 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9031
9032         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9033           libs: decoder: h264: improve code-style
9034           https://bugzilla.gnome.org/show_bug.cgi?id=786173
9035
9036 2017-08-25 16:22:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9037
9038         * gst-libs/gst/vaapi/gstvaapicompat.h:
9039         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9040           libs: encoder: h264: handle deprecated enum
9041           In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
9042           instead VAEncPackedHeaderRawData should be used.
9043           This patch creates a compatibility symbol,
9044           VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
9045           VA-API version.
9046           https://bugzilla.gnome.org/show_bug.cgi?id=784398
9047
9048 2017-08-25 16:07:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9049
9050         * gst-libs/gst/vaapi/gstvaapiprofile.c:
9051         * gst-libs/gst/vaapi/gstvaapiutils.c:
9052           libs: guard deprecated symbols
9053           In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
9054           guards the H.264 baseline usage. Consider this commit as a
9055           continuation of commit e0e0a474
9056           https://bugzilla.gnome.org/show_bug.cgi?id=784398
9057
9058 2017-08-17 12:54:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9059
9060         * configure.ac:
9061         * meson.build:
9062         * meson_options.txt:
9063           Revert "build: check for libva-2.0"
9064           This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
9065           https://bugzilla.gnome.org/show_bug.cgi?id=784398
9066
9067 2017-08-17 12:44:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9068
9069         * gst-libs/gst/vaapi/gstvaapicompat.h:
9070         * gst-libs/gst/vaapi/gstvaapicontext.c:
9071         * gst-libs/gst/vaapi/gstvaapiencoder.c:
9072           libs: macro to get a renamed value in VA-API 1.0
9073           In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
9074           renamed one member from roi_value_is_qp_delat to
9075           roi_value_is_qp_delta, which is the correct name.
9076           In order to keep back compatibility a macro has added to access this
9077           union member.
9078           https://bugzilla.gnome.org/show_bug.cgi?id=784398
9079
9080 2017-08-22 11:37:28 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9081
9082         * gst/vaapi/gstvaapipluginbase.h:
9083         * gst/vaapi/gstvaapipluginutil.c:
9084           plugins: include main gstgl header
9085           Instead including particular gstgl header files in a header file
9086           that doesn't export a gstgl symbol, the main gstgl header file is
9087           included in gstvaapipluginutil.c where the symbols are used.
9088           https://bugzilla.gnome.org/show_bug.cgi?id=786597
9089
9090 2017-08-18 18:00:24 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9091
9092         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9093           libs: encoder: h264: fix enum namespace
9094
9095 2017-08-17 12:26:12 +0100  Tim-Philipp Müller <tim@centricular.com>
9096
9097         * common:
9098           Automatic update of common submodule
9099           From 48a5d85 to 3f4aa96
9100
9101 2017-08-17 11:03:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9102
9103         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9104           libs: encoder: h264: remove spurious assignation
9105           Coverity scan bug:
9106           An assigned value that is never used may represent unnecessary
9107           computation, an incorrect algorithm, or possibly the need for cleanup
9108           or refactoring.
9109           ip_period is assigned first to be rewritter inmediatly after. The
9110           first assignation is spurious.
9111
9112 2017-08-15 17:36:51 +0900  Hyunjun Ko <zzoon@igalia.com>
9113
9114         * gst/vaapi/gstvaapidecode.c:
9115           vaapidecode: fix mismatch of the return type
9116           https://bugzilla.gnome.org/show_bug.cgi?id=786307
9117
9118 2017-08-10 13:34:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9119
9120         * gst-libs/gst/vaapi/Makefile.am:
9121         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
9122         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
9123         * gst-libs/gst/vaapi/gstvaapiutils.h:
9124         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
9125         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9126         * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9127         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9128         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
9129         * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
9130         * gst-libs/gst/vaapi/meson.build:
9131           libs: remove unused header
9132           Since libgstvaapi is not distributed, there is no need to check for
9133           private header inclusion. Thus removing it.
9134           https://bugzilla.gnome.org/show_bug.cgi?id=786119
9135
9136 2017-08-10 13:27:11 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9137
9138         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9139         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9140         * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9141         * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9142         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9143         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9144           libs: utils: move gstvaapisurface.h to private headers
9145           Since the utils don't expose API defined in gstvaapisource.h, it is
9146           moved to their private headers where they are used.
9147           https://bugzilla.gnome.org/show_bug.cgi?id=786119
9148
9149 2017-08-10 13:26:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9150
9151         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9152         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9153         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
9154         * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9155         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
9156         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9157           libs: utils: remove va.h include in header
9158           And include gstvaapicompat.h in the C files, since the VA-API is not
9159           exposed in the headers.
9160           https://bugzilla.gnome.org/show_bug.cgi?id=786119
9161
9162 2017-08-10 13:24:06 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9163
9164         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9165         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9166         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9167         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9168         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9169         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9170           libs: encoder: remove va.h include
9171           Since it is already managed by gstvaapicompat.h
9172           https://bugzilla.gnome.org/show_bug.cgi?id=786119
9173
9174 2017-08-10 13:11:04 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9175
9176         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
9177         * gst-libs/gst/vaapi/gstvaapicompat.h:
9178         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
9179         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
9180         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
9181         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9182         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9183         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9184         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9185         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9186         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9187         * gst-libs/gst/vaapi/gstvaapifilter.c:
9188         * gst-libs/gst/vaapi/gstvaapiutils.c:
9189         * meson.build:
9190           build: consolidate the VA sub API includes
9191           Include all VA sub APIs headers in a single point (gstvaapicompat.h),
9192           since they are all already included in va.h after VA-API 0.38.
9193           https://bugzilla.gnome.org/show_bug.cgi?id=786119
9194
9195 2017-08-10 13:09:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9196
9197         * configure.ac:
9198         * meson.build:
9199           build: check for va_vpp.h
9200           Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
9201           allow us to handle the inclusion of the header better.
9202           https://bugzilla.gnome.org/show_bug.cgi?id=786119
9203
9204 2017-08-11 20:22:41 +0100  Tim-Philipp Müller <tim@centricular.com>
9205
9206         * meson.build:
9207           meson: don't export symbols by default
9208           Only plugin entry points should be exported.
9209
9210 2017-08-09 19:06:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9211
9212         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9213           libs: decoder: h265: remove spurious code
9214           Coverity scan:
9215           Logically dead code: The indicated dead code may have performed some
9216           action; that action will never occur.
9217           By using pointer arithmetic is impossible to get NULL.
9218
9219 2017-08-08 18:52:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9220
9221         * gst-libs/gst/vaapi/gstvaapicontext.c:
9222           libs: context: use attribs index instead pointers
9223           Coverity scan bug:
9224           Out-of-bounds write. This could cause an immediate crash or incorrect
9225           computations.
9226           Coverity basically found that it is possible to assign more than 4
9227           attribs in the array.
9228           In my opinion this was produced because code pattern used pointer
9229           arithmetic, which is not readable nor maintainable.
9230           This patch refactors config_create() to use an array index rather than
9231           pointer arithmetic. Also a run-time check for index size was added.
9232
9233 2017-08-08 17:38:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9234
9235         * gst/vaapi/gstvaapiencode_h264.c:
9236           vaapiencode: h264: remove spurious code
9237           Coverity scan bug:
9238           An unsigned value can never be negative, so this test will always
9239           evaluate the same way.
9240           As len is guint32, there is no need to check it if it is equal or
9241           bigger than zero.
9242
9243 2017-08-08 17:34:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9244
9245         * gst/vaapi/gstvaapidecode.c:
9246           vaapidecode: initialize variable
9247           Coverity scan bug:
9248           The variable will contain an arbitrary value left from earlier
9249           computations.
9250           Variable base_only is fetched from base-only property, and it may be
9251           not assigned. It needs to be initialized.
9252
9253 2017-08-08 17:29:54 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9254
9255         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9256           libs: windows: wayland: fail if cannot remove last frame
9257           Converity scan bug:
9258           If the function returns an error value, the error value may be
9259           mistaken for a normal value.
9260           If g_atomic_pointer_compare_and_exchange() fails because the frame is
9261           not the last one, the function fails. Thus, logging an info message.
9262
9263 2017-08-08 17:21:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9264
9265         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
9266           libs: utils: glx: check return value
9267           Coverity scan bug:
9268           If the function returns an error value, the error value may be
9269           mistaken for a normal value.
9270           Function sscanf returns the number of assignations done. Validate this
9271           return value with the number of expected variables to match.
9272
9273 2017-08-08 17:12:06 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9274
9275         * gst-libs/gst/vaapi/gstvaapiobject.c:
9276           libs: vaapi: object: remove unrequired NULL check
9277           Coverity scan bug:
9278           Dereference after null check: Either the check against null is
9279           unnecessary, or there may be a null pointer dereference.
9280           Variable klass has been validated as non-NULL several time before in
9281           gst_vaapi_object_new() function, so there is no need to check it
9282           again.
9283
9284 2017-08-08 17:06:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9285
9286         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9287           libs: encoder: h265: remove spurious assignation
9288           Coverity scan bug:
9289           An assigned value that is never used may represent unnecessary
9290           computation, an incorrect algorithm, or possibly the need for cleanup
9291           or refactoring.
9292           ip_period is assigned first to be rewritter inmediatly after. The
9293           first assignation is spurious.
9294
9295 2017-08-08 16:50:39 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9296
9297         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9298           libs: encoder: h264: fix copy & paste error
9299           Coverity scan bug:
9300           The copied code will not have its intended effect.
9301           This is a bug from commit cdaf15b2, where the intention is to
9302           initialize RefPicList1 while setting RefPicList0.
9303
9304 2017-08-08 16:33:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9305
9306         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9307         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9308           libs: encoder: h265: fix possible integer overflow
9309           Coverity scan bug:
9310           Unintentional integer overflow. The expression's value may not be what
9311           the programmer intended, because the expression is evaluated using a
9312           narrow (i.e. few bits) integer type.
9313           Cast operator to guint64 before computation to avoid narrowing.
9314           merge with 3c5a6add
9315
9316 2017-08-08 16:12:13 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9317
9318         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
9319           libs: decoder: mpeg4: fail if return value is not OK
9320           Coverity scan bug:
9321           An assigned value that is never used may represent unnecessary
9322           computation, an incorrect algorithm, or possibly the need for cleanup
9323           or refactoring.
9324           In the return value of decode_slice() or
9325           gst_mpeg4_parse_video_packet_header() are not success, thus fail
9326           decode_packet() function.
9327
9328 2017-08-08 15:49:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9329
9330         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9331           libs: decoder: h265: check for null
9332           Coverity scan bug:
9333           Dereference after null check: Either the check against null is
9334           unnecessary, or there may be a null pointer dereference.
9335           While looking for hte lowest poc, according to rest of the code, the
9336           picture in the dbp (decoded picture buffer) might be NULL, thus we
9337           could check for a NULL picture before assigned as found.
9338           Also, split a comma operator because it is considered as a bad
9339           practice because it possible side effects.
9340
9341 2017-08-08 15:38:16 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9342
9343         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9344           libs: decoder: h265: untaint loop control variable
9345           Coverity scan bug:
9346           Scalars (for example, integers) are not properly
9347           bounds-checked (sanitized) before being used as array or pointer
9348           indexes, loop boundaries, or function arguments are considered as
9349           tainted.
9350           In this case, num_nals were not checked before used as loop control.
9351
9352 2017-08-08 13:46:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9353
9354         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9355           libs: decoder: h264: remove unrequired NULL check
9356           Coverity scan bug:
9357           Dereference after null check: Either the check against null is
9358           unnecessary, or there may be a null pointer dereference.
9359           In the original commit for fill_picture_gaps() (commit 5abd2b90) the
9360           prev_picture could be NULL, that's why the code did a null check. But,
9361           since commit 52adebe7, the previous reference frames are tracked, thus
9362           there is no need to check null anymore.
9363
9364 2017-08-03 23:17:44 +0300  orestisf <orestisf1993@gmail.com>
9365
9366         * gst/vaapi/gstvaapidecode.c:
9367           vaapidecode: fix gst_caps_new_simple call
9368           https://bugzilla.gnome.org/show_bug.cgi?id=732265
9369
9370 2017-07-25 22:25:10 +0300  orestisf <orestisf1993@gmail.com>
9371
9372         * gst/vaapi/gstvaapidecode.c:
9373           vaapidecode: force add h264 MVC profiles in caps
9374           When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
9375           support in caps.
9376           https://bugzilla.gnome.org/show_bug.cgi?id=732265
9377
9378 2017-07-25 22:54:30 +0300  orestisf <orestisf1993@gmail.com>
9379
9380         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9381           libs: decoder: h264: decode MVC base view only
9382           If processed SPS has mvc profile and the configuration is set to
9383           base-only, the frame is drop.
9384           https://bugzilla.gnome.org/show_bug.cgi?id=732265
9385
9386 2017-07-25 22:06:56 +0300  orestisf <orestisf1993@gmail.com>
9387
9388         * gst/vaapi/gstvaapidecode.c:
9389         * gst/vaapi/gstvaapidecode_props.c:
9390           vaapidecode: set h264 base-only to decoder
9391           Set the base-only value when property is set and the internal
9392           decoder is already instantiated or when the internal decoder
9393           is created.
9394           https://bugzilla.gnome.org/show_bug.cgi?id=732265
9395
9396 2017-07-25 22:03:34 +0300  orestisf <orestisf1993@gmail.com>
9397
9398         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9399         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9400           libs: decoder: h264: add setter for base-only mode
9401           https://bugzilla.gnome.org/show_bug.cgi?id=732265
9402
9403 2017-07-25 22:01:37 +0300  orestisf <orestisf1993@gmail.com>
9404
9405         * gst/vaapi/gstvaapidecode_props.c:
9406         * gst/vaapi/gstvaapidecode_props.h:
9407           vaapidecode_props: h264: add base-only property
9408           https://bugzilla.gnome.org/show_bug.cgi?id=732265
9409
9410 2017-08-01 11:11:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9411
9412         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9413           libs: encoder: h264: missing property enum documentation
9414
9415 2017-08-02 14:54:53 +0900  Hyunjun Ko <zzoon@igalia.com>
9416
9417         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9418           libs: encoder: h264: add multi reference support
9419           Using num_ref_frames provided and the result of the Query
9420           VAConfigAttribEncMaxRefFrames, it determines the size of reference list
9421           and perform encoding with multi reference frames as the following:
9422           1\ The num_ref_frames is being considered as the number of
9423           reference picture list0
9424           2\ Encoder adds 1 reference frame more to the reference picture list1
9425           internally if b-frame encoding.
9426           3\ If num_ref_frames is bigger than the number of refrence frames
9427           supported in the driver, it will be lowered.
9428           https://bugzilla.gnome.org/show_bug.cgi?id=783803
9429
9430 2017-08-02 14:53:34 +0900  Hyunjun Ko <zzoon@igalia.com>
9431
9432         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9433         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9434           libs: encoder: h264: add refs property
9435           Users can provide the number of reference frame by this property.
9436           The value of the property will be considered as the number of
9437           reference picture list0 and will add 1 reference frame more to the
9438           reference picture list1 internally if b-frame encoding.
9439           If the value provided is bigger than the number of refrence frames
9440           supported in the driver, it will be lowered.
9441           https://bugzilla.gnome.org/show_bug.cgi?id=783803
9442
9443 2017-07-28 15:27:20 +0900  Hyunjun Ko <zzoon@igalia.com>
9444
9445         * gst-libs/gst/vaapi/gstvaapiencoder.c:
9446         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9447           libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
9448           This function will query VAConfigAttribEncMaxRefFrames to get the
9449           maximum number of reference frames supported in the driver.
9450           This will be used for h264/h265 encoding.
9451           https://bugzilla.gnome.org/show_bug.cgi?id=783803
9452
9453 2017-08-01 18:38:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9454
9455         * gst/vaapi/gstvaapiencode_h265.c:
9456           vaapiencode: h265: compare an unsigned int if not zero
9457           An unsigned value can never be negative, so this test (greater than
9458           zero) will always evaluate the same way. Thus change it to just if
9459           it's not zero.
9460
9461 2017-08-01 18:10:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9462
9463         * gst/vaapi/gstvaapipluginbase.c:
9464           plugins: check gst_gl_ensure_element_data() return value
9465           Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
9466           the return value of gst_gl_ensure_element_data(). The result is a code
9467           bit cleaner.
9468
9469 2017-08-01 17:59:38 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9470
9471         * gst/vaapi/gstvaapipluginutil.c:
9472           plugins: avoid dead code detection
9473           By using #elif macro, the static code analysis would stop to detect
9474           these lines as dead code. Also it is inforced the mutually exclusive
9475           environments.
9476
9477 2017-08-01 17:39:04 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9478
9479         * gst/vaapi/gstvaapivideobufferpool.c:
9480           vaapivideobufferpool: don't shift by negative since it's undefined
9481           The function g_bit_nth_lsf() may return -1 if the request bit position
9482           is not avaible. Thus, this patch check if the return value is not -1
9483           in order to continue.
9484
9485 2017-08-01 17:29:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9486
9487         * gst/vaapi/gstvaapisink.c:
9488           vaapisink: fix memory leak
9489
9490 2017-08-01 17:23:48 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9491
9492         * gst/vaapi/gstvaapipostprocutil.c:
9493           vaapipostproc: fix memory leaks
9494
9495 2017-07-27 10:54:00 +0000  Tomas Rataj <rataj28@gmail.com>
9496
9497         * gst-libs/gst/vaapi/gstvaapidisplay.c:
9498           libs: display: when appending formats change pointers to indexes
9499           Thus, it fixes an invalid read when YV12 or I420 are not supported by
9500           the driver.
9501           https://bugzilla.gnome.org/show_bug.cgi?id=785085
9502
9503 2017-07-19 12:02:40 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9504
9505         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9506         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9507           libs: encoder: h264: Add uncompliant mode reducing coded buffer size
9508           Added a new property "compliance-mode", which default is the normal
9509           strict compliant mode.
9510           The second mode, "restrict-buf-alloc", is to limit the coded buffer
9511           allocation size to improve performance in some specific Intel
9512           platforms (there is asignificant performance improvement in parallel
9513           encodings). Under this new mode, we use the MinCR field in A.3.1 for
9514           pre-calculating the coded-buffer size.
9515           https://bugzilla.gnome.org/show_bug.cgi?id=784590
9516
9517 2017-07-05 17:13:44 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9518
9519         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9520         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9521           libs: utils_h264: Extend LevelLimit table with MinCR field
9522           Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
9523           based on Annex A.3
9524           https://bugzilla.gnome.org/show_bug.cgi?id=784590
9525
9526 2017-07-11 17:29:13 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9527
9528         * gst-libs/gst/vaapi/gstvaapiutils.c:
9529           libs: utils: libva 1.0 changed the logging
9530           The logging mechanism in libva has changed it's functions
9531           signatures. This patch updates that for libva versions >= 1.0
9532           https://bugzilla.gnome.org/show_bug.cgi?id=784398
9533
9534 2017-07-11 17:27:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9535
9536         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9537           libs: decoder: h264: libva 1.0 deprecated baseline
9538           libva 1.0 deprecated H.264 baseline profile and FMO support
9539           (commit b4f332b3).
9540           https://bugzilla.gnome.org/show_bug.cgi?id=784398
9541
9542 2017-07-26 20:03:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9543
9544         * configure.ac:
9545         * meson.build:
9546         * meson_options.txt:
9547           build: check for libva-2.0
9548           Check for libva-2.0 since libva's developers decided to increase the
9549           library's version number.
9550           https://bugzilla.gnome.org/show_bug.cgi?id=784398
9551
9552 2017-07-11 16:55:26 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9553
9554         * configure.ac:
9555         * meson.build:
9556           build: blacklist only libva 0.99.0
9557           Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
9558           its API version to 1.0.0. Thus we have to blacklist only the MSDK's
9559           libva (0.99.0)
9560           https://bugzilla.gnome.org/show_bug.cgi?id=784398
9561
9562 2017-07-26 20:30:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9563
9564         * gst-libs/gst/vaapi/meson.build:
9565           build: meson: remove gstvaapidisplaycache.c
9566           This is a missing bit of commit ec3e10f6
9567
9568 2017-07-26 09:53:10 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
9569
9570         * configure.ac:
9571           configure: do not break configure if gtk+-3.0 devel missing
9572           Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
9573           set USE_GTK=0 if gtk+-3.0 is not available.
9574           Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
9575           Author: Hyunjun Ko <zzoon@igalia.com>
9576           Date:   Wed Jul 5 15:59:43 2017 +0900
9577           tests: elements: add testsuite of vaapi context
9578           ...configure fails if gtk+-3.0 development files are missing.
9579           The "with_gtk" option defaults to "check" in configure.ac
9580           which implies that if it is not explicitly requested then
9581           configure will only enable it if it's available on the system.
9582           However, the PKG_CHECK_MODULES rule that get's activated on
9583           "check" condition did not provide default when gtk+-3.0 devel
9584           packages are not found on the system.  Thus, it resulted in
9585           configure failure.
9586           Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
9587           https://bugzilla.gnome.org/show_bug.cgi?id=785452
9588
9589 2017-07-05 15:59:43 +0900  Hyunjun Ko <zzoon@igalia.com>
9590
9591         * configure.ac:
9592         * tests/elements/Makefile.am:
9593         * tests/elements/test-vaapicontext.c:
9594           tests: elements: add testsuite of vaapi context
9595           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9596           https://bugzilla.gnome.org/show_bug.cgi?id=766704
9597
9598 2017-07-05 15:32:43 +0900  Hyunjun Ko <zzoon@igalia.com>
9599
9600         * gst/vaapi/gstvaapisink.c:
9601           vaapisink: fail if surface display is different
9602           Replacing GstVaapiDisplay during rendering might be hiding problems
9603           at some cases, even though it's safe currently since we use cache
9604           of GstVaapidisplay.
9605           Play safe by failing if this happens.
9606           https://bugzilla.gnome.org/show_bug.cgi?id=766704
9607
9608 2017-07-05 15:31:55 +0900  Hyunjun Ko <zzoon@igalia.com>
9609
9610         * gst/vaapi/gstvaapivideocontext.c:
9611         * gst/vaapi/gstvaapivideocontext.h:
9612           videocontext: support "gst.vaapi.app.Display" context
9613           Through "gst.vaapi.app.Display" context, users can set their own VADisplay
9614           and native display of their backend.
9615           Attributes:
9616           - display : pointer of VADisplay
9617           - x11-display : pointer of X11 display (Display *), if they're using.
9618           This patch creates GstVaapidisplayX11 if information provided through
9619           "gst.vaapi.app.Display"
9620           https://bugzilla.gnome.org/show_bug.cgi?id=766704
9621
9622 2017-07-05 14:33:38 +0900  Hyunjun Ko <zzoon@igalia.com>
9623
9624         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9625         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
9626           libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
9627           Implements new API function so that users could create GstVaapiDisplay
9628           with their own VADisplay within a native display as backend.
9629           https://bugzilla.gnome.org/show_bug.cgi?id=766704
9630
9631 2017-07-05 14:32:35 +0900  Hyunjun Ko <zzoon@igalia.com>
9632
9633         * gst-libs/gst/vaapi/gstvaapidisplay.c:
9634           libs: display: pass display info when foreign display
9635           When creating a GstVaapiDisplay using a foreign VADisplay, and render
9636           with that display, it also requires native display of the backend.
9637           https://bugzilla.gnome.org/show_bug.cgi?id=766704
9638
9639 2017-06-26 21:18:25 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9640
9641         * gst-libs/gst/vaapi/Makefile.am:
9642         * gst-libs/gst/vaapi/gstvaapidisplay.c:
9643         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
9644         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
9645         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
9646         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9647         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
9648         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
9649           libs: display: remove cache
9650           Remove a bunch of code that handles the VADisplay cache, since the
9651           context sharing should be doing this correctly.
9652           https://bugzilla.gnome.org/show_bug.cgi?id=747946
9653
9654 2017-07-13 10:56:18 +0900  Hyunjun Ko <zzoon@igalia.com>
9655
9656         * tests/elements/Makefile.am:
9657         * tests/elements/test-vaapipostproc.c:
9658           tests: elements: add test for vaapipostproc
9659           https://bugzilla.gnome.org/show_bug.cgi?id=754885
9660
9661 2017-07-12 18:25:15 +0900  Hyunjun Ko <zzoon@igalia.com>
9662
9663         * gst/vaapi/gstvaapipostproc.c:
9664           postproc: reconfigure when width or height changes
9665           https://bugzilla.gnome.org/show_bug.cgi?id=754885
9666
9667 2017-07-17 18:53:57 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9668
9669         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9670           libs: encoder: vp9: array terminated in zeros
9671           There is a crash when setting ref-pic-mode since the #GEnumValue
9672           array is not terminated with a structured with all memvers being
9673           zero.
9674           https://bugzilla.gnome.org/show_bug.cgi?id=785032
9675
9676 2017-07-13 16:43:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9677
9678         * gst/vaapi/gstvaapiencode_h264.c:
9679           vaapiencode: h264: add plugin documentation
9680           Comment how the profile is set and other parameters.
9681
9682 2017-05-26 15:19:00 +0000  Matt Staples <staples255@gmail.com>
9683
9684         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9685           libs: decoder: h264: push frames as soon as possible
9686           Push frames downstream as soon as possible instead of waiting until
9687           they are ejected from the DPB.
9688           This patch makes the decoder not comply with the H.264 specification,
9689           but it is required for some video cameras.
9690           https://bugzilla.gnome.org/show_bug.cgi?id=762509
9691           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9692
9693 2017-07-10 19:27:57 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9694
9695         * gst/vaapi/gstvaapidecode_props.c:
9696           vaapidecode_props: h264: set low-latency in decoder
9697           Set the low-latency property if the H264 decoder is already
9698           instantiated, thus you could change the behavior in run-time.
9699           https://bugzilla.gnome.org/show_bug.cgi?id=783588
9700
9701 2017-07-06 20:00:15 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9702
9703         * gst/vaapi/gstvaapidecode.c:
9704           vaapidecode: set h264 low latency to decoder
9705           https://bugzilla.gnome.org/show_bug.cgi?id=783588
9706
9707 2017-06-14 18:30:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9708
9709         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9710         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9711           libs: decoder: h264: add getter/setter for low latency mode
9712           https://bugzilla.gnome.org/show_bug.cgi?id=783588
9713
9714 2017-06-14 18:31:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9715
9716         * gst/vaapi/gstvaapidecode_props.c:
9717         * gst/vaapi/gstvaapidecode_props.h:
9718           vaapidecode_props: h264: add low latency property
9719           Adding support for private data.
9720           https://bugzilla.gnome.org/show_bug.cgi?id=783588
9721
9722 2017-06-14 18:23:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9723
9724         * gst/vaapi/Makefile.am:
9725         * gst/vaapi/gstvaapidecode.c:
9726         * gst/vaapi/gstvaapidecode_props.c:
9727         * gst/vaapi/gstvaapidecode_props.h:
9728         * gst/vaapi/meson.build:
9729           vaapidecode_props: add skeleton for h264 decoder properties
9730           https://bugzilla.gnome.org/show_bug.cgi?id=783588
9731
9732 2017-06-14 17:07:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9733
9734         * gst/vaapi/gstvaapidecode.c:
9735           vaapidecode: properties callback in decoders map
9736           https://bugzilla.gnome.org/show_bug.cgi?id=783588
9737
9738 2017-07-07 12:01:59 +0100  Tim-Philipp Müller <tim@centricular.com>
9739
9740         * meson.build:
9741           meson: find python3 via python3 module
9742           https://bugzilla.gnome.org/show_bug.cgi?id=783198
9743
9744 2017-06-09 14:47:40 +0900  Hyunjun Ko <zzoon@igalia.com>
9745
9746         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9747           libs: encoder: h264: submit sps in case of IDR picture
9748           If the picture is IDR, also submit a SPS header.
9749           This means when frame number reaches to keyframe-period or an force
9750           key unit event arrives, we insert SPS/PPS again.
9751           https://bugzilla.gnome.org/show_bug.cgi?id=776712
9752
9753 2017-06-09 14:47:16 +0900  Hyunjun Ko <zzoon@igalia.com>
9754
9755         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9756           libs: encoder: h264: set the frame as IDR if forced key unit
9757           GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
9758           the `frame-lost` event in the case of streaming, such as RTP.
9759           In case of this event, it is needed to start new GOP rather than just
9760           produce an I-frame.
9761           https://bugzilla.gnome.org/show_bug.cgi?id=776712
9762
9763 2017-04-05 14:48:46 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9764
9765         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9766         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9767           libs: encoder: h264: insert AU delimiter
9768           Insert an AUD as the first NAL of each encoded frame.
9769           Some applications require Access Unit Delimiter for decoding the
9770           stream.
9771           The AU delimeter insertion is done only when the aud parameter is
9772           TRUE (by default is disabled). The reason of this it is because this
9773           header is only available from Intel Gen9 and the VA intel driver
9774           should be 1.8 or superior. Otherwise, the output will be corrupted.
9775           https://bugzilla.gnome.org/show_bug.cgi?id=776712
9776           Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9777
9778 2017-06-29 12:50:26 +0900  Hyunjun Ko <zzoon@igalia.com>
9779
9780         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9781           libs: encoder: h264: initialize all elements of view_ids
9782           Currently when num_views is changed by multiview-mode on sink caps, it produces
9783           wrong MVC encoded stream since the array view_ids is not set properly according
9784           to changed num_views.
9785           So this patch initializes all of the array sequentially to handle this case.
9786           Side effect is not going to happen by this patch since this array is being
9787           handled by num_views.
9788           https://bugzilla.gnome.org/show_bug.cgi?id=784321
9789
9790 2017-06-27 14:30:54 +0900  Hyunjun Ko <zzoon@igalia.com>
9791
9792         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9793           Revert "encoder: h264: Use high profile by default"
9794           This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
9795           https://bugzilla.gnome.org/show_bug.cgi?id=757941
9796
9797 2017-06-27 16:03:37 +0900  Hyunjun Ko <zzoon@igalia.com>
9798
9799         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9800           libs: encoder: h264: set profile via capsfilter
9801           Until now, the encoder ignored the profile in src caps and chose one
9802           according with the given parameters. But the encoder must honor the
9803           profile specifed in src caps.
9804           This patch do that, and if the encoder needs to choose the profile,
9805           it will do it by following these rules:
9806           1\ If given parameters are not compatible with given profile, the
9807           encoder will bail out with an error.
9808           2\ The encoder will choose the higher profile indicated in the
9809           src caps.
9810           https://bugzilla.gnome.org/show_bug.cgi?id=757941
9811
9812 2017-06-27 13:14:31 +0900  Hyunjun Ko <zzoon@igalia.com>
9813
9814         * gst/vaapi/gstvaapiencode_h264.c:
9815           vaapiencode: h264: set profile to src caps
9816           So far vaapi encoder does not set profile to src caps. This patch makes it
9817           setting profile to src caps, which is determined by itself.
9818           In addition, if encoder chose different profile, which is not negotiated with
9819           downstream, we should set compatible profile to make negotiation working.
9820           https://bugzilla.gnome.org/show_bug.cgi?id=757941
9821
9822 2017-06-22 09:56:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9823
9824         * gst/vaapi/gstvaapiencode_h264.c:
9825         * gst/vaapi/gstvaapiencode_h264.h:
9826           vaapiencode: h264: verify if requested profile is supported
9827           Check if the requested profile in source caps, is supported by the
9828           VA driver. If it is not, an info log message is send saying that
9829           another (compatible?) profile will be used.
9830           https://bugzilla.gnome.org/show_bug.cgi?id=757941
9831
9832 2017-06-21 21:49:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9833
9834         * gst/vaapi/gstvaapiencode_h264.c:
9835           vaapiencode: h264: improve set_config() vmethod
9836           First check if downstream requests ANY caps. If so, byte-stream is
9837           used and the profile will be choose by the encoder. If dowstream
9838           requests EMPTY caps, the negotiation will fail.
9839           Lately, byte-stream and profile are looked in the allowed caps.
9840           https://bugzilla.gnome.org/show_bug.cgi?id=757941
9841
9842 2017-06-21 19:30:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9843
9844         * gst/vaapi/gstvaapiencode_h264.c:
9845           vaapiencode: h264: check for avc in set_config()
9846           The check for avc stream format was done in the vaapi encoder's
9847           vmethod get_caps(), but that is wrong since it has to be check
9848           when encoder set_format().
9849           https://bugzilla.gnome.org/show_bug.cgi?id=757941
9850
9851 2017-06-29 12:49:24 +0900  Hyunjun Ko <zzoon@igalia.com>
9852
9853         * gst/vaapi/gstvaapipostprocutil.c:
9854           vaapipostproc: set multivew-mode flags to src caps
9855           vaapipostproc didn't negotiate the proper multiview caps losing
9856           downstream information.
9857           This patch enables the playing of MVC encoded stream by setting
9858           the proper multiview mode/flags and views to src caps, according
9859           to sink caps.
9860           https://bugzilla.gnome.org/show_bug.cgi?id=784320
9861
9862 2016-11-22 15:52:47 +0000  Julien Isorce <j.isorce@samsung.com>
9863
9864         * gst/vaapi/gstvaapipostproc.c:
9865           vaapipostproc: add support for DMABuf caps feature
9866           https://bugzilla.gnome.org/show_bug.cgi?id=755072
9867           Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9868
9869 2017-06-01 19:42:20 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9870
9871         * gst/vaapi/gstvaapidecode.c:
9872           vaapidecode: add support for DMABuf caps feature
9873           https://bugzilla.gnome.org/show_bug.cgi?id=755072
9874           Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9875
9876 2017-06-23 12:12:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9877
9878         * gst/vaapi/gstvaapipluginbase.c:
9879           vaapipluginbase: force dmabuf allocator if DMABuf caps feature
9880           Instantiate all dmabuf allocator for src pad buffer pool if the
9881           src caps ask for memory:DMABuf feature.
9882           https://bugzilla.gnome.org/show_bug.cgi?id=755072
9883
9884 2016-11-22 23:26:05 +0000  Julien Isorce <j.isorce@samsung.com>
9885
9886         * gst/vaapi/gstvaapipluginutil.c:
9887         * gst/vaapi/gstvaapipluginutil.h:
9888           vaapipluginutil: add support for DMABuf caps feature
9889           https://bugzilla.gnome.org/show_bug.cgi?id=755072
9890           Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9891           Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9892           vaapipluginutil: add support for DMABuf caps feature
9893
9894 2017-06-01 19:13:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9895
9896         * gst/vaapi/gstvaapipluginbase.c:
9897           vaapipluginbase: dmabuf memory map trial for raw caps
9898           Only push dmabuf-based buffers with raw caps if gst_memory_map()
9899           succeeds. Otherwise, use the the vaapi surfaces allocator.
9900           https://bugzilla.gnome.org/show_bug.cgi?id=755072
9901           https://bugzilla.gnome.org/show_bug.cgi?id=774649
9902           Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9903
9904 2016-06-08 19:11:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9905
9906         * gst/vaapi/gstvaapivideomemory.c:
9907         * gst/vaapi/gstvaapivideomemory.h:
9908           vaapivideomemory: add gst_vaapi_dmabuf_can_map()
9909           This new method checks the specified allocator can create GstMemory that can
9910           be mapped.
9911           https://bugzilla.gnome.org/show_bug.cgi?id=755072
9912
9913 2017-06-23 17:33:03 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9914
9915         * gst/vaapi/gstvaapivideobufferpool.c:
9916           vaapivideobufferpool: fix regression with video metas
9917           There is another regression with 7a206923 when setting the video
9918           info for the video meta, it should be the one from the image's
9919           allocator rather from the allocation caps.
9920           Test pipeline:
9921           gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
9922           ! tee ! videoconvert ! videoscale                     \
9923           ! video/x-raw, width=1920, height=1080 ! xvimagesink
9924
9925 2017-06-23 14:38:10 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9926
9927         * gst/vaapi/gstvaapipluginbase.c:
9928         * gst/vaapi/gstvaapivideobufferpool.c:
9929           plugins: update buffer size with the one reported by allocator
9930           There is a regression in 7a206923, since the buffer pool ditches all
9931           the buffers generated by them because the pool config size is
9932           different of the buffer's size.
9933           Test pipeline:
9934           gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
9935           ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink    \
9936           --gst-debug=GST_PERFORMANCE:5
9937           The allocator may update the buffer size according to the VA surface
9938           properties. In order to do this, the video info is modified when the
9939           allocator is created, which reports through the allocation info the
9940           updated size, and set it to the pool config.
9941
9942 2017-06-14 21:40:33 +0900  Hyunjun Ko <zzoon@igalia.com>
9943
9944         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9945           libs: decoder: h264: initialize active_sps/pps in reset
9946           Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
9947           they introduced regression in seek.
9948           Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
9949           But since the commits landed, it doesn't drop P-frame and does try to
9950           decode it continuously because active_sps is still alive. See ensure_sps function.
9951           But there are prev_frames and prev_ref_frames reset already, then it
9952           causes assertion.
9953           So it's necessary to reset active_sps/pps also in reset method.
9954           https://bugzilla.gnome.org/show_bug.cgi?id=783726
9955
9956 2017-06-15 13:24:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9957
9958         * gst-libs/gst/vaapi/gstvaapiencoder.c:
9959         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9960           libs: encoder: fix compilation with old versions of libva
9961           There are some symbols that are not used when compiling with old
9962           version of libva and those generates a compilation error.
9963           Original-patch-by: Matt Staples <staples255@gmail.com>
9964
9965 2017-06-09 14:02:20 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9966
9967         * gst-libs/gst/vaapi/gstvaapiencoder.c:
9968           libs: encoder: Fix the quality level clamping
9969           Change the hard-coded range of quality-level from {1-8} to {1-7},
9970           since it is the range Intel Open source driver supports.
9971           Also perform the range clamping only if the user provided
9972           quality-level is greater than the max-range suppored by the driver,
9973           because there could be non-intel drivers giving lower value than
9974           the hard-coded max value 7.
9975           https://bugzilla.gnome.org/show_bug.cgi?id=783567
9976
9977 2017-04-06 19:35:27 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9978
9979         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9980         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9981         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9982         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9983         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9984         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9985           libs: encoder: log out the name of the profile
9986           Instead of printing a number, it is more readable to log out, in
9987           case of error, the name of the failing profile.
9988
9989 2017-05-31 12:36:17 +0900  Hyunjun Ko <zzoon@igalia.com>
9990
9991         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9992           libs: encoder: h264: changes raw number of profile to macro name of its
9993           Changes raw number of profile to macro name of its to improve readability.
9994           https://bugzilla.gnome.org/show_bug.cgi?id=757941
9995
9996 2017-06-09 17:00:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9997
9998         * gst/vaapi/gstvaapivideobufferpool.c:
9999           vaapivideobufferpool: remove allocation_vinfo private attribute
10000           There is no need to keep this attribute internally since it is
10001           already managed by the allocator.
10002           https://bugzilla.gnome.org/show_bug.cgi?id=783599
10003
10004 2017-06-09 15:02:08 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10005
10006         * gst/vaapi/gstvaapivideobufferpool.c:
10007           vaapivideobufferpool: refactor set_config()
10008           Refactor the set_config() virtual method considering a cleaner
10009           approach to allocator instanciation, if it it not set or if it is
10010           not valid for the pool.
10011           https://bugzilla.gnome.org/show_bug.cgi?id=783599
10012
10013 2017-06-09 13:05:36 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10014
10015         * gst/vaapi/gstvaapipluginbase.c:
10016         * gst/vaapi/gstvaapivideobufferpool.c:
10017         * gst/vaapi/gstvaapivideomemory.c:
10018         * gst/vaapi/gstvaapivideomemory.h:
10019           plugins: distinguish allocation and negotiation caps
10020           The vaapi video decoders might have different allocation caps from
10021           the negotiation caps, thus the GstVideoMeta shall use the negotiation
10022           caps, not the allocation caps.
10023           This was done before reusing gst_allocator_get_vaapi_video_info(),
10024           storing there the negotiation caps if they differ from the allocation
10025           ones, but this strategy felt short when the allocator had to be reset
10026           in the vaapi buffer pool, since we need both.
10027           This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
10028           gst_allocator_get_vaapi_negotiated_video_info() to store the
10029           negotiated video info in the allocator, and distinguish it from
10030           the allocation video info.
10031           https://bugzilla.gnome.org/show_bug.cgi?id=783599
10032
10033 2017-06-08 19:32:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10034
10035         * gst/vaapi/gstvaapivideomemory.c:
10036         * gst/vaapi/gstvaapivideomemory.h:
10037           vaapivideomemory: rename qdata quarks and ids
10038           Also the parameter names were renamed to reflect their origin
10039           and purpose.
10040           https://bugzilla.gnome.org/show_bug.cgi?id=783599
10041
10042 2017-06-08 16:05:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10043
10044         * gst/vaapi/gstvaapivideobufferpool.c:
10045           vaapivideobufferpool: rename local variables
10046           Renamed local video info structure names in set_config() vitual
10047           method. The purpose of their renaming is to clarify the origin
10048           of those structures, whether come from passed caps parameter
10049           (new_allocation_vinfo) or from the configured allocator
10050           (allocator_vinfo).
10051           https://bugzilla.gnome.org/show_bug.cgi?id=783599
10052
10053 2017-06-08 15:49:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10054
10055         * gst/vaapi/gstvaapivideobufferpool.c:
10056           vaapivideobufferpool: rename video info structures
10057           Renamed private GstVideoInfo structure video_info to allocation_vinfo
10058           and alloc_info to negotiated_vinfo.
10059           The purpose of these renaming is to clarify the origin and purpose of
10060           these private variables:
10061           video_info (now allocation_vinfo) comes from the bufferpool
10062           configuration. It describes the physical video resolution to be
10063           allocated by the allocator, which may be different from the
10064           negotiated one.
10065           alloc_info (now vmeta_vinfo) comes from the negotiated caps in
10066           the pipeline. It represents how the frame is going to be mapped
10067           using the video meta.
10068           In Intel's VA-API backend, the allocation_vinfo resolution is
10069           bigger than the negotiated_info.
10070           https://bugzilla.gnome.org/show_bug.cgi?id=783599
10071
10072 2017-06-08 12:51:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10073
10074         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10075           libs: encoder: set framerate if bigger than 0/1
10076           Just set the framerate parameter if the framerate numerator and
10077           denominator are bigger than zero.
10078           Otherwise, in Intel Gen6 driver, a warning is raised disabling the
10079           bitrate control.
10080           Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10081           https://bugzilla.gnome.org/show_bug.cgi?id=783532
10082
10083 2017-06-07 12:32:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10084
10085         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10086           libs: encoder: bitrate target percentage calculation
10087           If the rate control is set to Constant Bit Rate (CBR) the target
10088           percentage is 100%, otherwise is 70%
10089
10090 2017-06-07 12:25:24 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10091
10092         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10093         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10094         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10095         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10096         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10097         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10098           libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
10099           Centralize the common configuration for the Rate Control parameter,
10100           thus can be overloaded per each specific encoder.
10101
10102 2017-06-07 11:10:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10103
10104         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10105         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10106         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10107         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10108         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10109         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10110           libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
10111           Since the framerate VA parameter is calculated equally among all the
10112           encoders, it is better to handle it in the base encoder class.
10113
10114 2016-08-09 15:53:47 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10115
10116         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10117         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
10118           libs: encoder: vp9: Adds CBR and VBR Encoding support
10119           https://bugzilla.gnome.org/show_bug.cgi?id=766832
10120           Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10121           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10122
10123 2017-06-01 12:12:26 +0900  Hyunjun Ko <zzoon@igalia.com>
10124
10125         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10126           libs: encoder: vp8: Adds VBR Encoding support
10127           https://bugzilla.gnome.org/show_bug.cgi?id=778732
10128
10129 2017-06-01 12:11:12 +0900  Hyunjun Ko <zzoon@igalia.com>
10130
10131         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10132           libs: encoder: h265: Adds VBR Encoding support
10133           Enables Variable BitRate mode, which does set FrameRate and RateControl
10134           parameters.
10135           https://bugzilla.gnome.org/show_bug.cgi?id=778732
10136
10137 2017-06-02 13:50:05 +0900  Hyunjun Ko <zzoon@igalia.com>
10138
10139         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10140           libs: encoder: Describes more detail about the bitrate property
10141           https://bugzilla.gnome.org/show_bug.cgi?id=778732
10142
10143 2017-06-05 20:44:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10144
10145         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10146           libs: encoder: h265: add rate control parameter
10147           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10148
10149 2017-06-05 20:33:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10150
10151         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10152         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10153         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10154           libs: encoder: h264,h265,mpeg2: add framerate parameter
10155           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10156
10157 2017-06-05 20:30:07 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10158
10159         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10160         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10161         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10162         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10163           libs: encoder: vp8,h264,h265,mpeg2: set misc param once
10164           Instead of recalculating the miscellaneous buffer parameters for
10165           every buffer, it is only done once, when the encoder is configured.
10166           And for every buffer, the same structures are just copied.
10167           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10168
10169 2017-06-05 17:31:10 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10170
10171         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10172         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10173         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10174         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10175         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10176         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10177           libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
10178           This is patch pretends to decouple the assignation of the values
10179           in the parameter structures and the VA buffer's parameters setting.
10180           It may lead to some issues since HRD, framerate or controlrate may
10181           not be handled by the specific encoder, but they are set in
10182           the VA buffer's parameters.
10183           I leave as it because this patch is just a transitional patch.
10184           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10185
10186 2017-06-05 16:34:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10187
10188         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10189           libs: encoder: vp8: fix frame rate calculation
10190           According to the VA documentation:
10191           The framerate is specified as a number of frames per second,
10192           as a fraction.  The denominator of the fraction is given in
10193           the top half (the high two bytes) of the framerate field, and
10194           the numerator is given in the bottom half (the low two bytes).
10195           For example, if framerate is set to (100 << 16 | 750), this is
10196           750 / 100, hence 7.5fps.
10197           If the denominator is zero (the high two bytes are both zero)
10198           then it takes the value one instead, so the framerate is just
10199           the integer in the low 2 bytes.
10200           This patch fixes the the framerate calculation in vp8 encoder
10201           according to this.
10202           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10203
10204 2017-06-02 19:46:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10205
10206         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10207           libs: encoder: vp8: refactor FrameRate parameter
10208           Move frame-rate parameter from ensure_misc_params() to
10209           ensure_contro_rate_param() since it only has meaning when the
10210           control rate is either VBR or CBR.
10211           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10212
10213 2017-06-02 19:33:36 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10214
10215         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10216         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10217         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10218         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10219           libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
10220           Move the Hypothetical Reference Decoder (HRD) parameter, from
10221           ensure_misc_params() to ensure_control_rate_params(), since it
10222           only shall be defined when the control rate is either VBR or CBR.
10223           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10224
10225 2017-06-02 17:21:25 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10226
10227         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10228         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10229         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10230           libs: encoder: h264,vp8,mpeg2: refactor control rate
10231           Instead of filling the control rate param in ensure_misc_params(),
10232           this patch refactor it out, as a first step to merge the same code
10233           for all the encoders.
10234           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10235
10236 2017-06-02 16:28:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10237
10238         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10239         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10240         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10241           libs: encoder: h264, h265, mpeg2: remove assert
10242           Remove spurious asserts for misc parameters. If they cannot be
10243           allocated, FALSE is already returned.
10244
10245 2017-06-05 18:19:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10246
10247         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10248         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10249           libs: encoder: use VA quality level structure
10250           Instead of using a proxy to story the buffer quality level, the
10251           encoder now uses the native VA structure, which is copied to the
10252           dynamically allocated VAEncMiscParameterBuffer.
10253           This approach is computationally less expensive.
10254
10255 2017-05-26 11:10:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10256
10257         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10258         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10259         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10260         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10261           libs: standardize the FIXME comment
10262           This is a trivial patch that makes homogeneous the FIXME tag in
10263           comments.
10264           For more info about these comment style:
10265           http://wiki.c2.com/?FixmeComment
10266
10267 2017-05-22 17:20:45 +0200  Hyunjun Ko <zzoon@igalia.com>
10268
10269         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10270           libs: encoder: vp8: set quality level regardless of rate control mode
10271           https://bugzilla.gnome.org/show_bug.cgi?id=782957
10272
10273 2017-05-15 18:38:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10274
10275         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10276         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10277         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10278         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10279           libs: encoder: check for maximum number of slices
10280           Right now, H264 and HEVC can set as a property the number of slices to
10281           process. But each driver can set a maximum number of slices, depending
10282           on the supported profile & entry point.
10283           This patch verifies the current num_slices to process against the maximum
10284           permitted by the driver and the media size.
10285           https://bugzilla.gnome.org/show_bug.cgi?id=780955
10286
10287 2017-05-15 18:36:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10288
10289         * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10290           libs: utils: mark functions as internals
10291           The functions in this header are internal to the library.
10292
10293 2017-05-15 18:35:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10294
10295         * gst-libs/gst/vaapi/gstvaapicontext.h:
10296           libs: context: add missing documentation
10297           Document the region-of-interest configuration variables.
10298
10299 2017-05-12 18:46:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10300
10301         * tests/elements/test-vaapisink.c:
10302           tests: elements: vaapisink: handle nav events
10303           The test app can now handle navigation events to rotate the
10304           display.
10305
10306 2017-05-12 18:17:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10307
10308         * tests/elements/test-vaapisink.c:
10309           tests: elements: clean up vaapisink test
10310           - Use gst_element_send_event() instead of gst_pad_push_event()
10311           - don't zero App structure
10312           - check for pipeline parsing error
10313           - only get vaapisink for property set
10314
10315 2017-05-12 13:08:30 +0900  Hyunjun Ko <zzoon@igalia.com>
10316
10317         * gst/vaapi/gstvaapisink.c:
10318           vaapisink: keep handle_events flag except that if user want to set
10319           When state of vaapisink is changed from PLAYING to NULL, the handle_events
10320           flag is set to FALSE, and never recovered, and then event thread is never
10321           going to run.
10322           So we should allow to set the flag only when users try it.
10323           https://bugzilla.gnome.org/show_bug.cgi?id=782543
10324
10325 2017-05-12 13:06:24 +0900  Hyunjun Ko <zzoon@igalia.com>
10326
10327         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10328           libs: window: x11: fix src rect info when using vpp
10329           Since we started using VPP in VaapiWindowX11, we need to care about
10330           the case that src rect and window's size are different.
10331           So, once VPP has converted to other format, we should honor the
10332           size of the VPP's surface as source rect. Otherwise, it is cropped
10333           according the previous size of the source rect.
10334           https://bugzilla.gnome.org/show_bug.cgi?id=782542
10335
10336 2017-04-28 15:20:01 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10337
10338         * gst/vaapi/gstvaapipluginutil.c:
10339           plugins: remove par from caps negotiation
10340           https://bugzilla.gnome.org/show_bug.cgi?id=781759
10341
10342 2017-03-30 17:57:42 +0900  Hyunjun Ko <zzoon@igalia.com>
10343
10344         * tests/elements/Makefile.am:
10345         * tests/elements/test-roi.c:
10346           tests: elements: add an example for ROI
10347           This implements a pipleint to recognize difference between ROI and non-ROI.
10348           See comments in this code in detail.
10349           https://bugzilla.gnome.org/show_bug.cgi?id=768248
10350           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10351
10352 2017-03-30 17:54:20 +0900  Hyunjun Ko <zzoon@igalia.com>
10353
10354         * gst/vaapi/gstvaapiencode.c:
10355         * gst/vaapi/gstvaapiencode_h264.c:
10356           vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
10357           Handles new custom event GstVaapiEncoderRegionOfInterest
10358           to enable/disable a ROI region.
10359           Writes a way to use new event to document.
10360           https://bugzilla.gnome.org/show_bug.cgi?id=768248
10361           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10362
10363 2017-02-23 18:53:18 +0900  Hyunjun Ko <zzoon@igalia.com>
10364
10365         * tests/simple-encoder.c:
10366           tests: simple-encoder: add an option to set ROI
10367           $ simple-encoder -r inputfile.y4m
10368           And you'll got an output file in H264 with two regions of interest.
10369           https://bugzilla.gnome.org/show_bug.cgi?id=768248
10370           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10371
10372 2017-02-23 18:52:48 +0900  Hyunjun Ko <zzoon@igalia.com>
10373
10374         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10375           libs: encoder: h264: set ROI params during encoding
10376           Set ROI params during encoding each frame, which are set via
10377           gst_vaapi_encoder_add_roi ()
10378           https://bugzilla.gnome.org/show_bug.cgi?id=768248
10379           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10380
10381 2017-03-28 17:41:37 +0900  Hyunjun Ko <zzoon@igalia.com>
10382
10383         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10384         * gst-libs/gst/vaapi/gstvaapiencoder.h:
10385         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10386           libs: encoder: add api gst_vaapi_encoder_add/del_roi
10387           Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
10388           https://bugzilla.gnome.org/show_bug.cgi?id=768248
10389
10390 2017-02-23 17:57:07 +0900  Hyunjun Ko <zzoon@igalia.com>
10391
10392         * gst-libs/gst/vaapi/gstvaapicontext.c:
10393         * gst-libs/gst/vaapi/gstvaapicontext.h:
10394         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10395           libs: encoder/context: query region of interest support
10396           Queries if the driver supports "Region of Interest" (ROI) during the config
10397           creation.
10398           This attribute conveys whether the driver supports region-of-interest (ROI)
10399           encoding, based on user provided ROI rectangles.  The attribute value is
10400           partitioned into fields as defined in the VAConfigAttribValEncROI union.
10401           If ROI encoding is supported, the ROI information is passed to the driver
10402           using VAEncMiscParameterTypeROI.
10403           https://bugzilla.gnome.org/show_bug.cgi?id=768248
10404           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10405
10406 2017-05-12 11:11:48 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10407
10408         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10409           libs: encoder: fix a comment
10410
10411 2017-05-11 12:23:28 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10412
10413         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10414           libs: encoder: guard quality level configuration
10415           The quality level appeared in VA-API 0.36. So let's guard its
10416           usage.
10417
10418 2017-04-19 13:04:44 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10419
10420         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10421         * gst-libs/gst/vaapi/gstvaapiencoder.h:
10422         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10423         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10424         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10425         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10426         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10427         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10428         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10429           encoders: add quality level tuning
10430           This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
10431           in gstreamer-vaapi encoders:
10432           The encoding quality could be set through this structure, if the
10433           implementation supports multiple quality levels. The quality level set
10434           through this structure is persistent over the entire coded sequence, or
10435           until a new structure is being sent. The quality level range can be queried
10436           through the VAConfigAttribEncQualityRange attribute. A lower value means
10437           higher quality, and a value of 1 represents the highest quality. The quality
10438           level setting is used as a trade-off between quality and speed/power
10439           consumption, with higher quality corresponds to lower speed and higher power
10440           consumption.
10441           The quality level is set by the element's parameter "quality-level" with a
10442           hard-coded range of 1 to 8.
10443           Later, when the encoder is configured in run time, just before start
10444           processing, the quality level is scaled to the codec range. If
10445           VAConfigAttribEncQualityRange is not available in the used VA backend, then
10446           the quality level is set to zero, which means "disabled".
10447           All the available codecs now process this parameter if it is available.
10448           https://bugzilla.gnome.org/show_bug.cgi?id=778733
10449           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10450
10451 2017-05-04 18:59:31 +0300  Sebastian Dröge <sebastian@centricular.com>
10452
10453         * configure.ac:
10454         * meson.build:
10455           Back to development
10456
10457 === release 1.12.0 ===
10458
10459 2017-05-04 15:46:03 +0300  Sebastian Dröge <sebastian@centricular.com>
10460
10461         * ChangeLog:
10462         * NEWS:
10463         * configure.ac:
10464         * gstreamer-vaapi.doap:
10465         * meson.build:
10466           Release 1.12.0
10467
10468 2017-05-04 11:49:33 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10469
10470         * gst/vaapi/gstvaapidecodebin.c:
10471           Revert "vaapidecodebin: fix element's classification"
10472           This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
10473
10474 2017-04-27 22:55:27 -0700  Scott D Phillips <scott.d.phillips@intel.com>
10475
10476         * configure.ac:
10477         * meson.build:
10478           build: Require libva < 0.99.0
10479           libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
10480           fail to configure instead of failing late in the build.
10481           This libva is bundled in msdk[1] and it is ahead in time with
10482           respect the official and open source libva[2]. GStreamer-VAAPI
10483           only supports the latter for now.
10484           1. https://software.intel.com/en-us/media-sdk/download
10485           2. https://github.com/01org/libva/
10486           https://bugzilla.gnome.org/show_bug.cgi?id=781866
10487
10488 2017-05-02 14:08:54 +0200  Victor Toso <me@victortoso.com>
10489
10490         * gst/vaapi/gstvaapidecodebin.c:
10491           vaapidecodebin: fix element's classification
10492           This bin should have similar classification as decodebin which is
10493           "Generic/Bin/Decoder" otherwise it will appear wrongly as video
10494           decoder.
10495           Signed-off-by: Victor Toso <victortoso@redhat.com>
10496           https://bugzilla.gnome.org/show_bug.cgi?id=782063
10497
10498 === release 1.11.91 ===
10499
10500 2017-04-27 17:49:52 +0300  Sebastian Dröge <sebastian@centricular.com>
10501
10502         * ChangeLog:
10503         * NEWS:
10504         * configure.ac:
10505         * gstreamer-vaapi.doap:
10506         * meson.build:
10507           Release 1.11.91
10508
10509 2017-04-27 13:08:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10510
10511         * gst/vaapi/gstvaapipluginutil.c:
10512           Revert "plugins: reject pixel-aspect-ratio with value 0/1"
10513           This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
10514
10515 2017-04-27 12:43:54 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10516
10517         * gst/vaapi/gstvaapipluginutil.c:
10518           plugins: reject pixel-aspect-ratio with value 0/1
10519           Do not negotiate a pixel-aspect-ratio of 0/1.
10520           https://bugzilla.gnome.org/show_bug.cgi?id=781759
10521
10522 2017-04-26 15:48:01 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10523
10524         * gst/vaapi/gstvaapipostprocutil.c:
10525         * gst/vaapi/gstvaapisink.c:
10526           plugins: handle pixel-aspect-ratio with value 0/1
10527           When downstream negotiates a pixel-aspect-ratio of 0/1, the
10528           calculations for resizing and formatting in vaapipostproc and
10529           vaapisink, respectively, failed, and thus the pipeline.
10530           This patch handles this situation by converting p-a-r of 0/1 to
10531           1/1. This is how other sinks, such as glimagesink, work.
10532           https://bugzilla.gnome.org/show_bug.cgi?id=781759
10533
10534 2017-04-27 14:42:55 +0900  Hyunjun Ko <zzoon@igalia.com>
10535
10536         * gst/vaapi/gstvaapivideobufferpool.c:
10537           vaapivideobufferpool: fix leak of created allocator
10538           Since it's created by itself, it should be unref-counted
10539           after gst_buffer_pool_config_set_allocator call. Afterwards,
10540           this allocator will be ref-counted again when assigning to priv->allocator.
10541           https://bugzilla.gnome.org/show_bug.cgi?id=781577
10542
10543 2017-04-21 19:07:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10544
10545         * gst/vaapi/gstvaapivideobufferpool.c:
10546           vaapivideobufferpool: create or reconfig allocator
10547           Sometimes a video decoder could set different buffer pool
10548           configurations, because their frame size changes. In this case we
10549           did not reconfigure the allocator.
10550           This patch enables this use case, creating a new allocator inside
10551           the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
10552           If so, it is just reconfigured, since it doesn't have a surface pool.
10553           https://bugzilla.gnome.org/show_bug.cgi?id=781577
10554
10555 2017-04-25 12:58:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10556
10557         * tests/elements/Makefile.am:
10558           test: elements: fix compilation flags
10559           This issue was spotten on bug #766704
10560           Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10561
10562 2017-04-25 16:23:08 +0900  Hyunjun Ko <zzoon@igalia.com>
10563
10564         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10565           libs: windows: wayland: fix leak if failure of sync
10566           Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
10567           during destruction.
10568           In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
10569           This surface is not attached to anything at this moment, so we should release
10570           it manually.
10571           https://bugzilla.gnome.org/show_bug.cgi?id=781695
10572
10573 2017-04-24 20:30:30 +0100  Tim-Philipp Müller <tim@centricular.com>
10574
10575         * common:
10576           Automatic update of common submodule
10577           From 60aeef6 to 48a5d85
10578
10579 2017-04-21 15:30:09 +0200  Hyunjun Ko <zzoon@igalia.com>
10580
10581         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10582           libs: window: wayland: mark frames as done
10583           When the frame listener callbacks 'done', the number of pending
10584           frames are decreased. Nonetheless, there might be occasions where
10585           the buffer listener callbacks 'release', without calling previously
10586           frame's 'done'. This leads to problem with
10587           gst_vaapi_window_wayland_sync() operation.
10588           This patch marks as done those frames which were callbacked, but if
10589           the buffer callbacks 'release' and associated frame is not marked
10590           as 'done' it is so, thus the number of pending frames keeps correct.
10591           https://bugzilla.gnome.org/show_bug.cgi?id=780442
10592           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10593
10594 2017-04-21 14:07:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10595
10596         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10597           libs: window: wayland: don't sync at destroy()
10598           Don't call gst_vaapi_window_wayland_sync() when destroying the
10599           wayland window instance, since it might lead to a lock at
10600           gst_poll_wait() when more than one instances of vaapisink are
10601           rendering in the same pipeline, this is because they share the
10602           same window.
10603           Since now all the frames are freed we don't need to freed the
10604           private last_frame, since its address is invalid now.
10605           https://bugzilla.gnome.org/show_bug.cgi?id=780442
10606           Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10607
10608 2017-04-19 10:37:19 +0900  Hyunjun Ko <zzoon@igalia.com>
10609
10610         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10611           libs: window: wayland: null buffer at destroy()
10612           Fix leakage of the last wl buffer.
10613           VAAPI wayland sink needs to send a null buffer while destruction,
10614           it assures that all the wl buffers are released. Otherwise, the last
10615           buffer's callback might be not called, which leads to leak of
10616           GstVaapiDisplay.
10617           This was inspired by gstwaylandsink.
10618           https://bugzilla.gnome.org/show_bug.cgi?id=774029
10619           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10620
10621 2016-10-30 10:43:49 +0900  Jagyum Koo <koojagyum@gmail.com>
10622
10623         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10624           libs: window: wayland: rt event queue at destroy()
10625           The proxy object of wl_buffer for the last frame remains in the
10626           wl_map. Even though we call wl_buffer_destroy() in
10627           frame_release_callback(), the proxy object remains without being
10628           removed, since proxy object is deleted when wayland server sees the
10629           delete request and sends 'delete_id' event.
10630           We need to call roundtrip before destroying event_queue so that the
10631           proxy object is removed. Otherwise, it would be mess up as receiving
10632           'delete_id' event from previous play, when playing in the next
10633           va/wayland window with the same wl_display connection.
10634           https://bugzilla.gnome.org/show_bug.cgi?id=773689
10635           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10636
10637 2017-04-20 20:30:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10638
10639         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10640           libs: window: wayland: cancel read at poll message
10641           Always call wl_display_cancel_read() when an errno is set, but
10642           different to EAGAIN or EINTR.
10643           https://bugzilla.gnome.org/show_bug.cgi?id=780442
10644
10645 2017-04-21 18:05:48 +0900  Hyunjun Ko <zzoon@igalia.com>
10646
10647         * gst/vaapi/gstvaapidecodebin.c:
10648         * gst/vaapi/gstvaapidecodebin.h:
10649           vaapidecodebin: skips configuration once it's done
10650           Skips configuration of creation of vpp/capsfilter and link them once it's done.
10651           Otherwise, it always fails when it's trying to re-start playback.
10652           https://bugzilla.gnome.org/show_bug.cgi?id=781573
10653
10654 2017-04-20 18:44:41 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10655
10656         * gst/vaapi/gstvaapipostprocutil.c:
10657           vaapipostproc: fixes for memory leaks
10658           The use of gst_vaapi_value_set_format() and gst_structure_*_value()
10659           requires to clear the used GValue to avoid a memory leak.
10660
10661 2016-12-08 18:51:54 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10662
10663         * gst/vaapi/gstvaapipluginbase.c:
10664         * gst/vaapi/gstvaapipluginbase.h:
10665           plugins: enable direct rendering with envvar
10666           Direct rendering (use vaDeriveImage rather than vaPutImage) has better
10667           performance in some Intel platforms (Haswell, for example) but in others
10668           (Skylake) is the opposite.
10669           In order to have some control, the patch enables the direct rendering
10670           through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
10671           Also it seems to generating some problems with gallium/radeon backend.
10672           See bug #779642.
10673           https://bugzilla.gnome.org/show_bug.cgi?id=775848
10674
10675 2017-04-08 02:05:21 +1000  Jan Schmidt <jan@centricular.com>
10676
10677         * gst/vaapi/gstvaapidecode.c:
10678           vaapidecode: Don't renegotiate on every flush
10679           If caps don't actually change, don't update the
10680           decoder and don't set the do_renego flag forcing
10681           downstream renegotiation
10682           https://bugzilla.gnome.org/show_bug.cgi?id=781142
10683
10684 2017-04-08 01:21:23 +1000  Jan Schmidt <jan@centricular.com>
10685
10686         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10687           h264 decoder: Implement reset() for faster flush
10688           Implement a custom reset() function for faster flushes
10689           that just clear the reference pictures but don't reallocate
10690           the DPB or clear out SPS/PPS
10691           https://bugzilla.gnome.org/show_bug.cgi?id=781142
10692
10693 2017-04-05 17:24:20 +1000  Jan Schmidt <jan@centricular.com>
10694
10695         * gst-libs/gst/vaapi/gstvaapidecoder.c:
10696         * gst-libs/gst/vaapi/gstvaapidecoder.h:
10697         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10698         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10699         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10700         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
10701         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
10702         * gst/vaapi/gstvaapidecode.c:
10703           Implement decoder reset on flush, rather than recreating
10704           Clear decoders out on a flush but keep the same instance,
10705           rather than completely recreating them. That avoids
10706           unecessarily freeing and recreating surface pools
10707           and contexts, which can be quite expensive
10708           https://bugzilla.gnome.org/show_bug.cgi?id=781142
10709
10710 2017-04-11 18:50:35 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10711
10712         * gst-libs/gst/vaapi/gstvaapiwindow.c:
10713           libs: window: don't add an unused function
10714           The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
10715           a function that is never used, thus when compiling we might see
10716           this warning (clang):
10717           gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
10718           GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
10719           ^
10720           https://bugzilla.gnome.org/show_bug.cgi?id=759533
10721
10722 2017-04-11 18:22:00 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10723
10724         * gst-libs/gst/vaapi/gstvaapiwindow.c:
10725         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10726           libs: window: remove surface_format member
10727           Since we always convert to NV12, there is no need to keep a
10728           variable for that. Let us hard code it.
10729           https://bugzilla.gnome.org/show_bug.cgi?id=759533
10730
10731 2017-04-10 17:23:26 +0900  Hyunjun Ko <zzoon@igalia.com>
10732
10733         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10734         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10735         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10736           libs: window: x11/wayland: use new api for conversion
10737           Since gst_vaapi_window_vpp_convert_internal is created,
10738           GstVaapiWindowX11/Wayland can use it for conversion.
10739           Note that once it chooses to use vpp, it's going to use vpp
10740           until the session is finished.
10741           https://bugzilla.gnome.org/show_bug.cgi?id=759533
10742
10743 2017-04-10 11:41:29 +0900  Hyunjun Ko <zzoon@igalia.com>
10744
10745         * gst-libs/gst/vaapi/gstvaapiwindow.c:
10746         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10747           libs: window: add gst_vaapi_window_vpp_convert_internal()
10748           If a backend doesn't support specific format, we can use vpp for conversion
10749           and make it playing.
10750           This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
10751           so that GstVaapiWindowX11 could use it.
10752           https://bugzilla.gnome.org/show_bug.cgi?id=759533
10753
10754 2017-04-03 16:45:36 +0900  Hyunjun Ko <zzoon@igalia.com>
10755
10756         * gst-libs/gst/vaapi/gstvaapiwindow.c:
10757         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10758         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10759         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10760         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10761           libs: window: x11/wayland: chaining up to GstVaapiWindow
10762           Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
10763           This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
10764           https://bugzilla.gnome.org/show_bug.cgi?id=759533
10765
10766 2017-04-05 11:19:15 -0700  Scott D Phillips <scott.d.phillips@intel.com>
10767
10768         * gst/vaapi/gstvaapipluginutil.c:
10769           plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
10770           When these definitions are false, they are undef in the
10771           preprocessor, not a defined value of 0. When they are unset the
10772           compile fails with:
10773           'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
10774           https://bugzilla.gnome.org/show_bug.cgi?id=780948
10775
10776 2017-04-10 23:51:06 +0100  Tim-Philipp Müller <tim@centricular.com>
10777
10778         * common:
10779           Automatic update of common submodule
10780           From 39ac2f5 to 60aeef6
10781
10782 === release 1.11.90 ===
10783
10784 2017-04-07 16:36:21 +0300  Sebastian Dröge <sebastian@centricular.com>
10785
10786         * ChangeLog:
10787         * NEWS:
10788         * configure.ac:
10789         * gstreamer-vaapi.doap:
10790         * meson.build:
10791           Release 1.11.90
10792
10793 2017-04-03 14:52:41 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10794
10795         * gst/vaapi/gstvaapiencode_h265.c:
10796           vaapiencode: h265: add main-10 in caps template
10797           This patch adds h265's main-10 profile in encoder src caps template.
10798           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10799
10800 2017-04-03 15:34:51 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10801
10802         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10803           libs: encoder: h265: chroma and luma with format
10804           If the profile is main-10 the bit_depth_luma_minus8, in the sequence
10805           parameter buffer, shall be the color format bit depth minus 8, 10-8
10806           which is 2. Also for bit_depth_chroma_minus8.
10807           This patch gets the negotiated sink caps format and queries its
10808           luma's depth and uses that value to fill the mentioned parameters.
10809           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10810
10811 2017-03-29 19:20:26 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10812
10813         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10814           libs: encoder: admit YUV420_10BPP as valid chroma
10815           Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
10816           type.
10817           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10818
10819 2017-03-29 19:16:50 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10820
10821         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10822           libs: encoder: h265: ensures profile given format
10823           Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
10824           configured color format is P010_10LE.
10825           Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
10826           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10827
10828 2017-04-06 17:21:21 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10829
10830         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10831           libs: encode: merge all possible surface formats
10832           When the function gst_vaapi_encoder_get_surface_formats() was added
10833           it was under the assumption that any VA profile of the specific codec
10834           supported the same format colors. But it is not, for example the
10835           profiles that support 10bit formats.
10836           In other words, different VA profiles of a same codec may support
10837           different color formats in their upload surfaces.
10838           In order to expose all the possible color formats, if no profile is
10839           specified via source caps, or if the encoder doesn't have yet a
10840           context, all the possible VA profiles for the specific codec are
10841           iterated and their color formats are merged.
10842           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10843
10844 2017-04-06 16:28:12 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10845
10846         * gst/vaapi/gstvaapiencode.c:
10847         * gst/vaapi/gstvaapiencode.h:
10848         * gst/vaapi/gstvaapiencode_h264.c:
10849         * gst/vaapi/gstvaapiencode_h265.c:
10850           vaapiencode: add get_profile() vmethod
10851           This new virtual method, get_profile(), if implemented by specific
10852           encoders, will return the VA profile potentially determined by the
10853           source caps.
10854           Also it is implemented by h264 and h265 encoders, which are the main
10855           users of this vmethod.
10856           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10857
10858 2017-04-06 12:49:24 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10859
10860         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10861         * gst-libs/gst/vaapi/gstvaapiencoder.h:
10862         * gst/vaapi/gstvaapiencode.c:
10863           libs: encoder: pass profile to get_surface_formats()
10864           In order to get the supported surface formats within a specific
10865           profile this patch adds the GstVaapiProfile as property to
10866           gst_vaapi_encoder_get_surface_formats().
10867           Currently the extracted formats are only those related with the
10868           default profile of the element's codec.
10869           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10870
10871 2017-04-06 12:28:51 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10872
10873         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10874           libs: encoder: dummy context for get_surface_formats()
10875           Instead of creating (if it doesn't exist, yet) the encoder's context
10876           the method gst_vaapi_encoder_get_surface_formats() now it creates
10877           dummy contexts, unless the encoder has it already created.
10878           The purpose of this is to avoid setting a encoder's context with a
10879           wrong profile.
10880           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10881
10882 2017-04-04 14:39:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10883
10884         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10885           libs: encoder: refactor init_context_info()
10886           In order to generate vaapi contexts iterative, the function
10887           init_context_info() is refactored to pass, as parameters the
10888           GstVaapiContextInfo and the GstVaapiProfile.
10889           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10890
10891 2017-04-04 14:21:43 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10892
10893         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10894         * gst-libs/gst/vaapi/gstvaapiutils.c:
10895         * gst-libs/gst/vaapi/gstvaapiutils.h:
10896           libs: encoder: initialize chroma_type
10897           Instead of initialize the chroma_type with a undefined value, which
10898           will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
10899           this patch queries the VA config, given the received
10900           GstVaapiContextInfo's parameters, and gets the first response.
10901           In order to get the GstVaapiChromaType value, also it was needed to
10902           add a new utility function: to_GstVaapiChromaType(), which, given a
10903           VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
10904           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10905
10906 2017-03-31 11:21:21 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10907
10908         * gst/vaapi/gstvaapiencode.c:
10909           vaapiencode: enhance logs of negotiated caps
10910           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10911
10912 2017-04-05 11:15:41 -0700  Scott D Phillips <scott.d.phillips@intel.com>
10913
10914         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10915           libs: encoder: vp9: Fix initialization of ref_list
10916           gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
10917           'memset' used with length equal to number of elements without
10918           multiplication by element size [-Werror=memset-elt-size]
10919           https://bugzilla.gnome.org/show_bug.cgi?id=780947
10920
10921 2017-03-31 14:12:43 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10922
10923         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10924           encoder: h264: Fix Backward ReferencePicture flag setting
10925           This is a regression introduced by e829b62 which
10926           override the reference flags and caused issues with
10927           latest intel-vaapi-driver.
10928
10929 2017-03-29 13:22:47 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10930
10931         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10932           libs: encoder: h265: fix code style
10933           Trivial patch to remove a double ';' as end of instruction.
10934
10935 2017-03-28 10:53:20 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10936
10937         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10938           encoder: h264: Fix B frame encoding artifacts
10939           The current implementation is updating the POC values only
10940           in Slice parameter Buffer.But we are not filling the
10941           picture order count and reference flags in VAPictureH264
10942           while populating VA Picture/Slice structures.The latest
10943           intel-vaapi-driver is directly accessing the above fields
10944           from VAPicutreH264 provided as RefPicLists, which resulted
10945           some wrong maths and prediction errors in driver.
10946           https://bugzilla.gnome.org/show_bug.cgi?id=780620
10947
10948 2017-03-21 16:13:56 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10949
10950         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10951           libs: encoder: h265: remove unused macro definition
10952           Since the h265 encoder doesn't use GValueArray, there is no need to
10953           disable the Glib deprecation warnings, thus removing the macro
10954           definition.
10955
10956 2017-03-20 16:45:01 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10957
10958         * gst/vaapi/gstvaapidecode.c:
10959         * gst/vaapi/gstvaapiencode.c:
10960         * gst/vaapi/gstvaapipostproc.c:
10961         * gst/vaapi/gstvaapisink.c:
10962           plugins: when debug disabled, default category is NULL
10963           As in gstreamer-vaapi a common base class is used, the specific
10964           default category is passed to the base-plugin initializator, thus
10965           the log messages are categorized with the used plugin.
10966           Nonetheless, when the gst-debug is disabled in compilation time,
10967           it is needed to pass NULL to the base-plugin initializator. This
10968           patch does that.
10969           https://bugzilla.gnome.org/show_bug.cgi?id=780302
10970
10971 2017-03-17 17:14:01 +0900  Hyunjun Ko <zzoon@igalia.com>
10972
10973         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10974         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10975         * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10976         * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10977           libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
10978           Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
10979           unit length and data to a bitwriter.
10980           Note that this helper function applies EPB (Emulation Prevention
10981           Bytes), since otherwise produced codec_data might be broken when
10982           decoder/parser considering EPB, starts parsing.
10983           See sections 7.3 and 7.4 of the H264 and H264 specifications, which
10984           describes the emulation_prevention_three_byte.
10985           https://bugzilla.gnome.org/show_bug.cgi?id=778750
10986           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10987
10988 2017-03-17 16:49:41 +0900  Hyunjun Ko <zzoon@igalia.com>
10989
10990         * gst-libs/gst/vaapi/Makefile.am:
10991         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10992         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10993         * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10994         * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10995         * gst-libs/gst/vaapi/meson.build:
10996           libs: utils: h26x: create vaapiutils_h26x
10997           Since there is duplicated code in h264/265 encoder, we could
10998           refactor it to avoid duplicated code.
10999           https://bugzilla.gnome.org/show_bug.cgi?id=778750
11000           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11001
11002 2017-03-17 16:32:36 +0900  Hyunjun Ko <zzoon@igalia.com>
11003
11004         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
11005         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11006           libs: encoder: h264/5: fix wrong return value
11007           https://bugzilla.gnome.org/show_bug.cgi?id=778750
11008
11009 2017-03-13 17:29:59 +0900  Hyunjun Ko <zzoon@igalia.com>
11010
11011         * gst/vaapi/gstvaapiencode_h264.c:
11012         * gst/vaapi/gstvaapiencode_h265.c:
11013           docs: h264/h265: put parser to the example pipeline
11014           https://bugzilla.gnome.org/show_bug.cgi?id=778749
11015
11016 2017-03-13 16:20:59 +0900  Hyunjun Ko <zzoon@igalia.com>
11017
11018         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11019           libs: encoder: h265: fix reserved length of bits
11020           Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
11021           https://bugzilla.gnome.org/show_bug.cgi?id=778749
11022
11023 2017-03-12 18:59:42 +0100  Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11024
11025         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11026         * tests/test-display.c:
11027           O_CLOEXEC needs _GNU_SOURCE defined
11028           From man open(2):
11029           The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
11030           in POSIX.1-2001, but are specified in POSIX.1-2008.  Since glibc
11031           2.12, one can obtain their definitions by defining either
11032           _POSIX_C_SOURCE with a value greater than or equal to 200809L or
11033           _XOPEN_SOURCE with a value greater than or equal to 700.  In glibc
11034           2.11 and earlier, one obtains the definitions by defining
11035           _GNU_SOURCE.
11036           And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
11037           _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
11038           gstreamer-vaapi with the uClibc C library.
11039           Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11040           https://bugzilla.gnome.org/show_bug.cgi?id=779953
11041
11042 2017-03-14 16:07:08 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11043
11044         * README:
11045           README: fix "Sources" section
11046           Update the URL where the release source tarballs can be downloaded.
11047
11048 2017-03-12 21:39:53 +0100  Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11049
11050         * README:
11051           README: fix "Reporting bugs" section
11052           The "Reporting bugs" section gives
11053           https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
11054           link to report a bug, but this link says "Sorry, entering a bug into the
11055           product gstreamer-vaapi has been disabled.".
11056           This commit fixes the URL to point to the proper location, and also
11057           removes the following paragraph that is no longer correct.
11058           Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
11059           https://bugzilla.gnome.org/show_bug.cgi?id=779954
11060
11061 2017-03-03 19:55:00 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11062
11063         * gst/vaapi/gstvaapipluginutil.c:
11064           plugins: retry to create the VA display
11065           Particularly in GNOME Wayland, the negotiated or created GL context
11066           defines a GLX environment, but VAAPI fails to create a GLX VA
11067           display because there is no a DRI2 connection.
11068           This patch retries to create the VA display if VA cannot create one
11069           with the GL context parameters. Now using the old list of display
11070           types.
11071           This should also work in the case of systems with two GPU, when the
11072           non-VAAPI has the graphics environment, and the VAAPI-enabled one
11073           shall work headless.
11074           https://bugzilla.gnome.org/show_bug.cgi?id=772838
11075
11076 2016-10-19 15:33:41 +0100  Julien Isorce <j.isorce@samsung.com>
11077
11078         * gst/vaapi/gstvaapipostproc.c:
11079           vaapipostproc: texture upload if driver supports GL
11080           Removes GstVideoGLTextureUploadMeta caps feature if the driver
11081           doesn't support opengl.
11082           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11083           https://bugzilla.gnome.org/show_bug.cgi?id=772838
11084
11085 2016-10-25 17:48:47 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11086
11087         * gst/vaapi/gstvaapidecode.c:
11088           vaapidecode: texture upload if driver supports GL
11089           When the allowed source pad caps are generated, the GLTextureUpload caps are
11090           only inserted if the driver support OpenGL.
11091           https://bugzilla.gnome.org/show_bug.cgi?id=772838
11092
11093 2017-02-22 15:02:01 -0800  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
11094
11095         * configure.ac:
11096           configure: Add missing compiler flags
11097           The AC_CHECK_HEADERS macro was failing to locate some headers, in
11098           particular the va_enc_* headers due to missing compiler flags.
11099           https://bugzilla.gnome.org/show_bug.cgi?id=779101
11100           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11101
11102 2017-03-01 14:48:46 +0900  Hyunjun Ko <zzoon@igalia.com>
11103
11104         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
11105           libs: window: wayland: handle more VAStatus to use vpp
11106           Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
11107           we should consider more returned VAStatus to use vpp.
11108           https://bugzilla.gnome.org/show_bug.cgi?id=779400
11109
11110 2017-02-23 15:16:06 +0900  Hyunjun Ko <zzoon@igalia.com>
11111
11112         * gst-libs/gst/vaapi/gstvaapiencoder.c:
11113           libs: encoder: ensure profile when context initialization
11114           We can't be sure that encoder's profile is assgined already or not
11115           at context initialization.
11116           https://bugzilla.gnome.org/show_bug.cgi?id=779120
11117
11118 2017-02-23 15:13:59 +0900  Hyunjun Ko <zzoon@igalia.com>
11119
11120         * gst-libs/gst/vaapi/gstvaapiencoder.c:
11121           libs: encoder: set rate control info only when query succeed
11122           Currently, it set rate control information even when query fails.
11123           In addition, it doesn't update any more since the flag
11124           got_rate_control_mask is set to TRUE.
11125           https://bugzilla.gnome.org/show_bug.cgi?id=779120
11126
11127 2017-02-24 16:00:23 +0200  Sebastian Dröge <sebastian@centricular.com>
11128
11129         * meson.build:
11130           meson: Update version
11131
11132 2017-02-24 15:38:22 +0200  Sebastian Dröge <sebastian@centricular.com>
11133
11134         * configure.ac:
11135           Back to development
11136
11137 === release 1.11.2 ===
11138
11139 2017-02-24 15:10:21 +0200  Sebastian Dröge <sebastian@centricular.com>
11140
11141         * ChangeLog:
11142         * NEWS:
11143         * configure.ac:
11144         * gstreamer-vaapi.doap:
11145           Release 1.11.2
11146
11147 2017-02-16 18:37:59 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11148
11149         * gst/vaapi/gstvaapiencode.c:
11150           vaapiencode: merge tags for downstream's info
11151           Add encoder and codec name and the bitrate into the output for
11152           informational purposes. Some muxers or application use it as
11153           media metadata.
11154           https://bugzilla.gnome.org/show_bug.cgi?id=778781
11155
11156 2017-02-17 01:27:52 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11157
11158         * gst-libs/gst/vaapi/gstvaapiencoder.c:
11159           libs: encoder: caps can change at any time
11160           The encoder should be able to change its caps even it is already
11161           processing a stream.
11162           This is suppose to happen after a flush so the codedbuf_queue should
11163           be empty.
11164           https://bugzilla.gnome.org/show_bug.cgi?id=775490
11165
11166 2017-02-17 01:19:00 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11167
11168         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11169           libs: encoder: h265: bail if nal unit type fails
11170           Bail out if the NAL unit type is not recognized.
11171           https://bugzilla.gnome.org/show_bug.cgi?id=778782
11172
11173 2017-02-16 18:11:50 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11174
11175         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11176         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11177           libs: decoder: h264,h265 avoid uninitialized variable
11178           Configuring GCC to verify possible usage of uninitialized variables,
11179           shows that found_index might be used without previous assignation.
11180           This patch assigns a initial value to found_index, also avoid a
11181           branching when returning the result value.
11182           https://bugzilla.gnome.org/show_bug.cgi?id=778782
11183
11184 2017-02-13 16:39:41 -0800  Scott D Phillips <scott.d.phillips@intel.com>
11185
11186         * configure.ac:
11187         * gst-libs/gst/vaapi/Makefile.am:
11188         * gst/vaapi/gstvaapidecode.c:
11189         * gst/vaapi/gstvaapidecodebin.c:
11190           build: rename USE_HEVC_DECODER to USE_H265_DECODER
11191           Rename to be consistent with H.264 and also H.265 encoder. The
11192           meson build assumed this was already consistently named, and so
11193           previously was not able to actually build the H.265 decoder.
11194           https://bugzilla.gnome.org/show_bug.cgi?id=778576
11195
11196 2017-02-15 19:14:59 +0000  Tim-Philipp Müller <tim@centricular.com>
11197
11198         * meson.build:
11199           meson: gstreamer-codecparsers is a required dep
11200           Just like in configure.ac.
11201
11202 2017-02-15 00:26:21 +0000  Tim-Philipp Müller <tim@centricular.com>
11203
11204         * Makefile.am:
11205           meson: dist meson build files
11206           Ship meson build files in tarballs, so people who use tarballs
11207           in their builds can start playing with meson already.
11208
11209 2017-02-10 09:51:38 +0900  Hyunjun Ko <zzoon@igalia.com>
11210
11211         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11212           libs: encoder: vp8: add CBR encoding mode
11213           This patch enables the Constant BitRate encoding mode in VP8 encoder.
11214           Basically it adds the configuration parameters required by libva to
11215           CBR enconding.
11216           Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11217           https://bugzilla.gnome.org/show_bug.cgi?id=749950
11218
11219 2017-02-09 12:39:19 +0900  Hyunjun Ko <zzoon@igalia.com>
11220
11221         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11222           libs: encoder: vp8: fix bitrate calculation
11223           Base encoder's unit of bitrate is in Kbps. We should honor it so
11224           we use the value of bitrate in VA, in which is expressed in bps.
11225           https://bugzilla.gnome.org/show_bug.cgi?id=749950
11226
11227 2017-02-09 12:49:44 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11228
11229         * gst/vaapi/gstvaapipluginbase.c:
11230           plugins: fix build when gcc
11231           In commit a8e482f9 we added a function without parameters, but gcc
11232           doesn't like that.
11233
11234 2017-02-06 15:46:20 -0800  Scott D Phillips <scott.d.phillips@intel.com>
11235
11236         * gst-libs/gst/base/meson.build:
11237         * gst-libs/gst/meson.build:
11238         * gst-libs/gst/vaapi/meson.build:
11239         * gst-libs/meson.build:
11240         * gst/meson.build:
11241         * gst/vaapi/meson.build:
11242         * meson.build:
11243         * meson_options.txt:
11244           vaapi: add meson build
11245           https://bugzilla.gnome.org/show_bug.cgi?id=778250
11246
11247 2017-02-08 10:17:40 -0800  Scott D Phillips <scott.d.phillips@intel.com>
11248
11249         * configure.ac:
11250         * gst-libs/gst/vaapi/Makefile.am:
11251         * gst-libs/gst/vaapi/gstvaapidisplay.c:
11252         * gst-libs/gst/vaapi/gstvaapiversion.h.in:
11253           make: remove gstvaapiversion.h generation
11254           https://bugzilla.gnome.org/show_bug.cgi?id=778250
11255
11256 2016-10-19 15:47:41 +0100  Julien Isorce <j.isorce@samsung.com>
11257
11258         * gst/vaapi/gstvaapipluginbase.c:
11259           plugins: use linear storage if not the same device
11260           When dmabuf is negotiated downstream and decoding and rendering are
11261           not done on the same device, the layout has to be linear in order for
11262           the memory to be shared accross devices, since each device has its
11263           own way to do tiling.
11264           Right now this code is rather just a to-do comment, since we are not
11265           fetching the device ids.
11266           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11267
11268 2017-02-08 14:17:05 +0900  Hyunjun Ko <zzoon@igalia.com>
11269
11270         * gst-libs/gst/vaapi/gstvaapiutils.c:
11271           libs: utils: add HEVC profiles representation
11272           https://bugzilla.gnome.org/show_bug.cgi?id=778318
11273
11274 2017-02-07 16:17:39 +0900  Hyunjun Ko <zzoon@igalia.com>
11275
11276         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11277           libs: decoder: h264: reduce frame number of gaps
11278           Reduce frame num gaps so that we don't have to create unnecessary
11279           dummy pictures, just throw them away.
11280           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11281           https://bugzilla.gnome.org/show_bug.cgi?id=777506
11282
11283 2016-10-16 01:04:09 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11284
11285         * gst/vaapi/gstvaapidecode.c:
11286           vaapidecode: don't GLTextureUpload if dmabuf
11287           Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11288           element can handle dmabuf-based buffers, avoiding its negotiation.
11289
11290 2016-10-19 16:21:21 +0100  Julien Isorce <j.isorce@samsung.com>
11291
11292         * gst/vaapi/gstvaapidecode.c:
11293           vaapidecode: make pool to export decoder's surface
11294           Use new -base API gst_video_decoder_allocate_output_frame_full() to
11295           pass the current proxy/surface to the pool.
11296           The pool will will export thins given surface instead of exporting a
11297           brand new surface that will never be filled in with meaningfull data.
11298           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11299
11300 2017-02-03 17:06:29 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11301
11302         * gst/vaapi/gstvaapipluginbase.c:
11303           plugins: decoder can negotiate dmabuf downstream
11304
11305 2016-10-19 16:07:07 +0100  Julien Isorce <j.isorce@samsung.com>
11306
11307         * gst/vaapi/gstvaapivideobufferpool.c:
11308           vaapivideobufferpool: override acquire_buffer()
11309           Overriding the vmethod acquire_buffer() it is possible to attach the
11310           right GstMemory to the current acquired buffer.
11311           As a matter of fact, this acquired buffer may contain any instantiated
11312           GstFdmemory, since this buffer have been popped out from the buffer
11313           pool, which is a FIFO queue. So there is no garantee that this buffer
11314           matches with the current processed surface. Evenmore, the VA driver
11315           might not use a FIFO queue. Therefore, it is no way to guess on the
11316           ordering.
11317           In short, acquire_buffer on the VA driver and on the buffer pool return
11318           none matching data, we have to manually attach the right GstFdMemory to
11319           the acquired GstBuffer. The right GstMemory is the one associated with
11320           the current surface.
11321           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11322
11323 2016-10-19 16:05:04 +0100  Julien Isorce <j.isorce@samsung.com>
11324
11325         * gst/vaapi/gstvaapivideobufferpool.c:
11326         * gst/vaapi/gstvaapivideomemory.c:
11327           vaapivideomemory: export surface if it is provided
11328           gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
11329           had to create that surface. Now it can also export an already provided
11330           surface. It is useful to export decoder's surfaces (from VA context).
11331           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11332
11333 2016-10-19 15:55:27 +0100  Julien Isorce <j.isorce@samsung.com>
11334
11335         * gst/vaapi/gstvaapivideobufferpool.h:
11336           vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
11337           Useful to let the pool know the current surface proxy when calling
11338           gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
11339           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11340
11341 2016-10-19 15:09:34 +0100  Julien Isorce <j.isorce@samsung.com>
11342
11343         * gst-libs/gst/vaapi/gstvaapisurface.c:
11344         * gst-libs/gst/vaapi/gstvaapisurface.h:
11345           libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
11346           These functions are useful when a dmabuf-based memory is instantiated in
11347           order to relate the generated buffer @proxy with the processed @surface.
11348           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11349
11350 2016-10-19 15:07:31 +0100  Julien Isorce <j.isorce@samsung.com>
11351
11352         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11353         * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11354         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
11355           libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
11356           This patch adds a GstMemory as a variable member of the buffer proxy,
11357           because we will need to associate the buffer proxy with the memory
11358           which exposes it. Later, we will know which memory, in the video buffer
11359           pool, is attached to the processed surface.
11360           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11361
11362 2016-10-19 15:33:41 +0100  Julien Isorce <j.isorce@samsung.com>
11363
11364         * gst/vaapi/gstvaapipostproc.c:
11365           vaapipostproc: don't GLTextureUpload if dmabuf
11366           Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11367           element can handle dmabuf-based buffers, avoiding its negotiation.
11368           Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
11369           feature if can dmabuf"
11370           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11371
11372 2016-12-16 14:12:30 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11373
11374         * gst/vaapi/gstvaapipluginbase.c:
11375           plugins: enable DMAbuf allocator to downstream
11376           If the negotiated caps are raw caps and downstream supports the
11377           EGL_EXT_image_dma_buf_import extension, then the created allocator
11378           is the DMAbuf, configured to downstream.
11379           At this moment, the only element which can push dmabuf-based buffers
11380           to downstream, is vaapipostproc.
11381
11382 2016-06-02 22:13:51 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11383
11384         * gst/vaapi/gstvaapipluginbase.c:
11385         * gst/vaapi/gstvaapipluginbase.h:
11386           plugins: check if negotiate dmabuf with downstream
11387           In order to enable, in the future, dmabuf-based buffers, the vaapi base
11388           plugin needs to check if downstream can import dmabuf buffers.
11389           This patch checks if downstream can handle dmabuf, by introspecting the
11390           shared GL context. If the GL context is EGL/GLES2 and have the extension
11391           EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
11392           Original-patch-by: Julien Isorce <j.isorce@samsung.com>
11393
11394 2016-10-19 15:37:04 +0100  Julien Isorce <j.isorce@samsung.com>
11395
11396         * gst/vaapi/gstvaapivideomemory.c:
11397           vaapivideomemory: release proxy's data if downstream
11398           The surface created for downstream is going to be filled by VAAPI
11399           elements. So, the driver needs write access on that surface.
11400           This patch releases the derived image held by the proxy, thus the
11401           surface is unmarked as busy.
11402           This is how it has to be done as discussed on libva mailing list.
11403           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11404
11405 2016-10-19 15:01:04 +0100  Julien Isorce <j.isorce@samsung.com>
11406
11407         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11408         * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11409           libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
11410           Adds an API to request the user's data release in the buffer proxy.
11411           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11412
11413 2016-10-19 15:27:03 +0100  Julien Isorce <j.isorce@samsung.com>
11414
11415         * gst/vaapi/gstvaapipluginbase.c:
11416         * gst/vaapi/gstvaapivideomemory.c:
11417         * gst/vaapi/gstvaapivideomemory.h:
11418           vaapivideomemory: add direction to dmabuf allocator
11419           Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
11420           we later could do different thing when the allocated memory is for
11421           upstream or dowstream, as required by VA-API.
11422           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11423
11424 2016-12-15 15:59:30 +0900  Hyunjun Ko <zzoon@igalia.com>
11425
11426         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
11427           libs: utils: return NULL if failed to get surface formats
11428           Thus, when generating the allowed caps, the element will throw a
11429           warning and it will use its caps template.
11430           This behavior might be a bug in the VA driver.
11431           https://bugzilla.gnome.org/show_bug.cgi?id=775490
11432
11433 2015-11-26 18:21:08 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11434
11435         * gst-libs/gst/vaapi/gstvaapidisplay.c:
11436           Revert "vaapidisplay: mark X11 display as compatible with EGL"
11437           This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
11438
11439 2017-02-01 14:32:45 +0900  Hyunjun Ko <zzoon@igalia.com>
11440
11441         * gst/vaapi/gstvaapipostproc.c:
11442           vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
11443           A value of width/height property should be set to out caps,
11444           if negotiation had been going properly.
11445           So we can use srcpad_info when making decision of scaling.
11446           https://bugzilla.gnome.org/show_bug.cgi?id=778010
11447
11448 2017-01-27 12:10:54 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11449
11450         * gst/vaapi/gstvaapidecode.c:
11451         * gst/vaapi/gstvaapiencode.c:
11452         * gst/vaapi/gstvaapipluginutil.c:
11453         * gst/vaapi/gstvaapipluginutil.h:
11454         * gst/vaapi/gstvaapipostproc.c:
11455         * gst/vaapi/gstvaapisink.c:
11456           plugins: handle GL params through context query
11457           If the element instantiated the GL display and context, they should
11458           handle them too through the context query.
11459           https://bugzilla.gnome.org/show_bug.cgi?id=777409
11460
11461 2017-01-26 12:02:56 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11462
11463         * gst/vaapi/gstvaapipluginbase.c:
11464         * gst/vaapi/gstvaapipluginbase.h:
11465         * gst/vaapi/gstvaapipluginutil.c:
11466           plugins: create a GL context on certain conditions
11467           If a GstVaapiDisplay is not found in the GStreamer context sharing,
11468           then VAAPI elements look for a local GstGLContext in gst context
11469           sharing mechanism ('gst.gl.local.context').
11470           If this GstGLContext not found either then, only the VAAPI decoders
11471           and the VAAPI post-processor, will try to instantiate a new
11472           GstGLContext.
11473           If a valid GstGLContext is received, then a new GstVaapiDisplay will
11474           be instantiated with the platform, API and windowing specified by the
11475           instantiated GstGLContext.
11476           Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
11477           https://bugzilla.gnome.org/show_bug.cgi?id=777409
11478
11479 2016-08-02 15:48:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11480
11481         * gst/vaapi/gstvaapivideocontext.c:
11482           vaapivideocontext: context type can be rejected
11483           Instead of calling g_return_val_if_fail() to check the context type, we
11484           should use a normal conditional, since it is possible that other context types
11485           can arrive and try to be assigned. Otherwise a critical log message is
11486           printed.
11487           This happens when we use playbin3 with vaapipostproc as video-filter.
11488           https://bugzilla.gnome.org/show_bug.cgi?id=777409
11489
11490 2017-01-20 19:57:52 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11491
11492         * gst/vaapi/gstvaapipostprocutil.c:
11493           vaapipostproc: use sink caps par if not requested
11494           Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
11495           is not already set.
11496           https://bugzilla.gnome.org/show_bug.cgi?id=777395
11497
11498 2017-01-20 19:00:24 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11499
11500         * gst/vaapi/gstvaapipostproc.c:
11501         * gst/vaapi/gstvaapipostprocutil.c:
11502           vaapipostproc: set interlace mode
11503           if the vaapipostproc is configured to not do deinterlacing, the
11504           interlace-mode in the src caps should be the same as the input caps.
11505           https://bugzilla.gnome.org/show_bug.cgi?id=777395
11506
11507 2017-01-20 16:10:32 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11508
11509         * gst/vaapi/gstvaapisink.c:
11510           vaapisink: fix gcc compiler warning
11511           warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
11512
11513 2017-01-12 19:54:41 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11514
11515         * gst/vaapi/gstvaapisink.c:
11516           vaapisink: don't use member variable outside lock
11517           Thus a race condition segfault is avoided.
11518           Original-patch-by: Matt Staples <staples255@gmail.com>
11519           https://bugzilla.gnome.org/show_bug.cgi?id=777146
11520
11521 2017-01-18 17:20:21 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11522
11523         * gst/vaapi/gstvaapipluginbase.c:
11524         * gst/vaapi/gstvaapipostproc.c:
11525           plugins: avoid log flood when activating pool
11526           Every time a new buffer is allocated, the pool is activated. This
11527           doesn't impact in performance since gst_buffer_pool_set_active()
11528           checks the current state of the pool. Nonetheless it logs out a
11529           message if the state is the same, and it floods the logging subsystem
11530           if it is enabled.
11531           To avoid this log flooding first the pool state is checked before
11532           changing it.
11533
11534 2017-01-13 21:26:15 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11535
11536         * gst-libs/gst/vaapi/gstvaapidecoder.c:
11537         * gst-libs/gst/vaapi/gstvaapidecoder.h:
11538         * gst/vaapi/gstvaapidecode.c:
11539         * gst/vaapi/gstvaapidecode.h:
11540           vaapidecode: update internal decoder sink caps
11541           When a new sink caps arrive the internal decoder state is updated
11542           and, if it is, request a downstream renegotiation.
11543           Previously, when new caps arrived the whole decoder where destroyed
11544           and recreated. Now, if the caps are compatible or has the same codec,
11545           the internal decoder is kept, but a downstream renegotiation is
11546           requested.
11547           https://bugzilla.gnome.org/show_bug.cgi?id=776979
11548
11549 2017-01-12 16:33:13 +0200  Sebastian Dröge <sebastian@centricular.com>
11550
11551         * configure.ac:
11552           Back to development
11553
11554 === release 1.11.1 ===
11555
11556 2017-01-12 16:27:12 +0200  Sebastian Dröge <sebastian@centricular.com>
11557
11558         * ChangeLog:
11559         * NEWS:
11560         * configure.ac:
11561         * gstreamer-vaapi.doap:
11562           Release 1.11.1
11563
11564 2017-01-12 12:49:55 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11565
11566         * gst-libs/gst/vaapi/gstvaapiutils.c:
11567           vaapi: bump ifdef to API 0.40.0 for log redirect
11568           vaSetInfoCallback() is not released yet. It is going to appear in
11569           VA-API 0.40.0
11570
11571 2017-01-12 13:45:29 +0200  Sebastian Dröge <sebastian@centricular.com>
11572
11573         * gst-libs/gst/vaapi/gstvaapiutils.c:
11574           vaapiutils: Fix compilation with latest and previous libva releases
11575           vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
11576           0.39.5 instead.
11577
11578 2017-01-11 16:04:24 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11579
11580         * gst-libs/gst/vaapi/gstvaapidisplay.c:
11581         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11582         * gst-libs/gst/vaapi/gstvaapiutils.c:
11583         * gst-libs/gst/vaapi/gstvaapiutils.h:
11584           libs: display: redirect logging at initialize
11585           Redirect libva's logs to GStreamer logging mechanism. This is
11586           particularly useful when VA is initialized, because it always logs
11587           out the drivers details.
11588           In order to achieve this a new helper function was added as a wrapper
11589           for the vaInitialize() function.
11590           https://bugzilla.gnome.org/show_bug.cgi?id=777115
11591
11592 2017-01-10 15:15:31 +0900  Hyunjun Ko <zzoon@igalia.com>
11593
11594         * gst/vaapi/gstvaapipluginbase.c:
11595           plugins: provide at least two buffers in sink pool
11596           Adds two buffers as the default value of minimum buffer.
11597           This would be used when creating and proposing vaapi bufferpool for
11598           sink pad, hence the upstream element will keep, at least, these two
11599           buffers.
11600           https://bugzilla.gnome.org/show_bug.cgi?id=775203
11601           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11602
11603 2017-01-10 13:49:27 +0900  Hyunjun Ko <zzoon@igalia.com>
11604
11605         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11606           libs: decoder: h264: don't update cloned attributes
11607           If the frame is a cloned picture, its PTS comes from its parent
11608           picture.  In addition, the base decoder doesn't set a valid PTS to
11609           the frame corresponding to the cloned picture.
11610           https://bugzilla.gnome.org/show_bug.cgi?id=774254
11611
11612 2017-01-09 19:25:24 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11613
11614         * gst/vaapi/gstvaapivideomemory.c:
11615           vaapivideomemory: check for display
11616           This patch fixes the check of display, rather than check for the
11617           meta, which it is known it exists.
11618
11619 2017-01-09 16:23:56 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11620
11621         * gst/vaapi/gstvaapivideomemory.c:
11622         * gst/vaapi/gstvaapivideomemory.h:
11623           vaapivideomemory: rename dmabuf allocator parameters
11624           Rename the parameters 'vip' and 'flags' to 'alloc_info' and
11625           'surface_alloc_flags' respectively. The purpose of this change is
11626           to auto-document those parameters.
11627           Also, aligned to this patch, the local 'alloc_info' variable was
11628           renamed as 'surface_info', because it stores the possible surface's
11629           video info, not the allocate one.
11630
11631 2017-01-09 16:18:32 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11632
11633         * gst/vaapi/gstvaapivideomemory.c:
11634         * gst/vaapi/gstvaapivideomemory.h:
11635           vaapivideomemory: rename vip to alloc_info parameter
11636           In order to auto-document the code, this patch renames the 'vip'
11637           parameter in the functions related to gst_vaapi_video_allocator_new ()
11638           to 'alloc_info', since it declares the allocation video info from
11639           the vaapi buffer pool.
11640
11641 2017-01-09 16:08:17 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11642
11643         * gst/vaapi/gstvaapivideomemory.c:
11644           vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
11645           Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
11646           the video format string.
11647
11648 2017-01-09 12:51:11 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11649
11650         * gst/vaapi/gstvaapivideomemory.c:
11651           vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
11652           gst_vaapi_surface_new_with_format() is a wrapper for
11653           gst_vaapi_surface_new_full (). In this case, the former is simpler
11654           than the first. This patch changes that.
11655
11656 2017-01-04 19:23:06 +0900  Hyunjun Ko <zzoon@igalia.com>
11657
11658         * gst/vaapi/gstvaapipostproc.c:
11659           vaapipostproc: notify if src pad caps changed
11660           If src pad caps have changed, it needs to notify it downstream. In
11661           addition, do not set passthrough if they have changed.
11662           Otherwise, transform sometimes starts processing before caps change.
11663           The passthrough value will be set in fixate later in this case.
11664           https://bugzilla.gnome.org/show_bug.cgi?id=775204
11665
11666 2016-12-14 15:51:01 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11667
11668         * gst/vaapi/gstvaapidecodebin.c:
11669           vaapidecodebin: capsfilter to optimize negotiation
11670           Add a capsfilter forcing the caps
11671           "video/x-raw(memory:VASurface), format=(string)NV12" between the
11672           queue and the vaapipostproc so no renegotiation is required.
11673           https://bugzilla.gnome.org/show_bug.cgi?id=776175
11674
11675 2016-12-21 17:38:07 +0900  Hyunjun Ko <zzoon@igalia.com>
11676
11677         * gst/vaapi/gstvaapivideomemory.c:
11678           vaapivideomemory: fail surface/image configuration
11679           To detect and handle errors during allocator_configure_surface_info()
11680           and allocator_conigure_image_info().
11681           https://bugzilla.gnome.org/show_bug.cgi?id=776084
11682           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11683
11684 2016-12-21 17:50:41 +0900  Hyunjun Ko <zzoon@igalia.com>
11685
11686         * gst/vaapi/gstvaapisink.c:
11687           vaapisink: ensures raw caps at start()
11688           Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
11689           race conditions at get_caps(), especially with multiple src elements.
11690           https://bugzilla.gnome.org/show_bug.cgi?id=776303
11691
11692 2016-12-09 14:51:52 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11693
11694         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11695           libs: surface: fix error handling code style
11696
11697 2016-12-09 16:14:14 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11698
11699         * gst/vaapi/gstvaapivideomemory.c:
11700           vaapivideomemory: add gst_video_info_update_from_surface()
11701           With this function is possible to refactor and remove duplicated code
11702           between dmabuf configuration and direct rendering/uploading
11703           configuration.
11704
11705 2016-12-09 15:51:32 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11706
11707         * gst/vaapi/gstvaapivideomemory.c:
11708           vaapivideomemory: no log object at initialization
11709           When an instance of GstVaapiVideoAllocator fails at initializing, the
11710           log message should not include the allocator's object, because it is
11711           going to be unrefed.
11712
11713 2016-12-09 17:56:02 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11714
11715         * gst/vaapi/gstvaapidecode.c:
11716           vaapidecode: lock stream when setting caps
11717
11718 2016-12-09 17:42:42 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11719
11720         * gst/vaapi/gstvaapidecode.c:
11721           Revert "vaapidecode: implement negotiate() vmethod"
11722           This reverts commit 3285121181295c544480fc6ba756845b16285d30.
11723           videodecode's negotiate() vmethod is also called when events arrive,
11724           but this would mean that the proper configuration of sink pad might
11725           not be complete, thus we should not update the src pad.
11726           Let's keep the old non-vmethod negotitate().
11727
11728 2016-12-07 16:52:35 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11729
11730         * gst/vaapi/gstvaapi.c:
11731           Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
11732           This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
11733
11734 2016-12-01 18:57:10 +0900  Hyunjun Ko <zzoon@igalia.com>
11735
11736         * gst/vaapi/gstvaapiencode.c:
11737         * gst/vaapi/gstvaapiencode.h:
11738           vaapiencode: get surface formats in get_caps()
11739           Query for the supported surface formats in config at get_caps() vmethod.
11740           https://bugzilla.gnome.org/show_bug.cgi?id=769266
11741           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11742
11743 2016-12-07 11:26:37 +0100  Hyunjun Ko <zzoon@igalia.com>
11744
11745         * gst-libs/gst/vaapi/gstvaapiencoder.c:
11746         * gst-libs/gst/vaapi/gstvaapiencoder.h:
11747           libs: encoder: add gst_vaapi_encoder_get_surface_formats()
11748           This method will return the valid surface formats in the current
11749           config. If the are no VAConfig it is created with the information
11750           available.
11751           https://bugzilla.gnome.org/show_bug.cgi?id=769266
11752           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11753
11754 2016-12-07 11:10:42 +0100  Hyunjun Ko <zzoon@igalia.com>
11755
11756         * gst-libs/gst/vaapi/gstvaapiencoder.c:
11757           libs: encoder: split set_context_info()
11758           Split set_context_info() adding init_context_info() which only
11759           initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
11760           required for VAConfig.
11761           https://bugzilla.gnome.org/show_bug.cgi?id=769266
11762           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11763
11764 2016-12-02 09:30:52 +0900  Hyunjun Ko <zzoon@igalia.com>
11765
11766         * gst-libs/gst/vaapi/gstvaapicontext.c:
11767           libs: context: skip VAContext if no frame size
11768           If GstVaapiContextInfo has just initial information, without frame's
11769           width and height, skip the creation of the VAContext, just keep the
11770           VAConfig.
11771           https://bugzilla.gnome.org/show_bug.cgi?id=769266
11772           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11773
11774 2016-12-02 09:28:07 +0900  Hyunjun Ko <zzoon@igalia.com>
11775
11776         * gst-libs/gst/vaapi/gstvaapicontext.c:
11777           libs: context: split context_create()
11778           Split the funcion context_create() into context_create() and
11779           config_create().
11780           Decoupling VAConfig and VAContext during context creation, we could
11781           query the VAConfig for the supported surface's formats without creating
11782           a VAContext.
11783           https://bugzilla.gnome.org/show_bug.cgi?id=769266
11784
11785 2016-12-06 17:33:42 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11786
11787         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11788           libs: drm: find render node in hybrid system
11789           Originally the drm backend only tried to open the first render node
11790           found. But in hybrid system this first render node might not support
11791           VA-API (propietary Nvidia driver, for example).
11792           This patch tries all the available nodes until a finding one with a
11793           VA-API supported driver.
11794           https://bugzilla.gnome.org/show_bug.cgi?id=774811
11795           Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
11796           Reza Razavi <reza@userful.com>
11797
11798 2016-11-14 17:45:55 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11799
11800         * gst/vaapi/gstvaapivideomemory.c:
11801           vaapivideomemory: refactor code for readability
11802           Added the inlined function allocator_configure_pools() moving out code
11803           from gst_vaapi_video_allocator_new() to make clear that it is a
11804           post-initalization of the object.
11805
11806 2016-11-14 17:40:37 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11807
11808         * gst/vaapi/gstvaapivideomemory.c:
11809           vaapivideomemory: log error if not VA image
11810           Log an error message if the test image for surface downloading
11811           cannot be allocated or mapped.
11812
11813 2016-11-14 17:33:41 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11814
11815         * gst/vaapi/gstvaapivideomemory.c:
11816           vaapivideomemory: remove unused macros
11817           These macros are not used. Let us remove them.
11818
11819 2016-11-11 19:45:45 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11820
11821         * gst/vaapi/gstvaapivideomemory.c:
11822         * gst/vaapi/gstvaapivideomemory.h:
11823           vaapivideomemory: rename video for allocation_info
11824           Since video_info stores the GstVideoInfo of the allocation caps,
11825           it is clear if we rename it as allocation_info, to distinguish it
11826           later from negotiation_info.
11827
11828 2016-10-19 15:27:03 +0100  Julien Isorce <j.isorce@samsung.com>
11829
11830         * gst/vaapi/gstvaapivideomemory.c:
11831         * gst/vaapi/gstvaapivideomemory.h:
11832           vaapivideomemory: add real GstVaapiDmaBufAllocator
11833           Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
11834           GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
11835           GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
11836           from GstDmaBufAllocator.
11837           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11838           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11839
11840 2016-10-19 15:30:09 +0100  Julien Isorce <j.isorce@samsung.com>
11841
11842         * gst/vaapi/gstvaapivideomemory.c:
11843           vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
11844           Add a helper function to initialize the gst_debug_vaapivideomemory,
11845           to use it either by the GstVaapiVideoAllocatorClass or
11846           GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
11847           Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
11848           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11849
11850 2016-11-29 15:14:32 +0900  Hyunjun Ko <zzoon@igalia.com>
11851
11852         * gst/vaapi/gstvaapiencode.c:
11853           vaapiencode: release internal encoder at stop()
11854           As the internal encoder is created at start(), let's release it at
11855           stop() vmethod, to be consistent.
11856           gst_vaapiencode_destroy() is called since it also resets the input and
11857           output states, which is something that the base class does internally
11858           after calling stop() vmethod.
11859           https://bugzilla.gnome.org/show_bug.cgi?id=769266
11860           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11861
11862 2016-12-03 08:20:56 +0100  Edward Hervey <bilboed@bilboed.com>
11863
11864         * common:
11865           Automatic update of common submodule
11866           From f49c55e to 39ac2f5
11867
11868 2016-11-29 14:59:02 +0900  Hyunjun Ko <zzoon@igalia.com>
11869
11870         * gst/vaapi/gstvaapiencode.c:
11871           vaapiencode: call ensure_encoder() at start()
11872           Currently, specific encoder is created during set_format(). This might
11873           lead to race condition when creating profiles with multiple encoders.
11874           This patch moves ensure_encoder() call to start() vmethod to ensure
11875           avoiding the race condition.
11876           https://bugzilla.gnome.org/show_bug.cgi?id=773546
11877
11878 2016-11-21 19:29:22 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11879
11880         * gst/vaapi/gstvaapidecodebin.c:
11881           vaapidecodebin: bring back dynamic configuration
11882           In commit ca0c3fd6 we remove the dynamic configuration if the bin
11883           because we assumed that the bin will be always static as it is
11884           registered.
11885           Nonetheless we were wrong, because it is possible to request, with a
11886           property, to avoid the use of the post-processor.
11887           Since we want to add a way to disable the post-processor through
11888           environment variables, this remove feature is required again.
11889           If the environment variable GST_VAAPI_DISABLE_VPP is defined the
11890           postprocessor inside of the vaapidecodebin is disabled, then
11891           vaapidecodebin is an alias of the old vaapidecode.
11892           https://bugzilla.gnome.org/show_bug.cgi?id=775041
11893
11894 2016-11-21 18:25:18 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11895
11896         * gst/vaapi/gstvaapidecode.c:
11897           vaapidecode: implement negotiate() vmethod
11898           Instead of decorating the negotiate() method, let us override it,
11899           so the stream is locked while called.
11900           https://bugzilla.gnome.org/show_bug.cgi?id=775040
11901
11902 2016-11-26 11:27:26 +0000  Tim-Philipp Müller <tim@centricular.com>
11903
11904         * .gitmodules:
11905           common: use https protocol for common submodule
11906           https://bugzilla.gnome.org/show_bug.cgi?id=775110
11907
11908 2016-11-24 21:17:54 +0100  Dominique Leuenberger <dimstar@opensuse.org>
11909
11910         * gst-libs/gst/vaapi/Makefile.am:
11911           build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
11912           In case libva-wayland has its headers not installed in default
11913           locations (like /usr/include), the build fails to include "wayland-client.h":
11914           CC       libgstvaapi_egl_la-gstvaapiutils_egl.lo
11915           In file included from gstvaapidisplay_wayland.h:27:0,
11916           from gstvaapidisplay_egl.c:35:
11917           /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
11918           #include <wayland-client.h>
11919           As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
11920           our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
11921           for libva-wayland.pc in configure and use this in other places as well. It is thus only
11922           correct and consequent, to do it also at this spot.
11923           https://bugzilla.gnome.org/show_bug.cgi?id=773946
11924
11925 2015-10-28 12:55:18 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11926
11927         * gst/vaapi/gstvaapivideocontext.c:
11928           vaapivideocontext: log a message if no bus
11929           Raise a warning if there is no bus when the element tries to post a
11930           message.
11931
11932 2015-10-28 12:57:14 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11933
11934         * gst/vaapi/gstvaapisink.c:
11935           vaapisink: create display at open()
11936           Instead of creating the VA display before setting the bus to the
11937           element, it is created when the element is opened.
11938           Basically, this commit is a revert of
11939           5e5d62cac79754ba60057fc2516135aad8d7de35
11940           That was done when the GStreamer's context sharing was not mature
11941           enough as now. There is no reason to keep this hack.
11942
11943 2016-11-04 18:04:36 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11944
11945         * gst/vaapi/gstvaapidecode.c:
11946           vaapidecode: don't add video crop meta
11947           Since the differentiation of negotiation caps and allocation caps,
11948           there is no need to add a video crop meta with the negotiation caps.
11949           Hence, removing it.
11950           https://bugzilla.gnome.org/show_bug.cgi?id=773948
11951
11952 2015-03-19 21:20:26 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11953
11954         * gst/vaapi/gstvaapivideobuffer.c:
11955         * gst/vaapi/gstvaapivideometa.c:
11956         * gst/vaapi/gstvaapivideometa.h:
11957           remove the video converter from vaapi buffer meta
11958           Since all the video converter were deprecated in gstreamer-1.2, we don't need
11959           to handle them anymore in the vaapi's buffer meta.
11960           This patch removes its usage and the buffer meta's API for that.
11961           https://bugzilla.gnome.org/show_bug.cgi?id=745728
11962
11963 2016-11-21 18:28:18 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11964
11965         * gst/vaapi/gstvaapipluginbase.c:
11966           plugins: destroy source pad allocator and pool
11967           First, deactivate source pad pool when the out caps change, and if so,
11968           destroy texture map, the source pad allocator and pool only if the
11969           new caps are different from the ones already set.
11970
11971 2016-11-21 19:17:07 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11972
11973         * gst/vaapi/gstvaapipluginbase.c:
11974           plugins: don't destroy sink pad allocator
11975           Don't destroy sink pad allocator at _set_caps() because it will be done at
11976           ensure_sinkpad_buffer_pool() if it is required.
11977
11978 2016-11-21 18:27:00 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11979
11980         * gst/vaapi/gstvaapipluginbase.c:
11981           plugins: first validate the out caps
11982           When calling _set_caps() first validate the out caps before doing
11983           anything else.
11984
11985 2016-11-21 18:42:02 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11986
11987         * gst/vaapi/gstvaapidecode.c:
11988           vaapidecode: negotiate after destroying allocator
11989           This is related with bug 758907 when no vaapipostproc is used (no
11990           vaapidecodebin). In order to negotiate downstream we need to destroy
11991           the source pad allocator, otherwise the same allocated buffers are
11992           used, failing the mapping.
11993
11994 2016-11-21 16:35:34 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11995
11996         * gst/vaapi/gstvaapivideomemory.c:
11997           vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
11998           Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
11999           GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
12000           was created.
12001           https://bugzilla.gnome.org/show_bug.cgi?id=774782
12002
12003 2016-11-21 12:51:25 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12004
12005         * gst/vaapi/gstvaapipluginbase.c:
12006           plugins: update the src pad allocator video info
12007           Update the size, stride and offset of the source pad allocator video
12008           info, so the pool could set the correct GstVideoMeta
12009           https://bugzilla.gnome.org/show_bug.cgi?id=774782
12010
12011 2016-11-21 12:36:27 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12012
12013         * gst/vaapi/gstvaapivideomemory.c:
12014           vaapivideomemory: add missing documentation
12015           https://bugzilla.gnome.org/show_bug.cgi?id=774782
12016
12017 2016-11-21 12:29:26 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12018
12019         * gst/vaapi/gstvaapipluginbase.c:
12020           plugins: use early return without goto
12021           https://bugzilla.gnome.org/show_bug.cgi?id=774782
12022
12023 2016-11-21 11:25:21 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12024
12025         * gst/vaapi/gstvaapipluginbase.c:
12026         * gst/vaapi/gstvaapivideomemory.c:
12027         * gst/vaapi/gstvaapivideomemory.h:
12028           plugins: add allocator to allocation query
12029           This patch adds the created allocator to the allocation query either
12030           in decide_allocation() and propose_allocation() vmehtods.
12031           With it, there's no need to set the modified allocator's size in the
12032           pool configuration.
12033           https://bugzilla.gnome.org/show_bug.cgi?id=774782
12034
12035 2016-10-19 15:15:01 +0100  Julien Isorce <j.isorce@samsung.com>
12036
12037         * gst/vaapi/gstvaapivideobufferpool.c:
12038           vaapivideobufferpool: set correct buffer size
12039           We should set the correct buffer size when we are configuring the pool,
12040           otherwise the buffer will be discarded when it returns to the pool.
12041           Indeed when the ref-count of a buffer reaches zero, its pool will queue
12042           it back (and ref it) if, and only if, the buffer size matches the
12043           configured buffer size on the pool.
12044           This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
12045           https://bugzilla.gnome.org/show_bug.cgi?id=774782
12046
12047 2016-11-10 13:26:31 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12048
12049         * gst/vaapi/gstvaapivideomemory.c:
12050           vaapivideomemory: check for memory allocator
12051           When calling gst_vaapi_video_memory_copy() the allocator of the memory
12052           to copy should be allocated by the vaapi allocator.
12053           This patch does this verification.
12054
12055 2016-11-10 13:25:30 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12056
12057         * gst/vaapi/gstvaapivideomemory.c:
12058           vaapivideomemory: code style fixes
12059           A cosmetic commit for enhance readability of the casts and method
12060           preconditions.
12061
12062 2016-11-09 19:49:22 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12063
12064         * gst/vaapi/gstvaapivideomemory.c:
12065           vaapivideomemory: unroll gst_vaapi_video_allocator_free()
12066           Instead of having a gst_vaapi_video_memory_free() that is only going to
12067           be called by gst_vaapi_video_allocator_free(), let's just remove the first
12068           and merged into the second.
12069
12070 2016-11-09 19:29:12 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12071
12072         * gst/vaapi/gstvaapivideomemory.c:
12073           vaapivideomemory: avoid virtual methods casting
12074           Use the expected virtual method signatures for readability.
12075
12076 2016-11-09 18:58:20 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12077
12078         * gst/vaapi/gstvaapivideomemory.c:
12079           vaapivideomemory: remove unimplemented methods
12080           Remove unimplemented method for allocator mem_share() and mem_is_span().
12081
12082 2016-11-09 18:54:47 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12083
12084         * gst/vaapi/gstvaapivideomemory.c:
12085           vaapivideomemory: fail if frame map can't get plane
12086           If map() vmethod in GstVideMeta cannot get the plane data, return false,
12087           thus the caller will not try to read invalid memory.
12088           https://bugzilla.gnome.org/show_bug.cgi?id=774213
12089
12090 2016-11-09 18:39:06 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12091
12092         * gst/vaapi/gstvaapivideomemory.c:
12093         * gst/vaapi/gstvaapivideomemory.h:
12094           vaapivideomemory: lock map and unmap operations
12095           In order to avoid race condition when two threads call map/unmap the same
12096           VA surface, this patch mutex these operations.
12097           https://bugzilla.gnome.org/show_bug.cgi?id=774213
12098
12099 2016-11-09 17:37:06 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12100
12101         * gst/vaapi/gstvaapivideomemory.c:
12102           vaapivideomemory: refactor vaapi memory unmapping
12103           There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
12104           gst_vaapi_video_memory_unmap() when unmapping.
12105           This patch refactors both methods adding the common function
12106           unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
12107           is correctly reset.
12108           Additionally, only when mapping flag has the WRITE bit, it set the image as
12109           current, which was done in gst_video_meta_map_vaapi_memory() but no in
12110           gst_vaapi_video_memory_map().
12111           In order to make this, the mapping flags were required, so instead of
12112           overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
12113           https://bugzilla.gnome.org/show_bug.cgi?id=774213
12114
12115 2016-11-09 13:54:23 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12116
12117         * gst/vaapi/gstvaapivideomemory.c:
12118           vaapivideomemory: refactor vaapi memory mapping
12119           There were duplicated code in gst_video_meta_map_vaapi_memory() and
12120           gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
12121           This patch refactors both methods adding the common function
12122           map_vaapi_memory().
12123           Additionally, only when flag has the READ bit it calls
12124           ensure_images_is_current(), which was done in
12125           gst_video_meta_map_vaapi_memory() but no in
12126           gst_vaapi_video_memory_map().
12127           https://bugzilla.gnome.org/show_bug.cgi?id=772151
12128
12129 2016-10-27 18:22:18 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12130
12131         * gst/vaapi/gstvaapidecode.c:
12132           vaapidecode: unref allowed_sinkpad_caps at close()
12133           The variable member allowed_sinkpad_caps is constructed querying the
12134           current VA display. Bearing that in mind, the variable shall be freed
12135           when the VA display changes or is removed.
12136           This patch moves the freeing of allowed_sinkpad_caps to close(), when
12137           the VA display is freed.
12138
12139 2016-11-11 11:40:09 +0900  Hyunjun Ko <zzoon@igalia.com>
12140
12141         * gst/vaapi/gstvaapisink.c:
12142           vaapisink: finish event thread at stop()
12143           The thread that handles window's events should be finished during
12144           pipeline's shutdown, otherwise it will remain alive during pipeline
12145           re-activation, leading to unexpected problems.
12146           This patch fixes failures of intensive_state_change scenario of
12147           gst-validate
12148           https://bugzilla.gnome.org/show_bug.cgi?id=774241
12149
12150 2016-11-08 09:35:00 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12151
12152         * gst/vaapi/gstvaapipostproc.c:
12153           vaapipostproc: enhance debug message
12154           "gst_pad_push" is not a good description of the event.
12155
12156 2016-11-08 10:05:32 +0900  Hyunjun Ko <zzoon@igalia.com>
12157
12158         * gst/vaapi/gstvaapipostproc.c:
12159           postproc: honor gst_pad_push() return value
12160           Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
12161           deadlock during seek.
12162           This patch returns the same error of gst_pad_push() and log out the
12163           return value.
12164           https://bugzilla.gnome.org/show_bug.cgi?id=774030
12165
12166 2016-11-04 16:26:18 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12167
12168         * gst/vaapi/gstvaapidecode.c:
12169           vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
12170           In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
12171           compiled with out EGL/GLX support: it shall not support
12172           GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
12173           This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
12174           allowed src caps for vaapedecode if EGL/GLX.
12175
12176 2016-11-04 12:55:23 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12177
12178         * gst/vaapi/gstvaapivideomemory.c:
12179           vaapivideomemory: increment map counter only if succeeded
12180           Previously the frame map counter increased independently if the map succeeded
12181           or not. This leaded to critical messages and crashes if the frame was unable
12182           to be mapped, but the counter increased.
12183           This patch increases the map counter only if the map operation occurred.
12184           https://bugzilla.gnome.org/show_bug.cgi?id=773939
12185
12186 2016-11-03 17:30:46 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12187
12188         * gst/vaapi/gstvaapipluginbase.c:
12189           plugins: set negotiation caps in src allocator
12190           When the allocator is created, it stores the allocation caps. But sometimes
12191           the "allocation caps" may be different from the "negotiation caps".
12192           In this case, the allocator should store the negotiation caps since they
12193           are the ones used for frame mapping with GstVideoMeta.
12194           When vaapispostproc is used, this is not a problem since the element is assume
12195           to resize. But when using a vaapi decoder only, with a software renderer, it
12196           fails in this case.
12197           https://bugzilla.gnome.org/show_bug.cgi?id=773323
12198
12199 2016-07-19 16:40:10 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12200
12201         * gst/vaapi/gstvaapidecode.c:
12202         * gst/vaapi/gstvaapidecode.h:
12203           vaapidecode: generate source pad caps
12204           Just as vaapipostproc, VA decoder's context can be queried to get the possible
12205           raw formats, so, the src caps can negotiate the exact caps that the context
12206           supports.
12207
12208 2016-02-25 18:57:30 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12209
12210         * gst-libs/gst/vaapi/gstvaapidecoder.c:
12211         * gst-libs/gst/vaapi/gstvaapidecoder.h:
12212           libs: decoder: add _get_surface_formats()
12213           This function exposes the available formats of the surfaces in the the current
12214           context to the plugins.
12215
12216 2016-02-18 19:32:58 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12217
12218         * gst-libs/gst/vaapi/gstvaapicontext.c:
12219         * gst-libs/gst/vaapi/gstvaapicontext.h:
12220           libs: context: ensure context formats
12221           This patch ensures to get the formats, as filter does, available in the
12222           decoder / encoder context.
12223           The context fills up the array as soon it is created, otherwise the pipeline
12224           could get stalled (perhaps this is a bug in my HSW backend).
12225           https://bugzilla.gnome.org/show_bug.cgi?id=752958
12226
12227 2016-02-18 19:20:10 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12228
12229         * gst-libs/gst/vaapi/gstvaapifilter.c:
12230         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
12231         * gst-libs/gst/vaapi/gstvaapiutils_core.h:
12232           libs: move get_surface_formats to utils_core
12233           The query of all the supported formats for a VA config were only used by the
12234           postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
12235           negotiate a suitable raw format with downstream, we need to query these
12236           formats against the decoder's config.
12237           This patch is the first step: moves the code in filter's ensure_image() to a
12238           generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
12239           shared later by the decoder.
12240           https://bugzilla.gnome.org/show_bug.cgi?id=752958
12241
12242 2016-07-19 18:56:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12243
12244         * gst/vaapi/gstvaapipluginbase.c:
12245           plugins: remove set_sinkpad_dmabuf_allocator()
12246           Since when the sink pad allocator is created, it is decided if the required
12247           one is vaapi allocator or dmabuf allocator, there is no need to force its set
12248           again.
12249
12250 2016-10-27 11:25:55 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12251
12252         * gst/vaapi/gstvaapipluginbase.c:
12253           plugins: ensure display when getting raw caps
12254           When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
12255           meanwhile it is transforming caps. The problem is that stop() calls
12256           gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
12257           the va display is used in tranform_caps() when it is extracting the possible
12258           format conversions. This display disappearing generates warning messages.
12259           This patch holds a local reference of va display at ensure_allowed_raw_caps()
12260           hence it doesn't go away meanwhile it is used, even if the
12261           gst_vaapi_plugin_base_close() is called in other thread.
12262           https://bugzilla.gnome.org/show_bug.cgi?id=773593
12263
12264 2016-11-03 12:54:23 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12265
12266         * gst/vaapi/gstvaapiencode_h264.c:
12267         * gst/vaapi/gstvaapiencode_h265.c:
12268           plugins: fix code style for errors
12269
12270 2016-10-19 19:04:20 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12271
12272         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
12273         * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
12274         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
12275         * gst-libs/gst/vaapi/gstvaapicontext.c:
12276         * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
12277         * gst-libs/gst/vaapi/gstvaapidecoder.c:
12278         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
12279         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12280         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12281         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
12282         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
12283         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12284         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
12285         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
12286         * gst-libs/gst/vaapi/gstvaapidisplay.c:
12287         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
12288         * gst-libs/gst/vaapi/gstvaapiencoder.c:
12289         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12290         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12291         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
12292         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12293         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12294         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12295         * gst-libs/gst/vaapi/gstvaapifilter.c:
12296         * gst-libs/gst/vaapi/gstvaapiimage.c:
12297         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
12298         * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
12299         * gst-libs/gst/vaapi/gstvaapipixmap.c:
12300         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
12301         * gst-libs/gst/vaapi/gstvaapisurface.c:
12302         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
12303         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12304         * gst-libs/gst/vaapi/gstvaapitexture.c:
12305         * gst-libs/gst/vaapi/gstvaapiutils.c:
12306         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12307         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
12308         * gst-libs/gst/vaapi/gstvaapiwindow.c:
12309         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12310         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12311           libs: fix code style for errors
12312
12313 2016-11-03 09:31:17 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12314
12315         * gst/vaapi/gstvaapipluginbase.c:
12316         * gst/vaapi/gstvaapivideocontext.c:
12317           plugins: update GstGL deprecated symbol
12318           GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
12319
12320 2016-10-21 11:48:54 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12321
12322         * gst/vaapi/gstvaapipluginbase.c:
12323           plugins: direct render when raw video
12324           Enable the direct rendering with linear surfaces if the negotiated src caps
12325           are video/x-raw without features.
12326           Pass also the caps, since they are needed to know the requested caps features.
12327
12328 2016-10-24 20:09:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12329
12330         * gst/vaapi/gstvaapipluginbase.c:
12331           plugins: move src allocator error to instantiator
12332           Just as we did in ensure_sinkpad_allocator(), let's move the error message
12333           into the ensure_srcpad_allocator() from the caller,
12334           gst_vaapi_plugin_base_decide_allocation()
12335
12336 2016-10-20 19:37:01 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12337
12338         * gst/vaapi/gstvaapipluginbase.c:
12339           plugins: enable direct upload if raw video
12340           Enable the direct upload with linear surfaces if the negotiated sink caps are
12341           video/x-raw without features.
12342
12343 2016-10-21 11:21:04 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12344
12345         * gst/vaapi/gstvaapipluginutil.c:
12346         * gst/vaapi/gstvaapipluginutil.h:
12347           pluginutil: add gst_caps_is_video_raw()
12348
12349 2016-10-24 19:25:27 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12350
12351         * gst/vaapi/gstvaapipluginbase.c:
12352           plugins: receive caps in ensure_sinkpad_allocator()
12353           Instead of receiving the GstVideoInfo structure as parameter, get the original
12354           GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
12355           which allocator instantiate.
12356
12357 2016-10-20 19:31:58 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12358
12359         * gst/vaapi/gstvaapivideomemory.c:
12360           vaapivideomemory: destroy derived image at unmap
12361           If the allocator was configured to use direct upload or rendering, the
12362           generated derived image created at mapping needs to be destroyed after
12363           unmapping, because, in order to process the surface, it should not be marked
12364           as "busy" by the driver.
12365
12366 2016-10-21 11:57:55 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12367
12368         * gst/vaapi/gstvaapivideomemory.c:
12369           vaapivideomemory: enhance logs for direct modes
12370           Print, conditionally, only the enabled direct mode.
12371
12372 2016-10-20 17:02:49 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12373
12374         * gst/vaapi/gstvaapivideomemory.c:
12375         * gst/vaapi/gstvaapivideomemory.h:
12376           vaapivideomemory: add direct upload flag
12377           Adds the direct-upload flag in the GstVaapiVideoAllocator and
12378           GstVaapiVideoMemory.
12379           It still doesn't apply any functional change.
12380
12381 2016-10-20 16:49:22 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12382
12383         * gst/vaapi/gstvaapipluginbase.c:
12384         * gst/vaapi/gstvaapivideomemory.c:
12385         * gst/vaapi/gstvaapivideomemory.h:
12386           vaapivideomemory: set direct rendering at run-time
12387           The way to experiment with the direct rendering is through and internal
12388           compiler pre-processor flag.
12389           The current change set enables a way to specified at run-time, as a flag
12390           passed to the allocator at instanciation time.
12391
12392 2016-10-20 18:09:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12393
12394         * gst/vaapi/gstvaapivideomemory.c:
12395           vaapivideomemory: log in perf category when copy
12396           Log in performance category when the derive image handling fails, falling back
12397           to memory copy.
12398
12399 2016-10-20 16:31:21 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12400
12401         * gst/vaapi/gstvaapivideomemory.c:
12402           vaapivideomemory: error log is derive image fails
12403           Instead of a silently failure of the derive image, this patch log an error
12404           message according to the failure.
12405
12406 2016-10-20 12:52:18 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12407
12408         * gst/vaapi/gstvaapivideomemory.c:
12409           vaapivideomemory: store surface alloc flags in qdata
12410           For sake of consistency, we should add the requested surface allocation flags
12411           to the object's qdata structure.
12412
12413 2016-10-20 12:22:06 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12414
12415         * gst/vaapi/gstvaapivideomemory.c:
12416           vaapivideomemory: category init when object define
12417           Move the Gstreamer debug category initialize to the GObject definition.
12418
12419 2016-11-03 08:31:16 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12420
12421         * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12422           libs: vaapitexturemap: trivial code-style fix
12423
12424 2016-11-02 20:01:09 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12425
12426         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12427           libs: display: egl: avoid recreate native display
12428           Instead of passing the native descriptor of the display, just pass the received
12429           GstVaapiDisplay and reuse it.
12430
12431 2016-11-02 15:38:52 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12432
12433         * gst/vaapi/gstvaapipluginbase.c:
12434           plugins: log the GstVaapiDisplay name
12435           Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
12436           name. Log it instead of the memory address.
12437
12438 2016-11-02 18:37:00 +0900  Hyunjun Ko <zzoon@igalia.com>
12439
12440         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
12441           libs: window: egl: pass native va display
12442           When creating a GstVaapiWindowEGL, it also creates native window by its own
12443           native display. It should pass the native display, either X11 or Wayland.
12444           https://bugzilla.gnome.org/show_bug.cgi?id=768266
12445
12446 2016-10-13 12:53:17 +0900  Hyunjun Ko <zzoon@igalia.com>
12447
12448         * gst-libs/gst/vaapi/gstvaapidebug.h:
12449         * gst-libs/gst/vaapi/gstvaapidisplay.c:
12450         * gst-libs/gst/vaapi/gstvaapidisplay.h:
12451         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12452         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
12453         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
12454         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12455         * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
12456         * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12457         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12458         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
12459         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12460         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12461         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12462         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
12463         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
12464         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12465         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
12466         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
12467         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
12468         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12469         * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
12470         * gst/vaapi/gstvaapivideocontext.c:
12471           libs: display: GstVaapiDisplay as GstObject descendant
12472           This patch is to change the inheritance of GstVaapiDisplay to GstObject,
12473           instead of GstVaapiMiniObject. In this way we can use all the available
12474           infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
12475           In addition, a new debug category for GstVaapiDisplay is created to make it
12476           easier to trace debug messages. It is named "vaapidisplay" and it transverse
12477           all the VA display backends (DRM, GLX, EGL, Wayland, ...)
12478           This patch is a step forward to expose GstVaapiDisplay for users in a future
12479           library.
12480           https://bugzilla.gnome.org/show_bug.cgi?id=768266
12481           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12482
12483 === release 1.11.0 ===
12484
12485 2016-11-01 18:54:54 +0200  Sebastian Dröge <sebastian@centricular.com>
12486
12487         * configure.ac:
12488           Back to development
12489
12490 === release 1.10.0 ===
12491
12492 2016-11-01 18:19:32 +0200  Sebastian Dröge <sebastian@centricular.com>
12493
12494         * ChangeLog:
12495         * NEWS:
12496         * configure.ac:
12497         * gstreamer-vaapi.doap:
12498           Release 1.10.0
12499
12500 2016-10-27 17:13:48 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12501
12502         * gst/vaapi/gstvaapidecodebin.c:
12503           vaapidecodebin: resurrect disable-vpp property
12504           https://bugzilla.gnome.org/show_bug.cgi?id=773589
12505
12506 2016-10-27 16:32:23 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12507
12508         * gst/vaapi/gstvaapidecodebin.c:
12509           vaapidecodebin: name the internal queue
12510           https://bugzilla.gnome.org/show_bug.cgi?id=773589
12511
12512 2016-10-27 16:27:45 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12513
12514         * gst/vaapi/gstvaapidecodebin.c:
12515         * gst/vaapi/gstvaapidecodebin.h:
12516           vaapidecodebin: remove unused variables
12517           Since vaapipostproc is only registered if the driver supports it, all the
12518           support for dynamic loading were removed. Though some leftovers remained.
12519           https://bugzilla.gnome.org/show_bug.cgi?id=773589
12520
12521 2016-10-27 12:53:54 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12522
12523         * docs/plugins/Makefile.am:
12524         * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12525         * docs/plugins/running.xml:
12526           docs: document environment variables
12527           https://bugzilla.gnome.org/show_bug.cgi?id=773544
12528
12529 2016-10-27 12:31:49 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12530
12531         * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12532         * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
12533         * gst/vaapi/Makefile.am:
12534         * gst/vaapi/gstvaapidecode.c:
12535         * gst/vaapi/gstvaapidecodebin.c:
12536         * gst/vaapi/gstvaapidecodedoc.c:
12537           docs: replace vaapidecode with each codec
12538           In the spirit of the codec split, this patch removes the documentation of
12539           vaapidecode and adds a page per each possible decoder.
12540           Nonetheless, only those available in the compilation system are going to be
12541           instrospected, because the rest are not registered.
12542
12543 2016-10-27 11:06:06 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12544
12545         * gst/vaapi/gstvaapipluginutil.c:
12546         * gst/vaapi/gstvaapivideobuffer.c:
12547         * gst/vaapi/gstvaapivideometa.c:
12548           docs: add missing long descriptions
12549
12550 2016-10-25 14:32:44 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12551
12552         * gst/vaapi/gstvaapipostproc.c:
12553           vaapipostproc: use GST_*_OBJECT when possible
12554           Since we can have several vaapipostproc operating in a pipeline, it is useful
12555           to know which one is generating the logging message.
12556           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12557
12558 2016-07-19 17:00:23 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12559
12560         * gst/vaapi/gstvaapidecode.c:
12561         * gst/vaapi/gstvaapidecode.h:
12562           vaapidecode: rename member to allowed_sinkpad_caps
12563           vaapidecode has a member named allowed_caps, but this name is not enough
12564           explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
12565           No functional changes were included.
12566           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12567
12568 2016-10-20 18:12:04 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12569
12570         * gst/vaapi/gstvaapiencode_h264.c:
12571         * gst/vaapi/gstvaapiencode_h265.c:
12572         * gst/vaapi/gstvaapisink.c:
12573         * gst/vaapi/gstvaapivideomemory.c:
12574         * gst/vaapi/gstvaapivideometa.c:
12575         * gst/vaapi/gstvaapivideometa_texture.c:
12576           plugins: fix code style for errors
12577           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12578
12579 2016-10-20 17:01:57 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12580
12581         * gst/vaapi/gstvaapivideomemory.c:
12582           vaapivideomemory: comment style
12583           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12584
12585 2016-10-20 11:19:50 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12586
12587         * gst/vaapi/gstvaapivideomemory.c:
12588         * gst/vaapi/gstvaapivideomemory.h:
12589           vaapivideomemory: rename input parameter
12590           In order to clarify the use of flag as input parameter, it is renamed to
12591           surface_alloc_flag, since it is used when creating a VA surface with certain
12592           properties.
12593           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12594
12595 2016-10-25 19:22:03 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12596
12597         * gst/vaapi/gstvaapidecode.c:
12598           vaapidecode: rename element description
12599           So encoders and decoders have similar descriptions.
12600           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12601
12602 2016-08-02 11:32:19 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12603
12604         * gst/vaapi/gstvaapiencode_h264.c:
12605         * gst/vaapi/gstvaapiencode_h265.c:
12606           vaapiencode: h264, h265: rename codec name
12607           So encoder and decoders have the same codec name.
12608           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12609
12610 2016-07-29 15:17:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12611
12612         * gst/vaapi/gstvaapipluginbase.c:
12613           plugins: simplify code
12614           Merge two lines of variable declarations.
12615           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12616
12617 2016-10-07 18:46:22 +0900  Hyunjun Ko <zzoon@igalia.com>
12618
12619         * gst-libs/gst/vaapi/gstvaapidecoder.c:
12620         * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
12621         * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12622         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12623           libs: minor correction for logical consistency
12624           GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
12625           use its methods, even though it doesn't change functionality.
12626           GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
12627           GstVaapiObject, hence its methods shall be used.
12628           https://bugzilla.gnome.org/show_bug.cgi?id=772554
12629
12630 2016-10-19 15:39:54 +0100  Julien Isorce <j.isorce@samsung.com>
12631
12632         * gst/vaapi/gstvaapivideomemory.c:
12633           vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
12634           In short GstFdMemory is configured to call close when using
12635           GstDmabufMemory.
12636           https://bugzilla.gnome.org/show_bug.cgi?id=755072
12637
12638 2016-09-02 16:42:45 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12639
12640         * configure.ac:
12641         * gst-libs/gst/vaapi/Makefile.am:
12642           build: clean up the dlopen usage
12643
12644 2016-10-08 14:33:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12645
12646         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12647         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12648           encoder: h264,h265: fix regression in offset count
12649           In commit dc35dafa a bug was introduced because I assumed that
12650           GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
12651           https://bugzilla.gnome.org/show_bug.cgi?id=772259
12652
12653 2016-10-18 17:02:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12654
12655         * README:
12656           docs: update README
12657
12658 2016-09-27 17:29:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12659
12660         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12661           libs: display: egl: remove unused header include
12662           The header gmodule.h is not used since the library dynamic loading for EGL
12663           display was removed.
12664           https://bugzilla.gnome.org/show_bug.cgi?id=772599
12665
12666 === release 1.9.90 ===
12667
12668 2016-09-30 13:05:20 +0300  Sebastian Dröge <sebastian@centricular.com>
12669
12670         * ChangeLog:
12671         * NEWS:
12672         * common:
12673         * configure.ac:
12674         * gstreamer-vaapi.doap:
12675           Release 1.9.90
12676
12677 2016-03-04 16:35:11 +0900  Vineeth TM <vineeth.tm@samsung.com>
12678
12679         * gst/vaapi/gstvaapidecode.c:
12680         * gst/vaapi/gstvaapidecodebin.c:
12681         * gst/vaapi/gstvaapiencode_h264.c:
12682         * gst/vaapi/gstvaapiencode_h265.c:
12683         * gst/vaapi/gstvaapiencode_jpeg.c:
12684         * gst/vaapi/gstvaapiencode_mpeg2.c:
12685         * gst/vaapi/gstvaapiencode_vp8.c:
12686         * gst/vaapi/gstvaapipostproc.c:
12687         * gst/vaapi/gstvaapisink.c:
12688           vaapi: use new gst_element_class_add_static_pad_template()
12689           https://bugzilla.gnome.org/show_bug.cgi?id=763083
12690           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12691
12692 2016-09-22 16:34:48 +0900  Hyunjun Ko <zzoon@igalia.com>
12693
12694         * gst/vaapi/gstvaapipluginbase.c:
12695           plugins: reset textures at negotiation/shutdown
12696           When caps reconfiguration is called, the new downstream frame size might be
12697           different. Thus, if the downstream caps change,the display's texture map is
12698           reset.
12699           In addition, during pipeline shutdown, textures in texture map have to be
12700           released, since each one have a reference to the GstVaapiDisplay object, which
12701           is a dangerous circular reference.
12702           https://bugzilla.gnome.org/show_bug.cgi?id=769293
12703           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12704
12705 2016-09-22 16:34:38 +0900  Hyunjun Ko <zzoon@igalia.com>
12706
12707         * gst-libs/gst/vaapi/gstvaapidisplay.c:
12708         * gst-libs/gst/vaapi/gstvaapidisplay.h:
12709         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12710         * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12711         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12712         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12713         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12714         * gst/vaapi/gstvaapivideometa_texture.c:
12715           libs: display{egl,glx}: cache GstVaapiTextures
12716           instances when created and reuse
12717           This patch improves performance when glimagesink uploads a GL texture.
12718           It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
12719           instance of GstVaapiTextureMap, so our internal texture structure can be found
12720           by matching the GL texture id for each frame upload process, avoiding the
12721           internal texture structure creation and its following destruction.
12722           https://bugzilla.gnome.org/show_bug.cgi?id=769293
12723           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12724
12725 2016-09-22 16:33:06 +0900  Hyunjun Ko <zzoon@igalia.com>
12726
12727         * gst-libs/gst/vaapi/Makefile.am:
12728         * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12729         * gst-libs/gst/vaapi/gstvaapitexturemap.h:
12730           libs: vaapitexturemap: implement GstVaapiTextureMap
12731           Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
12732           reused. Internally it is a hash table.
12733           Note that it is GstObject based rather than GstVaapiObject, as part of the future
12734           converstion to GstObject of most of the code.
12735           https://bugzilla.gnome.org/show_bug.cgi?id=769293
12736           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12737
12738 2016-09-21 09:55:53 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12739
12740         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12741           encoder: vp8: Increase the allocation size for coded buffer
12742           We are not getting enough compression for some streams and
12743           encoded frame end up with more size than allocated.
12744           Assuming a compression ratio of 4, which should be good enough
12745           for holding the frames.
12746           https://bugzilla.gnome.org/show_bug.cgi?id=771528
12747
12748 2016-09-21 09:52:21 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12749
12750         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12751           encoder: vp9: Fix refresh frame flag setting
12752           While doing the mode-1 referece picture selection,
12753           the circular buffer logic was not correctly setting the
12754           refresh frame flags as per VP9 spec.
12755           Make sure refresh_flag[0] get updated correclty after
12756           each cycle of GST_VP9_REF_FRAMES.
12757           https://bugzilla.gnome.org/show_bug.cgi?id=771507
12758
12759 2016-09-14 18:42:09 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12760
12761         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12762           vaapidecode: codec_data minimal size is 7
12763           When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
12764           stream, not in the codec_data, so the size of codec_data might be 7.
12765           This patch reduces the minimal size of the codec_data buffer from 8 to 7.
12766           https://bugzilla.gnome.org/show_bug.cgi?id=771441
12767
12768 2016-09-14 16:29:01 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12769
12770         * gst/vaapi/gstvaapidecode.c:
12771           vaapidecode: reset decoder hard when set_format()
12772           set_format() is called by upstream when the stream capabilites has changed.
12773           Before, if the new stream is compatible with the old one the VA decoder was
12774           not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
12775           when the upstreamer parsers gets more details of the stream, such as the
12776           framerate. Hence, when the src caps are negotiates, the further sink caps
12777           updates are ignored.
12778           This patch forces the VA decoder destroying and recreation when set_format()
12779           is called.
12780           https://bugzilla.gnome.org/show_bug.cgi?id=770921
12781
12782 2016-09-14 11:31:39 +0200  Sebastian Dröge <sebastian@centricular.com>
12783
12784         * configure.ac:
12785           configure: Depend on gstreamer 1.9.2.1
12786
12787 2016-09-09 12:03:37 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12788
12789         * gst/vaapi/gstvaapivideomemory.c:
12790           Revert "vaapivideomemory: load VA Image when mapping to write"
12791           This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
12792
12793 2016-09-10 20:52:21 +1000  Jan Schmidt <jan@centricular.com>
12794
12795         * common:
12796           Automatic update of common submodule
12797           From b18d820 to f980fd9
12798
12799 2016-09-10 09:58:25 +1000  Jan Schmidt <jan@centricular.com>
12800
12801         * common:
12802           Automatic update of common submodule
12803           From f49c55e to b18d820
12804
12805 2016-09-08 16:16:09 +0900  Hyunjun Ko <zzoon@igalia.com>
12806
12807         * gst/vaapi/gstvaapipluginbase.c:
12808           plugins: set allocator's image size to sinkpad bufferpool
12809           Otherwise the buffer is always ditched by the bufferpool, losing performance.
12810           https://bugzilla.gnome.org/show_bug.cgi?id=771035
12811
12812 2016-09-07 17:34:08 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12813
12814         * gst-libs/gst/vaapi/gstvaapisurface.c:
12815           libs: surface: ensure composite overlay is not bigger
12816           Ensure the composition overlay rectangle (subtitles) is not bigger than
12817           the surface where it is going to be composited and rendered.
12818           https://bugzilla.gnome.org/show_bug.cgi?id=766978
12819
12820 2016-09-07 17:51:23 +0900  Hyunjun Ko <zzoon@igalia.com>
12821
12822         * gst/vaapi/gstvaapivideomemory.c:
12823           vaapivideomemory: load VA Image when mapping to write
12824           When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
12825           ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
12826           in this case.
12827           https://bugzilla.gnome.org/show_bug.cgi?id=766978
12828
12829 2016-09-06 12:27:45 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12830
12831         * gst/vaapi/gstvaapidecode.c:
12832           vaapidecode: merge vc1 and wmv3 elements
12833           This patch merges vaapivc1dec and vaapiwmv3dec into a single
12834           vaapivc1dec. Also, removed the WMVA format, since it is not
12835           supported by libva.
12836           https://bugzilla.gnome.org/show_bug.cgi?id=734093
12837
12838 2016-09-06 11:19:05 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12839
12840         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12841           decoder: vc1: fails only on advanced profile
12842           In commit 2eb4394 the frame coding mode was verified for progressive
12843           regardless the profile. But the FCM is only valid in the advanced
12844           profile. This patch checks for the advanced profile before verifying FCM for
12845           progressive.
12846           https://bugzilla.gnome.org/show_bug.cgi?id=769250
12847
12848 2016-09-01 12:39:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12849
12850         * gst/vaapi/gstvaapi.c:
12851           vaapi: DISPLAY envvar as dependency
12852           In a multiple video cards system, a X11 environment may have different VA
12853           capabilities. This patch tracks the DISPLAY environment variable to
12854           invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
12855           https://bugzilla.gnome.org/show_bug.cgi?id=770357
12856
12857 2016-08-26 14:55:17 -0700  Scott D Phillips <scott.d.phillips@intel.com>
12858
12859         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12860           decoder: vc1: Fail only on actual interlaced frames
12861           In the earlier patch:
12862           f31d9f3 decoder: vc1: Print error on interlaced content
12863           Decoding would error out if the interlace flag was set in the
12864           sequence bdu. This isn't quite right because a video can have this
12865           flag set and yet not have any interlaced pictures.
12866           Here instead we error out when either parsing a field bdu or
12867           decoding a frame bdu which has fcm set to anything other than
12868           progressive.
12869           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
12870           https://bugzilla.gnome.org/show_bug.cgi?id=769250
12871
12872 2016-09-01 12:34:48 +0300  Sebastian Dröge <sebastian@centricular.com>
12873
12874         * configure.ac:
12875           Back to development
12876
12877 === release 1.9.2 ===
12878
12879 2016-09-01 12:34:38 +0300  Sebastian Dröge <sebastian@centricular.com>
12880
12881         * ChangeLog:
12882         * NEWS:
12883         * configure.ac:
12884         * gstreamer-vaapi.doap:
12885           Release 1.9.2
12886
12887 2016-08-16 11:58:38 +0300  Scott D Phillips <scott.d.phillips@intel.com>
12888
12889         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12890           decoder: vc1: Print error on interlaced content
12891           Interlaced video is as yet unsupported in the vc1 element. Print
12892           an error to make that more obvious.
12893           https://bugzilla.gnome.org/show_bug.cgi?id=769250
12894
12895 2016-08-10 13:29:45 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12896
12897         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12898           encoder: h264: fix C90 mixed declarations and code
12899           Commit 4259d1a introduced this compilation error. This patch fixes it.
12900
12901 2016-07-21 17:38:40 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12902
12903         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12904         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12905         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12906         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12907           encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
12908           Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
12909           to avoid overflows, underflows and loss of precision.
12910           https://bugzilla.gnome.org/show_bug.cgi?id=768458
12911
12912 2016-07-05 20:07:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12913
12914         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12915         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12916           vaapiencode: h264,h265: validate fps numerator
12917           Validate that fps numerator is non-zero so it can be used to calculate
12918           the duration of the B frame.
12919           Also it gst_util_uint64_scale() is used instead of normal arithmetic in
12920           order to aviod overflows, underflows and loss of precision.
12921           https://bugzilla.gnome.org/show_bug.cgi?id=768458
12922
12923 2016-08-06 12:54:17 +0100  Tim-Philipp Müller <tim@centricular.com>
12924
12925         * gst/vaapi/gstvaapi.c:
12926           encoders: demote to RANK_NONE since not fit for autoplugging yet
12927           Encoders claim to support a whole bunch of input formats but then
12928           just error out if the format is not actually supported, even if
12929           there's a converter in front. This means they're not fit for
12930           autoplugging in encodebin or camerabin yet and therefore should
12931           not have a rank. People can still use them in custom pipelines.
12932           https://bugzilla.gnome.org/show_bug.cgi?id=769266
12933
12934 2016-07-19 19:24:08 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12935
12936         * gst/vaapi/gstvaapipluginbase.c:
12937           plugins: check dmabuf-import for sink pad allocator
12938           Check earlier if upstream video source has activated the dmabuf-import
12939           io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
12940           new allocator.
12941
12942 2016-07-19 20:02:54 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12943
12944         * gst/vaapi/gstvaapipluginbase.c:
12945           plugins: reset allocators if video info changed
12946           If the frame size or format, change, the allocators are reset, so a new ones
12947           can be created with the new video info.
12948
12949 2016-07-19 19:27:27 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12950
12951         * gst/vaapi/gstvaapipluginbase.c:
12952           plugins: remove sink pad allocator if caps change
12953           If the negotiated sinkpad caps change, destroy the assignated allocator,
12954           because it is not valid anymore.
12955
12956 2016-07-19 20:01:05 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12957
12958         * gst/vaapi/gstvaapipluginutil.c:
12959         * gst/vaapi/gstvaapipluginutil.h:
12960           pluginutil: const params to gst_video_info_changed()
12961           Since they are not modified, we should mark them as const.
12962
12963 2016-07-29 15:13:29 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12964
12965         * gst/vaapi/gstvaapipluginbase.c:
12966         * gst/vaapi/gstvaapivideomemory.c:
12967         * gst/vaapi/gstvaapivideomemory.h:
12968           gstvaapivideomemory: allocator's image size getter
12969           Add the method gst_allocator_get_vaapi_image_size() for the
12970           GstVaapiVideoAllocator, which gets the size of the allocated images with the
12971           current video info.
12972           This method replaces the direct call to the allocator's image info when the
12973           pool is configured.
12974
12975 2016-07-29 18:06:30 +0900  Hyunjun Ko <zzoon@igalia.com>
12976
12977         * gst/vaapi/gstvaapipluginbase.c:
12978           plugins: update buffer pool size with new allocator's image size
12979           Depends on media, video size is sometimes updated with new allocator.
12980           It leads to dismatch between bufferpool's set size and real allocated buffer size.
12981           In this case, it causes every buffer is freed during release in bufferpool,
12982           which should be reused. This affects performance.
12983           https://bugzilla.gnome.org/show_bug.cgi?id=769248
12984
12985 2016-07-27 19:49:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12986
12987         * configure.ac:
12988           configure: remove gmodule-2.0 EGL dependency
12989           Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
12990           thus the dependency to gmodule-2.0 is not mandatory anymore.
12991
12992 2016-07-27 10:09:38 -0700  Scott D Phillips <scott.d.phillips@intel.com>
12993
12994         * configure.ac:
12995           configure: Fix non-fatal PKG_CHECK_MODULES invocations
12996           Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
12997           the package is missing, but action-if-not-found was given as an empty
12998           string which still causes the default action to run, which halts
12999           execution.
13000           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13001           https://bugzilla.gnome.org/show_bug.cgi?id=769237
13002
13003 2016-07-13 18:34:57 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13004
13005         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
13006           libs: egl: remove dynamic library loading code
13007           Since the upstream of gstreamer-vaapi, the library is not a public shared
13008           object anymore. But the EGL support depended on this dynamic library, so the
13009           EGL support was broken.
13010           This patch removes the dynamic library loading code and instantiates the
13011           EGL display using either X11 or Wayland if available.
13012           https://bugzilla.gnome.org/show_bug.cgi?id=767203
13013
13014 2016-07-12 23:47:41 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13015
13016         * gst/vaapi/gstvaapi.c:
13017         * gst/vaapi/gstvaapidecode.c:
13018         * gst/vaapi/gstvaapidecode.h:
13019           vaapidecode: register only the available decoders
13020           In order to register only the available decoders, this patch queries the
13021           created test VA display, which uses the currently used back-end (X11, Wayland,
13022           DRM, …) on the used display device.
13023           https://bugzilla.gnome.org/show_bug.cgi?id=724352
13024
13025 2016-06-28 11:43:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13026
13027         * gst/vaapi/gstvaapi.c:
13028         * gst/vaapi/gstvaapipluginutil.c:
13029         * gst/vaapi/gstvaapipluginutil.h:
13030           vaapi: register only the available encoders
13031           In order to register only the available encoders, this patch queries the
13032           created test VA display, which uses the currently used back-end (X11,
13033           Wayland, DRM, …) on the used display device.
13034           https://bugzilla.gnome.org/show_bug.cgi?id=724352
13035
13036 2016-06-07 16:28:07 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13037
13038         * gst/vaapi/gstvaapidecode.c:
13039         * gst/vaapi/gstvaapidecodebin.c:
13040           vaapidecode: split all the codecs
13041           Split the vaapidecode to all the supported codecs with the format
13042           vaapi{codec}dec.
13043           vaapidecode is stil registered as a GObject type, but not as a
13044           GStreamer feature, so it can be used internally by vaapidecodebin without
13045           changing its code too much.
13046           https://bugzilla.gnome.org/show_bug.cgi?id=734093
13047
13048 2016-07-12 22:19:37 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13049
13050         * gst/vaapi/gstvaapidecodebin.c:
13051           vaapidecodebin: simplify the code
13052           Since the elements dependant of the VA video processor are now only registered
13053           if it is available, vaapidecodebin code can be simplified a lot, removing all
13054           the code required to check if the VA video processor was available.
13055           https://bugzilla.gnome.org/show_bug.cgi?id=768899
13056
13057 2016-07-12 17:54:26 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13058
13059         * gst/vaapi/gstvaapidecode.c:
13060           vaapidecode: delay the GstVaapiDisplay instantiating
13061           Delay the GstVaapiDisplay instantiating until when changing the state from
13062           READY to PAUSE. In this way the element has more chances to find an already
13063           created GstVaapiDisplay, or a GL context, in the pipeline.
13064           https://bugzilla.gnome.org/show_bug.cgi?id=766206
13065
13066 2016-07-12 17:49:50 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13067
13068         * gst/vaapi/gstvaapipluginutil.c:
13069           pluginutil: set GLX display type
13070           The function gst_vaapi_create_display_from_gl_context() cretes a
13071           GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
13072           when the GL platform was GLX, but a plain X11 VA display.
13073           This patch fixes that, by querying the GL platform earlier.
13074           https://bugzilla.gnome.org/show_bug.cgi?id=766206
13075
13076 2016-06-02 19:57:08 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13077
13078         * gst/vaapi/gstvaapipluginbase.c:
13079         * gst/vaapi/gstvaapivideocontext.c:
13080         * gst/vaapi/gstvaapivideocontext.h:
13081           plugins: add gst_vaapi_plugin_base_find_gl_context()
13082           Using the GstContext mechanism, it is possible to find if the pipeline
13083           shares a GstGLContext, even if we are not to negotiating GLTextureUpload
13084           meta. This is interesting because we could negotiate system memory caps
13085           feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
13086           https://bugzilla.gnome.org/show_bug.cgi?id=766206
13087
13088 2016-06-28 17:14:06 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13089
13090         * gst/vaapi/gstvaapipluginbase.c:
13091         * gst/vaapi/gstvaapipluginbase.h:
13092           plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
13093           Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
13094           it is deleted.
13095
13096 2016-07-12 18:24:10 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13097
13098         * gst/vaapi/gstvaapipluginbase.h:
13099           plugins: remove common change_state() vmethod
13100           Remove the common change_state() vmethod for all the plugins, since no one is
13101           using it.
13102
13103 2016-07-12 20:38:07 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13104
13105         * gst/vaapi/gstvaapidecode.c:
13106           vaapidecode: remove change_state() vmethod
13107           Since the driver checkup is done at registering, there is no need to do it
13108           when changing the element state from NULL to READY. This patch remove this
13109           vmethod from vaapidecode.
13110
13111 2016-07-12 20:29:12 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13112
13113         * gst/vaapi/gstvaapi.c:
13114           vaapi: register vaapipostproc only if supported
13115           Query the GstVaapiDisplay to know if the driver supports video
13116           postprocessing. If does, then register vaapipostproc and vaapidecodebin
13117           elements.
13118           This patch will simplify the design of vaapidecodebin.
13119           https://bugzilla.gnome.org/show_bug.cgi?id=724352
13120
13121 2016-06-29 12:36:26 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13122
13123         * gst/vaapi/gstvaapi.c:
13124           vaapi: don't register if VA driver is unsupported
13125           Using the test VA display, the driver name is queried, and if it is not
13126           white-listed, the plugin rejects to register any element.
13127           https://bugzilla.gnome.org/show_bug.cgi?id=724352
13128
13129 2016-06-28 17:14:06 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13130
13131         * gst/vaapi/gstvaapipluginbase.c:
13132         * gst/vaapi/gstvaapipluginutil.c:
13133         * gst/vaapi/gstvaapipluginutil.h:
13134           plugins: add gst_vaapi_driver_is_whitelisted()
13135           Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
13136           new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
13137           when registering the plugin's feature set with the test VA display.
13138           https://bugzilla.gnome.org/show_bug.cgi?id=724352
13139
13140 2016-07-12 19:56:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13141
13142         * gst/vaapi/gstvaapi.c:
13143           vaapi: instantiate a VA display when registering
13144           This patch tries to instantiate a GstVaapiDisplay when registering the plugin
13145           features, if it fails, no gstreamer-vaapi element is registering.
13146           The purpose of this patch is to avoid a situation where the user has
13147           gstreamer-vaapi installed but their VA-API setup is not functional, which may
13148           lead to unexpected behavior.
13149           https://bugzilla.gnome.org/show_bug.cgi?id=724352
13150
13151 2016-06-28 11:33:18 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13152
13153         * configure.ac:
13154         * gst/vaapi/gstvaapi.c:
13155           vaapi: declare external dependencies
13156           There are two main external dependencies that define the feature set of this
13157           plugin: a) the kernel and b) the VA driver
13158           This patch tracks both dependencies, if any of them change, GStreamer will
13159           re-inspect the plugin.
13160           The kernel is tracked through the device files /dev/dri/card*
13161           The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
13162           where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
13163           the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
13164           since they modify the driver lookup.
13165           Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
13166           https://bugzilla.gnome.org/show_bug.cgi?id=724352
13167
13168 2016-07-19 16:02:27 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13169
13170         * gst/vaapi/gstvaapidecode.c:
13171           vaapidecode: remove unneeded initializations
13172           GObject's memory is set to zero, so there is no need to initialize to zero or
13173           NULL it's class variables.
13174
13175 2016-07-19 18:28:28 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13176
13177         * gst/vaapi/gstvaapipluginbase.h:
13178           plugins: remove undefined macros
13179
13180 2016-07-19 17:43:28 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13181
13182         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13183           Revert "gstvaapisurface_drm: release image when done"
13184           This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3  and commit
13185           372a03a9e38acbf435eb80bf31d9a9844069e504.
13186           While the dmabuf handle is exported, the derive image must exist, otherwise
13187           the image's VA buffer is invalid, thus the dmabuf handle is never released,
13188           leading into a file descriptors leak.
13189
13190 2016-07-21 17:38:17 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13191
13192         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13193           encoder: h265: fix code-style
13194
13195 2016-07-22 16:55:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13196
13197         * gst/vaapi/gstvaapipostproc.c:
13198           vaapipostproc: update filters at color balance
13199           This is a fix for a regression of previous commit, which updates the filters
13200           only when the property is set, because it is also required to update the
13201           filter when the color balance interface change its values.
13202
13203 2016-07-22 12:10:23 +0900  Hyunjun Ko <zzoon@igalia.com>
13204
13205         * gst/vaapi/gstvaapipostproc.c:
13206         * gst/vaapi/gstvaapipostproc.h:
13207           vaapipostproc: make it enable/disable pass-through mode
13208           In case that sink caps and src caps are same, and no filtering parameter set,
13209           pass-through mode is enabled.
13210           If new filtering parameter is set during playback, it makes it reconfiguring,
13211           so that pass-through mode is changed
13212           In addition, updating filter is performed during reconfiguration, if needed.
13213           https://bugzilla.gnome.org/show_bug.cgi?id=751876
13214
13215 2016-07-22 11:51:26 +0900  Hyunjun Ko <zzoon@igalia.com>
13216
13217         * gst-libs/gst/vaapi/gstvaapifilter.c:
13218         * gst-libs/gst/vaapi/gstvaapifilter.h:
13219         * gst/vaapi/gstvaapipostproc.c:
13220           vaapipostproc: checking and updating filter parameter only when it's set
13221           This patch is to avoid checking filter value at every frame.
13222           https://bugzilla.gnome.org/show_bug.cgi?id=751876
13223
13224 2016-07-21 11:24:31 +0300  Allen Zhang <Zhang, Zhangfei>
13225
13226         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13227           decoder: h265: handle the SEI NAL units included in codec_data
13228           The prefix/suffix SEI nal units can appear in codec_data too
13229           which weren't handled before. Parse these SEI headers to
13230           fix the segfault.
13231           https://bugzilla.gnome.org/show_bug.cgi?id=768544
13232
13233 2016-07-15 16:32:26 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13234
13235         * docs/plugins/Makefile.am:
13236           build: doc: do not redefine MAINTAINERCLEANFILES
13237           MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
13238           overload it, the files should be added.
13239
13240 2016-07-15 14:41:27 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13241
13242         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13243           encoder: h264: Fix MVC encode while enabling dct8x8
13244           Pack the transform_8x8_mode_flag and other necessary rbsp data
13245           in packed_pps header for MVC encode.
13246           https://bugzilla.gnome.org/show_bug.cgi?id=768647
13247
13248 2016-07-12 23:58:55 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13249
13250         * gst/vaapi/gstvaapisink.c:
13251           vaapisink: demote a debug message to trace
13252           Reduces noise when debugging.
13253
13254 2016-07-13 17:21:01 +0900  Jagyum Koo <koojagyum@gmail.com>
13255
13256         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13257           wayland: Error check before using cached wl_display
13258           A planar(or some other) buffer allocation may fail on the driver, then
13259           the wayland connection becomes invalid, not able to send request or
13260           receive any event. So we need to set up a new wayland connection if
13261           there's an error detected on the cached wl_display.
13262           https://bugzilla.gnome.org/show_bug.cgi?id=768761
13263           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13264
13265 2016-07-11 21:15:57 +0200  Stefan Sauer <ensonic@users.sf.net>
13266
13267         * common:
13268           Automatic update of common submodule
13269           From ac2f647 to f49c55e
13270
13271 2016-07-05 18:23:22 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13272
13273         * gst/vaapi/gstvaapiencode.c:
13274           vaapiencode: demote a log to trace level
13275           Removes noise when debugging.
13276
13277 2016-07-06 11:17:23 +0900  Hyunjun Ko <zzoon@igalia.com>
13278
13279         * gst/vaapi/gstvaapiencode.c:
13280           vaapiencode: implement flush() vmethod
13281           In order to handle correctly seek and other operations, vaapiencode should
13282           flush all the remaining data from the encoder without pushing it downstream.
13283           This patch implements the flush() vmethod, only after of pausing the
13284           source pad task, and restarting it again after the flush stop.
13285           https://bugzilla.gnome.org/show_bug.cgi?id=767176
13286           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13287
13288 2016-07-11 08:43:04 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13289
13290         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13291           decoder: vc1: flush dpb only if opened
13292           Flush the decode picture buffer, if and only if, the decoder is
13293           started. Otherwise the dpb structure might be NULL.
13294           https://bugzilla.gnome.org/show_bug.cgi?id=742922
13295
13296 2016-07-01 14:42:20 +0900  Hyunjun Ko <zzoon@igalia.com>
13297
13298         * gst/vaapi/gstvaapidecode.c:
13299         * gst/vaapi/gstvaapidecode.h:
13300           vaapidecode: drop non-keyframe in reverse playback
13301           To avoid surface-exhausted situation during reverse playback,
13302           drop frames except for key frame.
13303           Also, to avoid the corruption of the parser state, flush() vmethod
13304           doesn't destroy the VA decoder when playing in reverse.
13305           https://bugzilla.gnome.org/show_bug.cgi?id=742922
13306           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13307
13308 2016-07-10 19:33:14 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13309
13310         * gst/vaapi/gstvaapidecode.c:
13311           vaapidecode: unref output frame earlier
13312           The queue in GstVaapiDecode adds an extra reference to the frames. This patch
13313           unref that extra reference earlier making the code simpler to follow.
13314           https://bugzilla.gnome.org/show_bug.cgi?id=768652
13315
13316 2016-07-10 19:01:17 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13317
13318         * gst/vaapi/gstvaapidecode.c:
13319           vaapidecode: remove gst_vaapidecode_internal_flush()
13320           As gst_vaapidecode_finish() is the only callee of
13321           gst_vaapidecode_internal_flush(), it is better to inline it.
13322           https://bugzilla.gnome.org/show_bug.cgi?id=768652
13323
13324 2016-07-10 18:18:57 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13325
13326         * gst/vaapi/gstvaapidecode.c:
13327           vaapidecode: flush output adapter at drain()
13328           Calling drain() vmethod means "decode any data it can at this point, but that
13329           more data may arrive after". Hence, vaapidecode should check if there is data
13330           in the output adapter and process them, without destroying the decoded picture
13331           buffer (dpb).
13332           Since this operation is done by gst_vaapidecode_internal_flush(), the operation
13333           was refactored into a new function gst_vaapidecode_flush_output_adapter().
13334           https://bugzilla.gnome.org/show_bug.cgi?id=768652
13335
13336 2016-07-10 13:46:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13337
13338         * gst/vaapi/gstvaapidecode.c:
13339           vaapidecode: call purge at flush()
13340           Calling flush() vmethod means "to flush all remaining data from the decoder
13341           without pushing it downstream".
13342           Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
13343           gst_video_decoder_have_frame() if there is still something in the input
13344           adapter, which may push buffers to downstream by calling handle_frame().
13345           This patch changes this behavior by calling gst_vaapidecode_purge() rather
13346           than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
13347           decoder and releases all the rest of decoded frames.
13348           https://bugzilla.gnome.org/show_bug.cgi?id=768652
13349
13350 2016-07-06 18:38:37 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13351
13352         * tests/elements/Makefile.am:
13353         * tests/elements/test-vaapisink.c:
13354           test: elements: remove spurious linkage
13355           Element tests only need to link against gstreamer libraries.
13356
13357 2016-07-06 14:41:21 +0300  Sebastian Dröge <sebastian@centricular.com>
13358
13359         * configure.ac:
13360           configure: Require GLib >= 2.40 like everywhere else
13361
13362 2016-07-06 13:51:21 +0300  Sebastian Dröge <sebastian@centricular.com>
13363
13364         * configure.ac:
13365           Back to development
13366
13367 === release 1.9.1 ===
13368
13369 2016-07-06 13:48:07 +0300  Sebastian Dröge <sebastian@centricular.com>
13370
13371         * ChangeLog:
13372         * NEWS:
13373         * common:
13374         * configure.ac:
13375         * gstreamer-vaapi.doap:
13376           Release 1.9.1
13377
13378 2016-07-05 20:59:49 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13379
13380         * tests/elements/test-vaapisink.c:
13381           tests: elements: rotate orientation event
13382
13383 2016-07-01 16:01:54 +0900  Hyunjun Ko <zzoon@igalia.com>
13384
13385         * configure.ac:
13386         * tests/Makefile.am:
13387         * tests/elements/Makefile.am:
13388         * tests/elements/test-vaapisink.c:
13389           tests: elements: Add testsuite for vaapisink
13390           https://bugzilla.gnome.org/show_bug.cgi?id=765798
13391
13392 2016-07-01 16:00:46 +0900  Hyunjun Ko <zzoon@igalia.com>
13393
13394         * gst-libs/gst/vaapi/gstvaapitypes.h:
13395         * gst-libs/gst/vaapi/gstvaapivalue.c:
13396         * gst/vaapi/gstvaapisink.c:
13397         * gst/vaapi/gstvaapisink.h:
13398           vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
13399           https://bugzilla.gnome.org/show_bug.cgi?id=765798
13400
13401 2016-06-29 13:57:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13402
13403         * gst/vaapi/gstvaapipostproc.c:
13404           vaapipostproc: return caps template if no display
13405           This patch is a fix for my bad review of commit 6d73ca8d. The element should
13406           be able to return the available raw caps handled by the VA display, but that
13407           only should happen when there a VA display. If there's none, the element
13408           should use the caps template.
13409           https://bugzilla.gnome.org/show_bug.cgi?id=768161
13410
13411 2016-06-29 16:42:18 +1000  Matthew Waters <matthew@centricular.com>
13412
13413         * gst/vaapi/gstvaapipostproc.c:
13414           vaapipostproc: don't require a vaapi display for all caps queries
13415           This delays the requirement of having a GstVaapiDisplay until later
13416           https://bugzilla.gnome.org/show_bug.cgi?id=768161
13417
13418 2016-06-28 15:48:39 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13419
13420         * gst-libs/gst/vaapi/gstvaapiutils.c:
13421           utils: report VP9 profiles
13422           Add VP9Profile0-3 name mapping.
13423
13424 2016-06-28 14:05:51 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13425
13426         * gst/vaapi/gstvaapi.c:
13427           vaapi: nest includes under USE_ENCODER macro
13428           This is a missed changeset from commit 1c05c53, since also header includes
13429           should be nested.
13430
13431 2016-06-28 11:54:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13432
13433         * gst/vaapi/gstvaapi.c:
13434           vaapi: nest encoders under USE_ENCODER macro
13435           Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
13436           macro, it is clearer to nest them, showing explicitly the dependency relation.
13437
13438 2016-06-24 12:05:24 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13439
13440         * gst/vaapi/gstvaapivideocontext.c:
13441           vaapivideocontext: check if query context is NULL
13442           Under certain conditions the element might receive a positive context query
13443           but without a context instance. This situation will lead to a segmentation
13444           fault when traversing the context list in the pipeline.
13445           https://bugzilla.gnome.org/show_bug.cgi?id=767946
13446
13447 2016-06-20 13:22:36 -0700  Scott D Phillips <scott.d.phillips@intel.com>
13448
13449         * gst-libs/gst/vaapi/Makefile.am:
13450         * gst-libs/gst/vaapi/glibcompat.h:
13451         * gst-libs/gst/vaapi/sysdeps.h:
13452           remove unused glibcompat.h
13453           glibcompat.h is no longer doing anything. Remove it.
13454           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13455           https://bugzilla.gnome.org/show_bug.cgi?id=767886
13456
13457 2016-06-22 14:28:44 -0700  Scott D Phillips <scott.d.phillips@intel.com>
13458
13459         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13460           encoder: h264: Use high profile by default
13461           Change defaults for max-bframes, cabac, and dct8x8 to be enabled
13462           by default. This will cause the default profile to be high instead
13463           of baseline. In most situations this is the right decision, and
13464           the profile can still be lowered in the case of caps restrictions.
13465           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13466           https://bugzilla.gnome.org/show_bug.cgi?id=757941
13467
13468 2016-06-22 12:15:29 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13469
13470         * gst/vaapi/gstvaapidecodebin.c:
13471           vaapidecodebin: element warning if missing element
13472           Raise an element warning if a required element is not available, thus the
13473           pipeline will post a warning message and the application will be informed.
13474
13475 2016-06-22 15:11:56 +0300  Hyunjun Ko <zzoon@igalia.com>
13476
13477         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13478           decoder: h265: fix to release all dpb pictures
13479           Without this, all dpb pictures are not released during flush,
13480           because we used the global dpb_count variable for checking the
13481           dpb fullness which get decremented in dpb_remove_index()
13482           routine during each loop iteration.
13483           https://bugzilla.gnome.org/show_bug.cgi?id=767934
13484
13485 2016-06-21 11:48:54 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
13486
13487         * common:
13488           Automatic update of common submodule
13489           From ac2f647 to f363b32
13490
13491 2016-06-20 19:53:26 +0900  Hyunjun Ko <zzoon@igalia.com>
13492
13493         * gst/vaapi/gstvaapidecode.c:
13494         * gst/vaapi/gstvaapipostproc.c:
13495           vaapi: fix minor leaks
13496           https://bugzilla.gnome.org/show_bug.cgi?id=767868
13497
13498 2016-06-17 17:00:03 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13499
13500         * gst/vaapi/gstvaapi.c:
13501           vaapi: remove an already included header
13502           gst/gst.h is already included in gstcompat.h
13503
13504 2016-06-17 16:53:26 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13505
13506         * gst/vaapi/gstvaapidecodebin.c:
13507           vaapidecodebin: add vp9 in sink pad template
13508
13509 2016-06-15 20:19:27 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13510
13511         * gst/vaapi/gstvaapisink.c:
13512           vaapisink: return caps template if no display
13513           If vaapisink received a caps query before getting a VA display, it returned
13514           only the surfaces related caps. This behavior broke the autovideosink
13515           negotiation.
13516           This patch returns the pad's template caps if no VA display, otherwise the
13517           caps are crafted as before.
13518           https://bugzilla.gnome.org/show_bug.cgi?id=767699
13519
13520 2016-06-15 11:25:23 -0700  Scott D Phillips <scott.d.phillips@intel.com>
13521
13522         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13523           decoder: vp9: Update comment about context resets
13524           Clarify that vaapi context resets are never needed for vp9, but
13525           that ensure_context() needs called when the size increases so that
13526           new surfaces can be allocated.
13527           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13528           https://bugzilla.gnome.org/show_bug.cgi?id=767474
13529
13530 2016-05-17 15:34:23 -0700  Scott D Phillips <scott.d.phillips@intel.com>
13531
13532         * gst-libs/gst/vaapi/gstvaapicontext.c:
13533         * gst-libs/gst/vaapi/gstvaapicontext.h:
13534         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13535           gstvaapicontext: control reset_on_resize with option
13536           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13537           https://bugzilla.gnome.org/show_bug.cgi?id=767474
13538
13539 2016-06-14 09:45:22 -0700  Scott D Phillips <scott.d.phillips@intel.com>
13540
13541         * gst/vaapi/gstvaapivideobufferpool.c:
13542           vaapivideobufferpool: add video meta to config when needed
13543           In cases where we know the video meta must be present, add it to
13544           the pool configuration.
13545           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13546           https://bugzilla.gnome.org/show_bug.cgi?id=766184
13547
13548 2016-06-13 10:48:41 -0700  Scott D Phillips <scott.d.phillips@intel.com>
13549
13550         * gst/vaapi/gstvaapipluginbase.c:
13551           plugins: retry pool config
13552           if gst_buffer_pool_set_config returns FALSE, check the modified
13553           config and retry set_config if the config is still acceptable.
13554           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13555           https://bugzilla.gnome.org/show_bug.cgi?id=766184
13556
13557 2016-06-08 18:42:43 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13558
13559         * gst/vaapi/gstvaapivideomemory.h:
13560           vaapivideomemory: internal attributes to methods
13561           Mark as internal the functions used by VA-API dmabuf allocator.
13562
13563 2016-06-02 15:41:22 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13564
13565         * gst/vaapi/gstvaapipluginbase.c:
13566           plugins: remove precondition for decide_allocation()
13567           There's no need to check for the display in the plugin object when
13568           decide_allocation() vmethod is called, because the display will created or
13569           re-created along the method execution.
13570
13571 2016-06-08 18:44:34 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13572
13573         * gst/vaapi/gstvaapipluginbase.c:
13574           plugins: avoid possible memory leaks
13575           Get the pool config just before use it, to avoid a memory leak if the
13576           allocator cannot be instantiated. Similarly, return FALSE if the configuration
13577           cannot be set, avoid keep a not used allocator in the pool.
13578
13579 2016-05-31 11:52:57 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13580
13581         * gst/vaapi/gstvaapipluginbase.c:
13582           plugins: use GstParentBufferMeta
13583           Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
13584           use the GStreamer's GstParentBufferMeta.
13585           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13586
13587 2016-05-31 08:26:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13588
13589         * gst/vaapi/gstvaapipluginbase.c:
13590           plugins: cache VASurfaces from dmabufs
13591           This patch avoids the creation of a VASurface each time a new input buffer is
13592           processed, caching them in the input buffer itself.
13593           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13594
13595 2016-05-30 23:55:43 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13596
13597         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13598         * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13599         * gst/vaapi/gstvaapipluginbase.c:
13600           libs: change gst_vaapi_surface_new_with_dma_buf_handle()
13601           Instead of passing the data already in GstVideoInfo, let's just pass the
13602           GstVideoInfo structure.
13603           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13604
13605 2016-05-25 12:31:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13606
13607         * gst/vaapi/gstvaapipluginbase.c:
13608         * gst/vaapi/gstvaapipluginbase.h:
13609           plugins: use an unique allocator per pad
13610           Instead of instantiating an allocator per vaapivideobufferpool, only one
13611           allocator is instantiated per element's pad and shared among future pools.
13612           If the pad's caps changes, the allocator is reset.
13613           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13614
13615 2016-05-25 10:58:01 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13616
13617         * gst/vaapi/gstvaapipluginbase.c:
13618         * gst/vaapi/gstvaapivideobufferpool.c:
13619         * gst/vaapi/gstvaapivideobufferpool.h:
13620           vaapivideobufferpool: share options flag with pluginbase
13621           Originally, vaapivideobufferpool has a set of boolean variables for the
13622           buffer configuration options.
13623           This pach changes these boolean variables for a single bitwise, just as
13624           it is used in pluginbase. Hence, the internal enum was moved to
13625           vaapivideobufferpool header.
13626           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13627
13628 2016-05-10 15:57:06 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13629
13630         * gst/vaapi/gstvaapipluginbase.c:
13631           plugins: add gst_vaapi_plugin_base_create_pool()
13632           This patch refactors the code in pluginbase in order to centralize the buffer
13633           pool instantiation. As the buffer pool config may have different options, these
13634           are gathered using a bitwise flag.
13635           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13636
13637 2016-05-20 18:46:14 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13638
13639           pluginbase negotiates allocator with bufferpool
13640           Originally vaapivideobufferpool instantiates its own allocator regardless the
13641           received configuration, and it relies in custom configuration options to
13642           choose which kind of allocator instantiate.
13643           This patch transfers the responsibility of the allocator instantiate to
13644           vaapipluginbase and pass it to the vaapivideobufferpool through its
13645           configuration.
13646           * gst/vaapi/gstvaapipluginbase.c
13647           + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
13648           + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
13649           bufferpool configuration
13650           + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
13651           needed.
13652           + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
13653           allocator in bufferpool configuration
13654           * gst/vaapi/gstvaapivideobufferpool.c
13655           + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
13656           allocator, process the received one through its configuration.
13657           * gst/vaapi/gstvaapivideobufferpool.h: removed
13658           GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
13659           * gst/vaapi/gstvaapivideomemory.c
13660           + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
13661           allocator with the vaapi qdata.
13662           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13663
13664 2016-05-20 14:39:23 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13665
13666         * gst/vaapi/gstvaapivideobufferpool.c:
13667           vaapivideobufferpool: keep only current video info
13668           Instead of keeping old and new GstVideoInfo video structure, we only keep one,
13669           the current one, the negotiated. The old one is not needed at all.
13670           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13671
13672 2016-05-23 15:38:07 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13673
13674         * gst/vaapi/gstvaapipluginbase.c:
13675         * gst/vaapi/gstvaapipluginutil.c:
13676         * gst/vaapi/gstvaapipluginutil.h:
13677         * gst/vaapi/gstvaapivideomemory.c:
13678           pluginutil: add gst_video_info_force_nv12_if_encoded()
13679           This lines repeat a couple times in the code, so it would be better to put it
13680           a helper function.
13681           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13682
13683 2016-05-20 14:15:53 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13684
13685         * gst/vaapi/gstvaapipluginutil.c:
13686         * gst/vaapi/gstvaapipluginutil.h:
13687         * gst/vaapi/gstvaapipostproc.c:
13688         * gst/vaapi/gstvaapivideobufferpool.c:
13689           pluginutil: add gst_video_info_changed() helper
13690           This function is shared among different elements, so let factorized it.
13691           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13692
13693 2016-06-08 10:14:16 +0900  Hyunjun Ko <zzoon@igalia.com>
13694
13695         * gst/vaapi/gstvaapipostprocutil.c:
13696           vaapipostproc: Add colorimetry attributes to src caps
13697           https://bugzilla.gnome.org/show_bug.cgi?id=766596
13698
13699 2016-06-08 10:17:46 +0900  Hyunjun Ko <zzoon@igalia.com>
13700
13701         * gst/vaapi/gstvaapidecode.c:
13702           vaapidecode: remove chroma-site and colorimetry from src caps
13703           https://bugzilla.gnome.org/show_bug.cgi?id=766596
13704
13705 2016-06-07 14:19:50 -0700  Scott D Phillips <scott.d.phillips@intel.com>
13706
13707         * gst/vaapi/gstvaapipostproc.c:
13708         * gst/vaapi/gstvaapipostproc.h:
13709           vaapipostproc: add postproc_lock to protect data members
13710           Add a mutex to postproc to protect concurrent access to data members.
13711           Previously set_caps() could release the allowed_srcpad_caps while
13712           transform_caps was in the middle of using it.
13713           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13714           https://bugzilla.gnome.org/show_bug.cgi?id=766940
13715
13716 2016-05-30 11:30:40 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13717
13718         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13719         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13720           encoder: vp9: Add simple algorithms for reference picture selection
13721           Added two modes(as properties) for reference picture selection:
13722           ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
13723           and LastRef is pointing to the previous frame.
13724           ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
13725           and n-2 th frame as AltRef
13726           https://bugzilla.gnome.org/show_bug.cgi?id=766048
13727
13728 2016-05-30 11:25:52 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13729
13730         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13731           encoder: vp9: Define Max frame width and height
13732           https://bugzilla.gnome.org/show_bug.cgi?id=766048
13733
13734 2016-05-30 11:25:03 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13735
13736         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13737         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13738           encoder: vp9: Add more propertis for tuning encode quality
13739           Added three tuning properties:
13740           1: filter_level
13741           2: sharpness_level
13742           3: luma ac quant-table index
13743           https://bugzilla.gnome.org/show_bug.cgi?id=766048
13744
13745 2016-05-30 11:24:14 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13746
13747         * gst/vaapi/Makefile.am:
13748         * gst/vaapi/gstvaapi.c:
13749         * gst/vaapi/gstvaapiencode_vp9.c:
13750         * gst/vaapi/gstvaapiencode_vp9.h:
13751           Add vp9 encode element to "vaapi" plugin
13752           https://bugzilla.gnome.org/show_bug.cgi?id=766048
13753
13754 2016-05-30 11:23:12 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13755
13756         * gst-libs/gst/vaapi/Makefile.am:
13757         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13758         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13759           Add vp9 encoder support in libgstvaapi
13760           https://bugzilla.gnome.org/show_bug.cgi?id=766048
13761
13762 2016-05-30 11:22:35 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13763
13764         * configure.ac:
13765           build: Add check for VP9 encode API support in libva
13766           https://bugzilla.gnome.org/show_bug.cgi?id=766048
13767
13768 2016-05-26 11:42:32 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13769
13770         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13771           gstvaapisurface_drm: fix internal documentation
13772
13773 2016-05-26 11:41:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13774
13775         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13776           gstvaapisurface_drm: fix code-style
13777
13778 2016-05-25 12:28:48 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13779
13780         * gst/vaapi/gstvaapipluginbase.c:
13781           plugins: remove unused header
13782           Remove the include of gst/allocators/allocators.h since it is not used.
13783
13784 2016-05-25 10:36:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13785
13786         * gst/vaapi/gstvaapivideobufferpool.h:
13787           vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
13788           Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
13789           keep compatibility definition.
13790           This patch removes the definition of
13791           GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
13792           gst-plugins-base version 1.2.2
13793
13794 2016-05-23 22:49:11 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13795
13796         * gst/vaapi/gstvaapipluginbase.c:
13797           plugins: add gst_vaapi_buffer_pool_caps_is_equal()
13798           This is a helper function to improve the readability of
13799           ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
13800           re-instantiated.
13801
13802 2016-05-24 16:29:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13803
13804         * gst/vaapi/gstvaapipluginbase.c:
13805           plugins: deactivate buffer pool before unref
13806           This buffer pool may still be processing buffers when a caps renegotiation is
13807           done. This one-liner patch deactivates the pool to drain it before it
13808           de-allocation.
13809
13810 2016-05-24 16:22:24 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13811
13812         * gst/vaapi/gstvaapipluginbase.c:
13813           plugins: no sinkpad bufferpool when decoder
13814           Right now, the decoders create a buffer pool for their sink pad which is not
13815           used at all, because the decoders have never proposed it to upstream.
13816           This patch avoids the buffer pool instantiating when the element inherits from
13817           the GstVideoDecoder class.
13818
13819 2016-05-24 13:39:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13820
13821         * gst/vaapi/gstvaapipluginbase.c:
13822           plugins: avoid to get/set pool config twice
13823           This patch is a bit of optimization, since the bufferpool configuration is get
13824           when the pool is created. Hence, we only need to request it when the pool from
13825           the allocation query is reused.
13826
13827 2016-05-13 13:14:23 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13828
13829         * gst/vaapi/gstvaapipluginbase.c:
13830           plugins: destroy pool earlier if non-vaapi
13831           If the offered pool in decide_allocation() vmethod doesn't have the
13832           VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
13833           so it could be created later.
13834
13835 2016-05-23 22:30:04 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13836
13837         * gst/vaapi/gstvaapivideobufferpool.c:
13838           vaapivideobufferpool: split caps validation
13839           When validating the caps from bufferpool config, this patch distinguishes the
13840           error from no caps received (NULL) from the invalid caps (cannot be converted
13841           into GstVideoInfo structure).
13842
13843 2016-05-23 22:21:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13844
13845         * gst/vaapi/gstvaapidecode.c:
13846         * gst/vaapi/gstvaapipluginbase.c:
13847           plugins: check for caps in query earlier
13848           Check for caps as soon gst_query_parse_allocation() returns.
13849
13850 2016-05-23 23:13:55 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13851
13852         * gst/vaapi/gstvaapipluginbase.c:
13853         * gst/vaapi/gstvaapipluginbase.h:
13854           plugins: remove unused variables
13855           This variables stopped to be used since commit 001a5c63, which removed the
13856           gstvaapiuploader.
13857
13858 2016-05-23 18:47:46 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13859
13860         * gst/vaapi/gstvaapipluginbase.c:
13861           plugins: fix potential memleak from commit 9159328
13862           If gst_video_info_from_caps() fails it is required to unref the instantiated
13863           pool.
13864
13865 2016-05-23 18:04:47 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13866
13867         * gst/vaapi/gstvaapipostproc.c:
13868           vaapipostproc: handle if gst_video_info_from_caps() fails
13869           Return FALSE is the received caps cannot be transformed into a GstVideoInfo
13870           structure.
13871
13872 2016-05-23 17:55:35 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13873
13874         * gst/vaapi/gstvaapipluginbase.c:
13875           plugins: handle if gst_video_info_from_caps() fails
13876           Let's play safe and return error if, somehow, the received caps are wrong.
13877
13878 2016-05-23 17:47:36 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13879
13880         * gst/vaapi/gstvaapipluginbase.c:
13881           plugins: relate errors to instance
13882           Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
13883           will show the name of the vaapipluginbase instance that failed.
13884           Also, the code-style is fixed, where some error labels need to be surrounded
13885           by braces.
13886
13887 2016-05-20 21:01:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13888
13889         * gst/vaapi/gstvaapipluginbase.c:
13890         * gst/vaapi/gstvaapipluginutil.c:
13891         * gst/vaapi/gstvaapisink.c:
13892           plugins: use GstVideoInfo accessors
13893           Instead of access to GstVideInfo members directly, use their accessors
13894           macros. This patch makes more resistance to future changes in GStreamer core.
13895
13896 2016-05-20 19:33:39 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13897
13898         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13899         * gst/vaapi/gstvaapipluginbase.c:
13900         * gst/vaapi/gstvaapipostproc.c:
13901         * tests/simple-encoder.c:
13902           remove spurious gst_video_info_init()
13903           gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
13904           gst_video_info_init(), hence it is not required to call it before them. This
13905           patch removes these spurious calls.
13906
13907 2016-05-20 19:15:11 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13908
13909         * gst/vaapi/gstvaapipluginbase.c:
13910           vaapipluginbase: code-style: rename goto label
13911           The error labels have error_ prefix, but this one.
13912
13913 2016-05-19 16:34:50 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13914
13915         * gst/vaapi/gstvaapivideomemory.c:
13916           vaapivideomemory: use allocator custom alloc flag
13917           Instead of a dummy alloc() vmethod, the allocator instance set the flag
13918           GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
13919           gst_allocator_alloc() on the allocator.
13920
13921 2016-05-06 13:17:47 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13922
13923         * gst/vaapi/gstvaapivideobufferpool.c:
13924           vaapivideobufferpool: relate errors to instance
13925           Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
13926           the vaapivideobufferpool instance that failed.
13927
13928 2016-05-10 16:14:48 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13929
13930         * gst/vaapi/gstvaapipluginbase.c:
13931           plugins: remove gst_vaapi_plugin_base_set_pool_config()
13932           This function helper make sense for GStreamer 1.2, but it is not helpful for
13933           greater version since the validation is already done in the API implementation.
13934           Thus, it is removed.
13935
13936 2016-05-18 17:05:03 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13937
13938         * gst/vaapi/gstvaapipluginbase.c:
13939           gstvaapipluginbase: Fix typo in doc
13940
13941 2016-05-13 11:45:20 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13942
13943         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13944           encoder : h264: Disable b-frame encode in low-power mode
13945           This is a workaround since vaapi-intel-driver doesn't have
13946           support for B-frame encode when utilizing low-power-enc
13947           hardware block.
13948           Fixme :We should query the VAConfigAttribEncMaxRefFrames
13949           instead of blindly disabling b-frame support and set b/p frame count,
13950           buffer pool size etc based on the query result.
13951           https://bugzilla.gnome.org/show_bug.cgi?id=766050
13952
13953 2016-05-13 11:44:57 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13954
13955         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13956         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13957           encoder: h264 : Use "tune=low-power" for enabling lowpower encode
13958           Remove the duplicate property "low-power-enc" and use the
13959           tune property for enabling low power encoding mode.
13960           https://bugzilla.gnome.org/show_bug.cgi?id=766050
13961
13962 2016-05-11 12:06:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13963
13964         * gst-libs/gst/vaapi/gstvaapiencoder.c:
13965           gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
13966           https://bugzilla.gnome.org/show_bug.cgi?id=766050
13967
13968 2016-05-11 12:05:36 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13969
13970         * gst-libs/gst/vaapi/gstvaapiencoder.c:
13971         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13972         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13973           encoder: h264: Add support of low power/high performance encoding mode
13974           Added a new property "low-power-enc" for enabling low power
13975           encoding mode. Certain encoding tools may not be available
13976           with the VAEntrypointEncSliceLP.
13977           https://bugzilla.gnome.org/show_bug.cgi?id=766050
13978
13979 2016-05-11 12:04:46 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13980
13981         * gst-libs/gst/vaapi/gstvaapitypes.h:
13982         * gst-libs/gst/vaapi/gstvaapiutils.c:
13983         * gst-libs/gst/vaapi/gstvaapivalue.c:
13984           Add mapping for Macroblock level rate control (VA_RC_MB)
13985
13986 2016-05-11 12:03:08 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13987
13988         * gst-libs/gst/vaapi/gstvaapidisplay.c:
13989           gstvaapidisplay: Add VAEntrypointEncSliceLP support
13990           https://bugzilla.gnome.org/show_bug.cgi?id=766050
13991
13992 2016-05-11 11:59:59 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13993
13994         * gst-libs/gst/vaapi/gstvaapiprofile.c:
13995         * gst-libs/gst/vaapi/gstvaapiprofile.h:
13996           gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
13997           This is for implementations that supports low_power/high_performance
13998           variant for slice level encode.
13999           https://bugzilla.gnome.org/show_bug.cgi?id=766050
14000
14001 2016-05-05 18:23:10 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14002
14003         * gst/vaapi/gstvaapipostprocutil.c:
14004           vaapipostproc: negotiate frame size fixation
14005           Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
14006           using the sink caps, also it use the next capsfilter.
14007           This code is a shameless copy of gst_video_scale_fixate_caps() from
14008           https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
14009           https://bugzilla.gnome.org/show_bug.cgi?id=758548
14010
14011 2016-05-06 10:50:10 +0200  Scott D Phillips <scott.d.phillips@intel.com>
14012
14013         * gst/vaapi/gstvaapipostprocutil.c:
14014           vaapipostproc: don't use GstVideoInfo for src caps
14015           Instead of using gst_video_info_to_caps () to generated the fixed src caps,
14016           this patch enables the first step for caps negotiation with a possible
14017           following caps filter.
14018           _get_preferred_caps() will traverse the possible src caps looking for the one
14019           wit the preferred feature and the preferred color format. Then the color
14020           format, the frame size and the frame rate are fixated.
14021           https://bugzilla.gnome.org/show_bug.cgi?id=758548
14022
14023 2016-05-05 15:32:36 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14024
14025         * gst/vaapi/gstvaapipostproc.c:
14026         * gst/vaapi/gstvaapipostprocutil.c:
14027         * gst/vaapi/gstvaapipostprocutil.h:
14028           vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
14029           Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
14030           No functional changes.
14031           https://bugzilla.gnome.org/show_bug.cgi?id=758548
14032
14033 2016-05-05 15:19:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14034
14035         * gst/vaapi/gstvaapipostproc.c:
14036           vaapipostproc: simplify code
14037           Change a convoluted snippet to find the preferred color format in the peer
14038           caps.
14039           https://bugzilla.gnome.org/show_bug.cgi?id=758548
14040
14041 2016-05-05 15:16:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14042
14043         * gst/vaapi/gstvaapipostproc.c:
14044           vaapipostproc: use othercaps for preferred caps
14045           Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
14046           from fixate_caps() vmethod to find the preferred caps feature and color
14047           format.
14048           https://bugzilla.gnome.org/show_bug.cgi?id=758548
14049
14050 2016-05-05 13:46:11 +0200  Scott D Phillips <scott.d.phillips@intel.com>
14051
14052         * gst/vaapi/gstvaapipostproc.c:
14053           vaapipostproc: add fixate_caps() vmethod
14054           Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
14055           implements the fixate_caps() vmethod and moves code around.
14056           https://bugzilla.gnome.org/show_bug.cgi?id=758548
14057
14058 2016-05-05 12:07:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14059
14060         * gst/vaapi/Makefile.am:
14061         * gst/vaapi/gstvaapipostproc.c:
14062         * gst/vaapi/gstvaapipostprocutil.c:
14063         * gst/vaapi/gstvaapipostprocutil.h:
14064           vaapipostproc: set early properties restrictions
14065           When running transform_caps() vmethod, returning the srcpad caps, the caps are
14066           early restricted to the element properties set: width, height, format and
14067           force keep aspect.
14068           A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
14069           are stored.
14070           https://bugzilla.gnome.org/show_bug.cgi?id=758548
14071
14072 2016-04-25 13:45:04 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14073
14074         * gst/vaapi/gstvaapipostproc.c:
14075           vaapipostproc: log the caps transformation
14076           https://bugzilla.gnome.org/show_bug.cgi?id=758548
14077
14078 2016-04-27 21:20:32 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14079
14080         * gst/vaapi/gstvaapipostproc.c:
14081           vaapipostproc: no GLTextureUpload in sinkpad
14082           As the vaapipostproc does not process frames with the VideoGLTextureUpload
14083           meta, the feature is removed from the sink pad template.
14084           https://bugzilla.gnome.org/show_bug.cgi?id=765931
14085
14086 2015-09-28 08:49:39 +0100  Julien Isorce <j.isorce@samsung.com>
14087
14088         * gst/vaapi/gstvaapivideobufferpool.c:
14089           vaapibufferpool: do not create texture upload meta if dmabuf
14090           https://bugzilla.gnome.org/show_bug.cgi?id=755072
14091
14092 2016-05-06 12:16:26 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14093
14094         * git.mk:
14095           build: update git.mk
14096
14097 2016-04-29 13:11:48 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14098
14099         * gst/vaapi/gstvaapipluginbase.h:
14100           plugin: fix macro processor check
14101           Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
14102           defined in config.h, but it would be 0 or 1 depending on the configure output.
14103           https://bugzilla.gnome.org/show_bug.cgi?id=765702
14104
14105 2016-04-29 12:53:06 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14106
14107         * tests/test-display.c:
14108           tests: display: guard possible unused variables
14109           https://bugzilla.gnome.org/show_bug.cgi?id=765702
14110
14111 2016-04-29 12:48:44 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14112
14113         * tests/codec.c:
14114         * tests/decoder.c:
14115         * tests/image.c:
14116         * tests/output.c:
14117         * tests/simple-decoder.c:
14118         * tests/test-decode.c:
14119         * tests/test-display.c:
14120         * tests/test-filter.c:
14121         * tests/test-h264.c:
14122         * tests/test-jpeg.c:
14123         * tests/test-mpeg2.c:
14124         * tests/test-mpeg4.c:
14125         * tests/test-subpicture-data.c:
14126         * tests/test-subpicture.c:
14127         * tests/test-surfaces.c:
14128         * tests/test-textures.c:
14129         * tests/test-vc1.c:
14130         * tests/test-windows.c:
14131           tests: inforce gstreamer code-style
14132
14133 2016-04-27 17:10:26 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14134
14135         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14136           encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
14137           It seems driver requires enablement of cu_qp_delta_enabled_flag
14138           for modifying QP values to controll the CBR mode bitrate.
14139           https://bugzilla.gnome.org/show_bug.cgi?id=749852
14140
14141 2016-04-27 17:06:09 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14142
14143         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14144           encoder: h265: Add CBR Encoding support
14145           https://bugzilla.gnome.org/show_bug.cgi?id=749852
14146
14147 2015-11-27 05:09:10 +0000  Julien Isorce <j.isorce@samsung.com>
14148
14149         * gst-libs/gst/vaapi/gstvaapisurface.c:
14150           gstvaapisurface: explicitely clear TILING flag if dmabuf
14151           https://bugzilla.gnome.org/show_bug.cgi?id=755072
14152
14153 2015-10-04 23:44:16 +0100  Julien Isorce <j.isorce@samsung.com>
14154
14155         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14156           gstvaapisurface_drm: release image when done
14157           Otherwise intel-vaapi-driver will fail to process the exported surface because
14158           it will find it is currently derived, so considered as busy.
14159           https://bugzilla.gnome.org/show_bug.cgi?id=755072
14160
14161 2015-09-26 06:25:12 +0100  Julien Isorce <j.isorce@samsung.com>
14162
14163         * gst/vaapi/gstvaapipostproc.c:
14164           vaapipostproc: already have a surface proxy if dmabuf
14165           https://bugzilla.gnome.org/show_bug.cgi?id=755072
14166
14167 2016-03-11 08:58:51 +0000  Julien Isorce <j.isorce@samsung.com>
14168
14169         * gst/vaapi/gstvaapipostproc.c:
14170           various gst-indent
14171
14172 2016-04-21 15:14:47 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14173
14174         * gst/vaapi/gstvaapidecode.c:
14175         * gst/vaapi/gstvaapipluginbase.c:
14176         * gst/vaapi/gstvaapipluginbase.h:
14177           vaapidecode: search driver in whitelist
14178           If the backend driver vendor string is not in a white-list, and the
14179           environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
14180           change it state from NULL to READY, hence the auto-plug mechanism will look
14181           for another decoder.
14182           This patch assumes the GstContext has already being shared along the pipeline
14183           and the element has a valid GstVaapiDisplay instance.
14184           https://bugzilla.gnome.org/show_bug.cgi?id=764673
14185
14186 2016-04-21 12:57:30 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14187
14188         * gst/vaapi/gstvaapidecode.c:
14189         * gst/vaapi/gstvaapiencode.c:
14190         * gst/vaapi/gstvaapipluginbase.c:
14191         * gst/vaapi/gstvaapipluginbase.h:
14192         * gst/vaapi/gstvaapipostproc.c:
14193         * gst/vaapi/gstvaapisink.c:
14194           plugins: rework set_context() vmethod definition
14195           In bug 757598 was added the set_context() vmethod chain up in
14196           GstVaapiPluginBase. But it is buggy, since the parent_class address is
14197           assigned to the last element which called gst_vaapi_plugin_base_class_init().
14198           No error has shown up since none of the element's base classes redefined
14199           set_context() vmethod from GstElement, so always the correct function was
14200           called. Still this code is wrong and this patch make it right.
14201           Since set_context() is the same code, a macro is used to implement that code
14202           in all the gst-vaapi elements.
14203           https://bugzilla.gnome.org/show_bug.cgi?id=765368
14204
14205 2016-04-15 17:57:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14206
14207         * gst/vaapi/gstvaapipostproc.c:
14208           vaapipostproc: resize if negotiated and allocation caps are different
14209           Since commit 859a2b2, in vaapidecode, allocation query can be different from
14210           the negotiated caps.
14211           When connecting the vaapidecoder to the vaapipostprocessor, the last one will
14212           resize the frame to the negotiated, if and only if, some other parameter is
14213           activated to avoid the passthrough. If it is not, the surface won't be mapped
14214           into a image. If not, the image won't be resized and the output buffer would be
14215           mapped.
14216           This patch will break the passthrough if the allocation query is different
14217           from the negotiation caps, forcing the resizing.
14218           https://bugzilla.gnome.org/show_bug.cgi?id=765095
14219
14220 2016-04-05 13:09:37 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14221
14222         * gst/vaapi/gstvaapidecode.c:
14223           vaapidecode: improve code readability
14224           No functional changes.
14225
14226 2016-04-05 13:37:40 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14227
14228         * gst/vaapi/gstvaapidecode.c:
14229           vaapidecode: move GstCapsFeatures near to its use
14230           Move the handling of the GstCapsFeatures just after it is used, in order to
14231           avoid handling its memory.
14232
14233 2016-04-05 13:07:14 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14234
14235         * gst/vaapi/gstvaapidecode.c:
14236           vaapidecode: caps negotiation checks
14237           Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
14238           compiled with GL support.
14239
14240 2016-03-10 16:43:16 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14241
14242         * gst/vaapi/gstvaapidecode.c:
14243         * gst/vaapi/gstvaapipluginbase.c:
14244         * gst/vaapi/gstvaapipluginbase.h:
14245         * gst/vaapi/gstvaapipostproc.c:
14246           plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
14247
14248 2016-03-10 16:42:04 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14249
14250         * gst/vaapi/gstvaapidecode.c:
14251           vaapidecode: bail early if not caps in decide_allocation()
14252
14253 2016-03-29 14:17:54 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14254
14255         * gst/vaapi/gstvaapidecode.c:
14256         * gst/vaapi/gstvaapipluginbase.c:
14257         * gst/vaapi/gstvaapipluginutil.c:
14258         * gst/vaapi/gstvaapipluginutil.h:
14259         * gst/vaapi/gstvaapipostproc.c:
14260           plugin: use allowed caps filter from element
14261           Instead of using the srcpad template caps for filtering the peer caps, the
14262           function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
14263           for the element's allowed caps.
14264           With this modification, the vaapipostproc element simplifies a bit its code.
14265           https://bugzilla.gnome.org/show_bug.cgi?id=765223
14266
14267 2016-04-18 17:28:51 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14268
14269         * gst/vaapi/gstvaapidecode.c:
14270         * gst/vaapi/gstvaapipluginbase.c:
14271         * gst/vaapi/gstvaapipluginutil.c:
14272         * gst/vaapi/gstvaapipluginutil.h:
14273         * gst/vaapi/gstvaapipostproc.c:
14274           plugin: remove function parameter
14275           The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
14276           saved if the out format is used for both: in and out. Thus the code is more
14277           readable.
14278           https://bugzilla.gnome.org/show_bug.cgi?id=765223
14279
14280 2016-04-18 17:17:58 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14281
14282         * gst/vaapi/gstvaapidecode.c:
14283           vaapidecode: warns if driver will do color conversions
14284           If the downstream feature is system memory, the surface has to be mapped,
14285           hence a warning message is logged saying that the driver has to do color
14286           conversions. This might be troublesome because not all the color conversion
14287           combinations are supported by the VA-API drivers, and there is not a reliable
14288           way to know them before hand.
14289           https://bugzilla.gnome.org/show_bug.cgi?id=765223
14290
14291 2016-03-29 13:28:27 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14292
14293         * gst/vaapi/gstvaapipluginutil.c:
14294           plugin: honour negotiated format
14295           Instead of setting the requested format by the caller, the function
14296           gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
14297           the negotiated format.
14298           A new helper function was added: gst_vaapi_find_preferred_format(), which,
14299           given the format list from the negotiated caps, will choose the best one, if
14300           possible, given the native format.
14301           https://bugzilla.gnome.org/show_bug.cgi?id=765223
14302
14303 2016-03-28 19:26:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14304
14305         * gst/vaapi/gstvaapipluginutil.c:
14306           plugin: simplify caps feature selection
14307           This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
14308           Instead of intersecting custom caps to find the preferred feature, the peer
14309           caps are traversed in order to find the preferred feature, according to an
14310           ordered feature priority list.
14311           In the case of GLTextureUploadMeta, the colour format is computed using
14312           GstVideoInfo of the selected fixed caps.
14313           https://bugzilla.gnome.org/show_bug.cgi?id=765223
14314
14315 2016-03-31 16:39:08 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14316
14317         * gst/vaapi/gstvaapidecode.c:
14318           vaapidecode: use macros for GstVideoInfo
14319           Instead of accessing directly to the members of the structure, use the macros.
14320
14321 2016-04-14 17:02:23 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14322
14323         * gst/vaapi/gstvaapidecode.c:
14324           vaapidecode: refactor is_display_resolution_changed()
14325           Make the comparisons more readable and simple.
14326           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14327
14328 2016-04-14 16:43:07 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14329
14330         * gst/vaapi/gstvaapidecode.c:
14331         * gst/vaapi/gstvaapidecode.h:
14332           vaapidecode: keep only display_{width,height}
14333           Instead of keeping the structure GstVideoInfo when we are using its width and
14334           height, we only keep these two guints.
14335           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14336
14337 2016-04-14 16:31:34 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14338
14339         * gst/vaapi/gstvaapidecode.c:
14340           vaapidecode: decoded_info is valid at src caps update
14341           As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
14342           is called, then we don't need to verify or replace it with the sinkpad info
14343           (reference state).
14344           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14345
14346 2016-04-14 16:22:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14347
14348         * gst/vaapi/gstvaapidecode.c:
14349           vaapidecode: always a valid format in decoded_info
14350           Always set a valid format in decoded_info class variable.
14351           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14352
14353 2016-03-25 15:31:28 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14354
14355         * gst/vaapi/gstvaapidecode.c:
14356           vaapidecode: code style fixes
14357           No functional changes.
14358           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14359
14360 2016-04-14 16:10:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14361
14362         * gst/vaapi/gstvaapidecode.c:
14363           vaapidecode: init {decoded,display}_info at open()
14364           It is required to initialize {decoded,display}_info variables when the decoder
14365           is open, not only at instance initialization.
14366           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14367
14368 2016-03-28 15:30:28 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14369
14370         * gst/vaapi/gstvaapidecode.c:
14371         * gst/vaapi/gstvaapidecode.h:
14372           vaapidecode: remove spurious class variables
14373           active, do_pool_renego and do_outstate_renego class variables were used to
14374           indicate when negotiate downstream once, but now that each time a new surface
14375           resolution is pop out a renegotation verified, these variable are not required
14376           anymore.
14377           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14378
14379 2016-04-14 15:46:32 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14380
14381         * gst/vaapi/gstvaapidecode.c:
14382         * gst/vaapi/gstvaapipluginbase.c:
14383         * gst/vaapi/gstvaapipluginbase.h:
14384         * gst/vaapi/gstvaapipostproc.c:
14385           remove custom allocation query
14386           When resolving bug 753914, a custom allocation query was added, overlapping
14387           the responsibilities of GstVideoDecoder.
14388           But with the merge of the patches from bug 764421 this overlapping was not
14389           required anymore. This patch restores this situation setting the
14390           allocation_caps in the GstVideoCodecState when needed.
14391           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14392
14393 2016-04-14 10:04:47 +0100  Julien Isorce <j.isorce@samsung.com>
14394
14395         * common:
14396           Automatic update of common submodule
14397           From 6f2d209 to ac2f647
14398
14399 2016-04-13 15:44:20 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14400
14401         * gst/vaapi/gstvaapidecode.c:
14402         * gst/vaapi/gstvaapidecodebin.c:
14403         * gst/vaapi/gstvaapipostproc.c:
14404           plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
14405           The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
14406           their caps templates if they were not compiled either with GLX or EGL support.
14407
14408 2016-04-13 20:33:32 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14409
14410         * gst/vaapi/gstvaapipluginutil.c:
14411           plugins: fix compilation when EGL/GLX is disabled
14412           The compiler might complain of gst_vaapi_create_display_from_handle() being
14413           unused if both EGL and GLX are disabled. This patch avoid that compilation
14414           error.
14415
14416 2016-04-13 14:09:00 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
14417
14418         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14419           libs: fix deleting a GstVaapiCodedBufferPool object
14420           Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
14421           Otherwise it is not called when the pool is destroyed and all objects
14422           referenced by the GstVaapiVideoPool are never released.
14423           https://bugzilla.gnome.org/show_bug.cgi?id=764993
14424
14425 2016-04-07 18:03:42 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14426
14427         * gst-libs/gst/vaapi/gstvaapisurface.c:
14428           surface: destroy derived image
14429           If gst_vaapi_image_new_with_image() fails, the created derived image should be
14430           destroyed, otherwise the surface cannot be processed because is being used.
14431           https://bugzilla.gnome.org/show_bug.cgi?id=764607
14432
14433 2016-03-18 20:00:52 -0300  Thiago Santos <thiagoss@osg.samsung.com>
14434
14435         * gst/vaapi/gstvaapidecode.c:
14436           vaapidecode: add stop function
14437           Clear any status on the current stream:
14438           stored frames, caps and decoder configuration
14439           https://bugzilla.gnome.org/show_bug.cgi?id=763460
14440
14441 2016-04-01 14:00:28 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14442
14443         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14444           decoder: vp9: Align with the ABI changes in vp9 codecparser
14445           The subsampling_x, subsampling_y, bit_depth, color_space and color_range
14446           fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
14447           These fields are only present in keyframe or intra-only frame, no need to
14448           duplicate them for inter-frames.
14449           https://bugzilla.gnome.org/show_bug.cgi?id=764082
14450
14451 2016-04-01 13:59:59 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14452
14453         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14454           decoder: vp9 : Add 10bit decoding support (Profile2)
14455           https://bugzilla.gnome.org/show_bug.cgi?id=764082
14456
14457 2016-04-01 13:57:45 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14458
14459         * gst-libs/gst/vaapi/gstvaapiprofile.c:
14460         * gst-libs/gst/vaapi/gstvaapiprofile.h:
14461           gstvaapiporfile: Add more VP9 profile definitions
14462           https://bugzilla.gnome.org/show_bug.cgi?id=764082
14463
14464 2016-02-03 20:34:49 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14465
14466         * Makefile.am:
14467         * configure.ac:
14468           build: possibility to disable tests
14469           The configuration option --disable-examples will disable the compilation of
14470           the sample apps in tests/ directory.
14471
14472 2016-03-29 14:25:55 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14473
14474         * gst/vaapi/gstvaapiencode_h264.c:
14475         * gst/vaapi/gstvaapiencode_h265.c:
14476         * gst/vaapi/gstvaapiencode_jpeg.c:
14477         * gst/vaapi/gstvaapiencode_mpeg2.c:
14478         * gst/vaapi/gstvaapiencode_vp8.c:
14479         * gst/vaapi/gstvaapipluginutil.h:
14480         * gst/vaapi/gstvaapisink.c:
14481           unify caps template for VAAPI encoders and decoders
14482           There is no difference in VAAPI surface caps between encoders and decoders.
14483           Thus, the patch makes a simplification by removing encoders specific caps and
14484           shares the same definition of VAAPI surfaces caps for all the elements.
14485
14486 2016-03-10 17:42:55 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14487
14488         * gst/vaapi/gstvaapidecode.c:
14489           vaapidecode: move gst_vaapidecode_negotiate() code
14490           With it we can remove a function declaration, making the code a bit
14491           more readable.
14492           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14493
14494 2016-03-29 13:50:00 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14495
14496         * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14497         * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14498         * gst/vaapi/gstvaapidecode.c:
14499           docs: generate vaapijpegdec documentation
14500           https://bugzilla.gnome.org/show_bug.cgi?id=764314
14501
14502 2016-03-30 14:37:21 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14503
14504         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14505           decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
14506           The array_completeness, reserved bit and num_nal_units fields
14507           in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
14508           but not for each occurance of similar headers.
14509           https://bugzilla.gnome.org/show_bug.cgi?id=764274
14510
14511 2016-03-29 15:34:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14512
14513         * gst-libs/gst/vaapi/video-format.c:
14514           video-format: Keep the HW order preference while mapping to GstVideoFormats
14515
14516 2016-03-29 15:02:46 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14517
14518         * gst/vaapi/gstvaapidecode.c:
14519         * gst/vaapi/gstvaapipluginbase.c:
14520         * gst/vaapi/gstvaapipluginutil.c:
14521         * gst/vaapi/gstvaapipluginutil.h:
14522         * gst/vaapi/gstvaapivideomemory.c:
14523           gst/vaapi: keep precedence for NV12 over I420
14524           Use NV12 as default "assumption" format all over.
14525           NV12 is the default high priority format used my most of the
14526           vaapi-drivers.
14527
14528 2016-03-29 14:34:37 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14529
14530         * gst/vaapi/gstvaapidecode.c:
14531           vaapidecode: Use video format derived from decoded surface as default src pad format
14532           Use the surface format derived from first decoded surface
14533           to negotiate the downstream video format capabilities.
14534           https://bugzilla.gnome.org/show_bug.cgi?id=759181
14535
14536 2016-03-29 14:34:00 +0300  Scott D Phillips <scott.d.phillips@intel.com>
14537
14538         * gst-libs/gst/vaapi/gstvaapiimage.c:
14539         * gst-libs/gst/vaapi/video-format.c:
14540         * gst/vaapi/gstvaapidecode.c:
14541         * gst/vaapi/gstvaapipluginutil.h:
14542         * gst/vaapi/gstvaapisink.c:
14543           Add P010 video format support
14544           The P010 video format is the native format used by the vaapi intel driver
14545           for HEVCMain10 decode . Add support for planes and images of this video format.
14546           https://bugzilla.gnome.org/show_bug.cgi?id=759181
14547
14548 2016-03-27 09:11:00 +0000  Stephen <elfarto@elfarto.com>
14549
14550         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14551           libs: x11: allows 30-bit colour depth
14552           The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
14553           fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
14554           with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
14555           work as expected.
14556           https://bugzilla.gnome.org/show_bug.cgi?id=764256
14557
14558 2016-03-28 13:13:56 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14559
14560         * gst/vaapi/gstvaapivideometa_texture.c:
14561           gltextureupload: use an array for texture type
14562           Instead of using a single value for the texture type, use an array with 4
14563           elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
14564           overflow.
14565           https://bugzilla.gnome.org/show_bug.cgi?id=764231
14566
14567 2016-03-24 15:09:43 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14568
14569         * gst/vaapi/gstvaapidecode.c:
14570         * gst/vaapi/gstvaapipluginbase.c:
14571           vaapidecode: Fix decide_allocation handling
14572           Set the already configured pool in decide_allocation query
14573           in cases where pool renegotiation is not required.
14574           https://bugzilla.gnome.org/show_bug.cgi?id=753914
14575
14576 2016-03-24 15:09:15 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14577
14578         * gst/vaapi/gstvaapidecode.c:
14579           vaapidecode: Derive and save the decoded surface format
14580           After the decoding of first frame, try to extract the exact
14581           decoded surface format using vaDeriveImage and keep this
14582           as the format in decoded_info.
14583           https://bugzilla.gnome.org/show_bug.cgi?id=753914
14584
14585 2016-03-24 15:08:50 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14586
14587         * gst/vaapi/gstvaapidecode.c:
14588         * gst/vaapi/gstvaapidecode.h:
14589         * gst/vaapi/gstvaapipluginbase.c:
14590         * gst/vaapi/gstvaapipluginbase.h:
14591         * gst/vaapi/gstvaapipostproc.c:
14592           Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
14593           -- Maintaing decoded surface resoluton and actual display resoultion separately
14594           -- Before pushing every frames downstream, check for the requirement of pool negoation and
14595           output_state negotiation: This is needed to avoid multiple issuses with cropping,
14596           multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
14597           possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
14598           We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
14599           This is slight overhead, but safe enough. Optimization could be possible though.
14600           https://bugzilla.gnome.org/show_bug.cgi?id=753914
14601
14602 2016-03-24 15:08:27 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14603
14604         * gst/vaapi/gstvaapidecode.c:
14605           vaapidecode: Delay the output format setting until we have a decoded surface
14606           This will help to consoidate the out caps negotiation to a single place,
14607           which will make the code simpler, allows to get the exact decoded format
14608           if needed and the selected chroma type too.
14609           https://bugzilla.gnome.org/show_bug.cgi?id=753914
14610
14611 2016-03-24 13:36:24 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14612
14613         * gst/vaapi/gstvaapidecode.h:
14614           vaapidecode: GST_VAAPIDECODE macro is a cast
14615           This patch is the continuation of commit 1e1d3b1d because the function
14616           gst_vaapidecode_get_type() got undefined since then.
14617           Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
14618           structure. The rest of the GObject handling macros were deleted too.
14619
14620 2016-03-24 13:34:18 +0200  Sebastian Dröge <sebastian@centricular.com>
14621
14622         * configure.ac:
14623           Back to development
14624
14625 === release 1.8.0 ===
14626
14627 2016-03-24 13:11:05 +0200  Sebastian Dröge <sebastian@centricular.com>
14628
14629         * ChangeLog:
14630         * NEWS:
14631         * configure.ac:
14632         * gstreamer-vaapi.doap:
14633           Release 1.8.0
14634
14635 === release 1.7.91 ===
14636
14637 2016-03-15 12:39:20 +0200  Sebastian Dröge <sebastian@centricular.com>
14638
14639         * ChangeLog:
14640         * NEWS:
14641         * configure.ac:
14642         * gstreamer-vaapi.doap:
14643           Release 1.7.91
14644
14645 2016-03-11 17:44:07 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14646
14647         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14648           decoder: h265: Fix offset calculation in codec_data parsing
14649           https://bugzilla.gnome.org/show_bug.cgi?id=762922
14650
14651 2016-03-09 20:26:31 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14652
14653         * gst/vaapi/gstvaapidecodebin.c:
14654           vaapidecodebin: don't handle jpeg decoding
14655           As JPEG decoder has been split and demoted, it cannot be handled by
14656           vaapidecodebin
14657           Added a fixme comment regarding the future removal of vaapidecode.
14658           https://bugzilla.gnome.org/show_bug.cgi?id=734093
14659
14660 2016-03-09 20:25:08 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14661
14662         * gst/vaapi/gstvaapidecode.c:
14663           vaapidecode: split out jpeg decoder
14664           Split, as a different element, the JPEG decoder.
14665           https://bugzilla.gnome.org/show_bug.cgi?id=734093
14666
14667 2016-03-09 18:41:49 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14668
14669         * gst/vaapi/gstvaapi.c:
14670         * gst/vaapi/gstvaapidecode.c:
14671         * gst/vaapi/gstvaapidecode.h:
14672           vaapidecode: register decoder with internal GType
14673           Don't expose the the vaapidecode GType, instead expose a function
14674           which will register element.
14675           This is the first step to split the decoder by codecs.
14676           https://bugzilla.gnome.org/show_bug.cgi?id=734093
14677
14678 2016-03-10 12:47:49 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14679
14680         * gst/vaapi/gstvaapidecode.c:
14681           vaapidecode: remove unused function declaration
14682           There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
14683           code-style of the other pre-declared functions.
14684
14685 2016-03-09 18:58:13 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14686
14687         * docs/plugins/Makefile.am:
14688           build: git ignore gtkdoc generated files
14689
14690 2016-03-09 18:55:39 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14691
14692         * m4/Makefile.am:
14693           build: handle git ignore in m4 directory
14694
14695 2016-03-04 20:17:54 -0300  Thiago Santos <thiagoss@osg.samsung.com>
14696
14697         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14698           vaapidecoder_h265: plug leak of h265 parsing info
14699           If something goes wrong while parsing, the info object is
14700           being leaked
14701           https://bugzilla.gnome.org/show_bug.cgi?id=763121
14702
14703 2016-03-04 20:17:20 -0300  Thiago Santos <thiagoss@osg.samsung.com>
14704
14705         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14706           vaapidecoder_h264: plug leak of h264 parsing info
14707           If something goes wrong while parsing, the info object is
14708           being leaked
14709           https://bugzilla.gnome.org/show_bug.cgi?id=763121
14710
14711 2016-03-09 11:03:28 +0900  Vineeth TM <vineeth.tm@samsung.com>
14712
14713         * gst/vaapi/gstvaapipluginutil.c:
14714           plugins: fix gstgl and vaapi memory leaks
14715           1\ Unref gl_display and gl_window as soon they are not needed.
14716           2\ Remove an unneeded display type check, since is handled by
14717           gst_vaapi_created_display_from_handle()
14718           3\ Unref vaapi's display if the display cannot be bind to a GL API.
14719           Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14720           https://bugzilla.gnome.org/show_bug.cgi?id=763354
14721
14722 2016-03-09 14:13:24 +0900  Vineeth TM <vineeth.tm@samsung.com>
14723
14724         * gst-libs/gst/vaapi/gstvaapidisplay.c:
14725           vaapidisplay: Fix uninitialized value error for VA attribute
14726           https://bugzilla.gnome.org/show_bug.cgi?id=763362
14727
14728 2016-03-08 10:47:56 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14729
14730         * gst/vaapi/gstvaapidecode.c:
14731         * gst/vaapi/gstvaapiencode.c:
14732           plugins: proxy information from downstream caps
14733           Propagate to upstream the downstream information, such as fps, par, etc.
14734           This will fix several "getcaps" critical warnings in gst-validate.
14735           https://bugzilla.gnome.org/show_bug.cgi?id=763300
14736
14737 2016-03-04 10:51:42 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14738
14739         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14740           decoder: vp9: Assign values for profile and bit_depth from frame header
14741           bit_depth field has added only in VA-API 0.39.0, added version check.
14742
14743 2016-03-04 09:12:13 +0200  Sebastian Dröge <sebastian@centricular.com>
14744
14745         * Makefile.am:
14746           build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
14747           https://bugzilla.gnome.org/show_bug.cgi?id=763067
14748
14749 === release 1.7.90 ===
14750
14751 2016-03-01 19:23:51 +0200  Sebastian Dröge <sebastian@centricular.com>
14752
14753         * ChangeLog:
14754         * NEWS:
14755         * configure.ac:
14756         * gstreamer-vaapi.doap:
14757           Release 1.7.90
14758
14759 2016-03-01 16:14:47 +0200  Sebastian Dröge <sebastian@centricular.com>
14760
14761         * configure.ac:
14762           configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
14763
14764 2016-03-01 11:35:49 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14765
14766         * gst/vaapi/gstvaapidecode.c:
14767           vaapidecode: intersect with filter in getcaps()
14768           In commit 6034734d I forgot to add the caps filter intersection in the
14769           getcaps() vmethod generating a regression when a capsfilter is set in the
14770           pipeline.
14771           This commit adds the caps filter intersection.
14772
14773 2016-02-29 11:55:27 +0200  Lim Siew Hoon <siew.hoon.lim@intel.com>
14774
14775         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
14776           Add memset to initialize value for VAEncSliceParameterBufferJPEG
14777           https://bugzilla.gnome.org/show_bug.cgi?id=762850
14778
14779 2016-02-26 12:42:46 +0200  Sebastian Dröge <sebastian@centricular.com>
14780
14781         * common:
14782           Automatic update of common submodule
14783           From b64f03f to 6f2d209
14784
14785 2016-02-24 12:36:33 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14786
14787         * Makefile.am:
14788         * configure.ac:
14789         * m4/Makefile.am:
14790           build: add m4 directory
14791           Instead of rely on the automatic creation of m4 directory by aclocal, we
14792           already control it. Later we could create our own m4 scripts in order to
14793           unclutter configure.ac
14794           https://bugzilla.gnome.org/show_bug.cgi?id=762528
14795
14796 2016-02-23 10:55:02 +0200  Scott D Phillips <scott.d.phillips@intel.com>
14797
14798         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14799           decoder: hevc: Fill dependent slice segment headers while parsing
14800           Copy the data into the dependent slice segment header from the
14801           corresponding independent slice segment header during parsing.
14802           Previously the reference to the "previous" independent header was
14803           held through the parsing phase and then dereferenced during the
14804           decoding phase. This caused all dependent headers to be populated
14805           with the data of the AU's last independent header instead of the
14806           proper corresponding header.
14807           https://bugzilla.gnome.org/show_bug.cgi?id=762352
14808           Changes since v1:
14809           - Reworded commit message
14810
14811 2016-02-17 13:43:48 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14812
14813         * gst/vaapi/gstvaapidecode.c:
14814           vaapidecode: use video decoder getcaps()
14815           The usage of getcaps() vmethod is preferred than to handle manually the sink's
14816           caps query.
14817           In order to avoid function declarations, this patch moves the class_init()
14818           method to the end of the file.
14819
14820 2016-02-17 12:51:45 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14821
14822         * gst/vaapi/gstvaapipluginbase.c:
14823           plugins: remove deprecated code
14824           Since we are only supporting current GStreamer version, since 1.3
14825           gst_buffer_pool_config_add_option() checks if the option to add is
14826           already set. There is no need to do it ourselves.
14827
14828 2016-02-19 19:03:44 -0300  Thiago Santos <thiagoss@osg.samsung.com>
14829
14830         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14831           vaapidecoder_h265: fix parsing of NALU aligned data
14832           Don't assume the whole buffer is a single NAL, instead look for the
14833           next start code in case there are multiple NALs per buffer.
14834           https://bugzilla.gnome.org/show_bug.cgi?id=762328
14835
14836 2016-02-19 11:10:25 -0300  Thiago Santos <thiagoss@osg.samsung.com>
14837
14838         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14839           vaapidecoder_h264: fix parsing of NALU aligned data
14840           Don't assume the whole buffer is a single NAL, instead look for the
14841           next start code in case there are multiple NALs per buffer.
14842           https://bugzilla.gnome.org/show_bug.cgi?id=762328
14843
14844 2016-02-18 10:13:53 +0900  Vineeth TM <vineeth.tm@samsung.com>
14845
14846         * gst/vaapi/gstvaapisink.c:
14847           vaapisink: Fix event,pad,structure memory leaks
14848           https://bugzilla.gnome.org/show_bug.cgi?id=762229
14849
14850 2016-02-17 15:40:54 +0200  Lim Siew Hoon <siew.hoon.lim@intel.com>
14851
14852         * gst/vaapi/gstvaapipluginbase.c:
14853           Add icamerasrc as dmabuf capable peer element
14854           icamerasrc is another gstreamer plugin using to capture RAW
14855           frames from camera device. It is based on libcamhal library.
14856           There are some properties available to control icamera behavior.
14857           Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
14858           Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
14859           https://bugzilla.gnome.org/show_bug.cgi?id=759481
14860           Fixme: This is the similar workaround we done for v4l2src.
14861           The workaround will be removed once we fix #755072
14862
14863 2016-02-17 17:15:28 +0900  Vineeth TM <vineeth.tm@samsung.com>
14864
14865         * gst/vaapi/gstvaapipluginbase.c:
14866           vaapipluginbase: Fix structure memory leak
14867           config structure is not being freed in all cases
14868           https://bugzilla.gnome.org/show_bug.cgi?id=762172
14869
14870 2016-02-17 17:20:08 +0900  Vineeth TM <vineeth.tm@samsung.com>
14871
14872         * gst/vaapi/gstvaapidecode.c:
14873           vaapidecode: Fix videocodec state memory leak
14874           When state is not NULL and either width/height of video info is 0, then state leaks
14875           https://bugzilla.gnome.org/show_bug.cgi?id=762173
14876
14877 2016-02-16 15:44:48 +0000  Tim-Philipp Müller <tim@centricular.com>
14878
14879         * gst/vaapi/gstvaapisink.c:
14880           vaapisink: post message for application for unhandled keyboard/mouse events
14881           Makes (most) keyboard shortcuts work in gst-play-1.0 when
14882           the video window has focus.
14883
14884 2016-02-16 08:48:43 +0900  Vineeth TM <vineeth.tm@samsung.com>
14885
14886         * gst/vaapi/gstvaapidecode.c:
14887           vaapidecode: Fix capsfeature memory leak
14888           https://bugzilla.gnome.org/show_bug.cgi?id=762116
14889
14890 2016-02-16 08:15:40 +0900  Vineeth TM <vineeth.tm@samsung.com>
14891
14892         * gst/vaapi/gstvaapisink.c:
14893           vaapisink: Fix capsfeature memory leak
14894           caps feature allocated is not being freeing in some cases
14895           https://bugzilla.gnome.org/show_bug.cgi?id=762111
14896
14897 2016-02-16 15:09:01 +0200  Sebastian Dröge <sebastian@centricular.com>
14898
14899         * configure.ac:
14900         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
14901         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14902         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14903         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14904         * gst-libs/gst/vaapi/gstvaapifilter.c:
14905         * gst/vaapi/gstvaapidecodebin.c:
14906         * gst/vaapi/gstvaapipluginutil.c:
14907           vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
14908
14909 2016-02-16 14:36:39 +0200  Sebastian Dröge <sebastian@centricular.com>
14910
14911         * configure.ac:
14912           configure: Fix setting of extra compiler warning flags
14913
14914 2016-02-15 18:00:49 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14915
14916         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
14917           libs: fix build error
14918           gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
14919           functions are used only when libva's API version is greater than 0.36.0
14920           This patch guards those functions completely rather than just their
14921           content. The patch is a continuation of commit 38f8fea4
14922           Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
14923           https://bugzilla.gnome.org/show_bug.cgi?id=762055
14924
14925 2016-02-15 10:01:54 +0900  Vineeth TM <vineeth.tm@samsung.com>
14926
14927         * tests/simple-encoder.c:
14928           tests: simple-encoder: fix build error
14929           argument mismatch of gsize with 'long unsigned int'
14930           https://bugzilla.gnome.org/show_bug.cgi?id=762055
14931
14932 2016-02-04 10:16:00 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14933
14934         * gst/vaapi/gstvaapisink.c:
14935           vaapisink: Fix wrong caps advertising
14936           The get_caps() should only report the supported formats.
14937           https://bugzilla.gnome.org/show_bug.cgi?id=761147
14938
14939 2016-02-05 18:11:29 -0300  Thiago Santos <thiagoss@osg.samsung.com>
14940
14941         * common:
14942           Automatic update of common submodule
14943           From e97c9bb to b64f03f
14944
14945 2016-02-03 19:07:40 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14946
14947         * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14948         * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14949         * gst/vaapi/gstvaapi.c:
14950         * gst/vaapi/gstvaapiencode_h264.c:
14951         * gst/vaapi/gstvaapiencode_h265.c:
14952         * gst/vaapi/gstvaapiencode_jpeg.c:
14953         * gst/vaapi/gstvaapiencode_mpeg2.c:
14954         * gst/vaapi/gstvaapiencode_vp8.c:
14955           rename encoders to vaapi{codec}enc
14956           Trying to comply with GStreamer's element names, this patch renames the
14957           encoders using the name format vaapi{codec}enc.
14958           In this way, the plugin documentation is linked correctly.
14959           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14960
14961 2016-02-03 18:42:36 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14962
14963         * configure.ac:
14964           Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
14965           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14966
14967 2016-02-03 18:02:21 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14968
14969         * configure.ac:
14970           build: remove vp9 parser check
14971           Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
14972           the check of the parser, as we did for the others.
14973           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14974
14975 2016-02-03 17:06:48 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14976
14977         * common:
14978         * configure.ac:
14979           Back to development
14980           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14981
14982 === release 1.6.0 ===
14983
14984 2016-02-03 16:53:41 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14985
14986         * configure.ac:
14987           Release 1.6.0
14988
14989 2016-02-03 16:45:18 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14990
14991         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
14992         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14993         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14994           libs: fix compiler warnings
14995           After setting the release flags, the compiler warns about a couple
14996           initialized variables.
14997           Also marked a couple of set variables as unused, because they are only
14998           used for assertion.
14999           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15000
15001 2016-01-29 20:41:27 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15002
15003         * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
15004         * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
15005         * gst/vaapi/gstvaapidecode.c:
15006         * gst/vaapi/gstvaapidecodebin.c:
15007         * gst/vaapi/gstvaapiencode_h264.c:
15008         * gst/vaapi/gstvaapiencode_h265.c:
15009         * gst/vaapi/gstvaapiencode_jpeg.c:
15010         * gst/vaapi/gstvaapiencode_mpeg2.c:
15011         * gst/vaapi/gstvaapiencode_vp8.c:
15012         * gst/vaapi/gstvaapipostproc.c:
15013         * gst/vaapi/gstvaapisink.c:
15014           docs: update plugin documentation
15015           Update all the documentation of elements of the vaapi plugin.
15016           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15017
15018 2016-01-29 15:39:09 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15019
15020         * Makefile.am:
15021         * configure.ac:
15022         * docs/Makefile.am:
15023         * docs/plugins/Makefile.am:
15024         * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
15025         * docs/plugins/gstreamer-vaapi-plugins.types:
15026         * docs/reference/Makefile.am:
15027         * docs/reference/plugins/Makefile.am:
15028         * docs/reference/plugins/plugins-sections.txt:
15029         * docs/reference/plugins/plugins.types:
15030         * docs/version.entities.in:
15031           resurrect gtk-doc machinery
15032           Our auto-generated documentation has been a bit neglected. This patch replaces
15033           the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
15034           plugins, elements and libraries.
15035           This patch also re-enables documentation generation.
15036           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15037
15038 2016-01-28 19:35:24 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15039
15040         * ChangeLog:
15041         * Makefile.am:
15042         * autogen.sh:
15043         * configure.ac:
15044           use gst-common submodule
15045           This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
15046           GStreamer common submodule.
15047           The documentation generation has been disable temporarily since it needs a
15048           major rework, which will be done in the following commit.
15049           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15050
15051 2016-01-25 16:06:03 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15052
15053         * .gitmodules:
15054         * common:
15055           add gst-common submodule
15056           Pointing to branch 1.6
15057           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15058
15059 2016-01-28 13:28:30 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15060
15061         * gstreamer-vaapi.doap:
15062           add doap descriptor
15063           DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
15064           describe software projects, in particular free and open source software.
15065           The description is used in GStreamer as in many other open source projects.
15066           This patch adds the doap description of this project.
15067           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15068
15069 2016-02-03 11:50:13 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15070
15071         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
15072         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15073         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
15074         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
15075         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15076         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
15077         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
15078         * gst-libs/gst/vaapi/gstvaapiimage.c:
15079         * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
15080         * gst-libs/gst/vaapi/gstvaapipixmap.c:
15081         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
15082         * gst-libs/gst/vaapi/gstvaapiprofile.c:
15083         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
15084           libs: humongous code style fix
15085           As part of the upstreaming process of gstreamer-vaapi into the GStreamer
15086           umbrella, we need to comply with the project's code style. This meant to
15087           change a lot of code.
15088           It was decided to use a single massive patch to update the code style.
15089           I would like to apologize with the original developers of this code because of
15090           the history breakage.
15091           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15092
15093 2016-02-03 11:04:15 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15094
15095         * gst-libs/gst/vaapi/gstvaapicontext.c:
15096         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15097         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
15098         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
15099         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
15100         * gst/vaapi/gstvaapivideomemory.c:
15101           libs: small refactors to enhance the code style
15102           As gst-indent generated ugly code in these cases, this patch changes the used
15103           idiomatic into other one.
15104           No functional changes were introduced.
15105           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15106
15107 2016-02-02 17:59:57 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15108
15109         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
15110         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15111         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
15112         * gst-libs/gst/vaapi/gstvaapidecoder.c:
15113         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15114         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
15115         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15116         * gst-libs/gst/vaapi/gstvaapidisplay.c:
15117         * gst-libs/gst/vaapi/gstvaapiencoder.c:
15118         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15119         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
15120         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
15121         * gst-libs/gst/vaapi/gstvaapifilter.c:
15122         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15123         * gst-libs/gst/vaapi/gstvaapisurface.c:
15124         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15125         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
15126         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15127         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15128         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
15129         * gst-libs/gst/vaapi/gstvaapiwindow.c:
15130         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15131           libs: small code style fixes
15132           This a set of small code style fixes detected as-is by gst-indent.
15133           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15134
15135 2016-02-02 17:50:19 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15136
15137         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
15138         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15139         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15140         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15141         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
15142         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15143         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
15144         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
15145         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15146           libs: trivial comment style fixes
15147           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15148
15149 2016-02-02 17:31:02 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15150
15151         * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
15152         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15153           libs: avoid gst-indent mess up
15154           Guard pieces of code to avoid gst-ident to mess up the following code.
15155           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15156
15157 2016-02-03 12:17:59 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15158
15159         * gst/vaapi/gstvaapidecode.c:
15160         * gst/vaapi/gstvaapidecodebin.c:
15161         * gst/vaapi/gstvaapipluginutil.c:
15162         * gst/vaapi/gstvaapisink.c:
15163         * gst/vaapi/gstvaapivideomemory.c:
15164           plugins: fix code style
15165           Minor code style changes by executing gst-indent in gst/vaapi directory.
15166           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15167
15168 2016-02-01 13:22:10 +0000  Tim-Philipp Müller <tim@centricular.com>
15169
15170         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15171         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15172           Fix some more compiler warning
15173           Two (false) compiler warnings about variables potentially
15174           being used uninitialized, and one about a variable being
15175           set but not used.
15176           https://bugzilla.gnome.org/show_bug.cgi?id=759192
15177
15178 2016-02-01 13:02:13 +0000  Tim-Philipp Müller <tim@centricular.com>
15179
15180         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15181         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15182         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15183         * gst-libs/gst/vaapi/gstvaapifilter.c:
15184         * gst/vaapi/gstvaapidecode.c:
15185         * gst/vaapi/gstvaapipluginbase.c:
15186         * gst/vaapi/gstvaapipluginutil.c:
15187         * gst/vaapi/gstvaapipostproc.c:
15188         * tests/simple-encoder.c:
15189         * tests/test-filter.c:
15190           vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
15191           Declare variables at the beginning of a code block, which
15192           is how it's done in GStreamer.
15193           https://bugzilla.gnome.org/show_bug.cgi?id=759192
15194
15195 2016-01-28 14:21:04 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15196
15197         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15198           decoder: vp9: Fix crop rectangle setting
15199           Align with software vp9dec behaviour: Add crop rectangle
15200           only if display_width/display_height is less than the
15201           frame_hdr->width/frame_hdr->height
15202
15203 2016-01-27 08:56:45 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15204
15205         * gst/vaapi/gstvaapidecode.c:
15206           vaapidecode: Fix renegotiation for resolution change
15207           Always renegotiate the pool if the immediate frame which going
15208           to be pushed has a different un-cropped resolution than the already
15209           configured one.
15210
15211 2016-01-29 15:51:49 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15212
15213         * gst/vaapi/gstvaapipluginbase.h:
15214           plugins: use the same pre-processor macro
15215           In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
15216           code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
15217           HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
15218           We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
15219           in the header file.
15220           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15221
15222 2016-01-29 18:06:29 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15223
15224         * gst-libs/gst/vaapi/gstvaapidecoder.c:
15225           decoder: update a deprecated function
15226           Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
15227           deprecated since GStreamer 1.0.
15228           This patch replace it with gst_adapter_prev_pts()
15229           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15230
15231 2016-01-29 13:13:56 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15232
15233         * configure.ac:
15234           build: honor configure's cache
15235           The user might enable --config-cache when calling configure script. If so, our
15236           configuration variables will not be correctly calculated.
15237           This patch extracts the value of our variables either from the cache or from
15238           the operation result.
15239           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15240
15241 2016-01-28 19:12:13 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15242
15243         * configure.ac:
15244           build: use common version variables
15245           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15246
15247 2016-01-28 19:01:43 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15248
15249         * configure.ac:
15250           build: hard-code an unneeded macro
15251           That macro is required for EGL's dynamic module loading, but since
15252           gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
15253           That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
15254           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15255
15256 2016-01-28 17:14:51 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15257
15258         * configure.ac:
15259           build: refactorization of dependency tracking
15260           This patch tries to avoid branching in configure.ac using a more functional
15261           approach in macros usage.
15262           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15263
15264 2016-01-29 12:34:30 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15265
15266         * configure.ac:
15267           build: check for OpenGL either GLX or EGL are requested
15268           Refactor some code in configure.ac to centralize $enable_opengl definition.
15269           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15270
15271 2016-01-28 16:55:44 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15272
15273         * configure.ac:
15274           build: indent and add square braces
15275           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15276
15277 2016-01-28 16:50:39 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15278
15279         * configure.ac:
15280           build: upgrade autotools version dependency
15281           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15282
15283 2016-01-29 11:14:34 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15284
15285         * configure.ac:
15286           build: enhance string comparisons
15287           Add a 'x' as a prefix in string comparisons to watch out for edge cases where
15288           the string is empty or undefined.
15289           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15290
15291 2016-01-28 14:29:16 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15292
15293         * configure.ac:
15294           build: remove unused variables
15295           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15296
15297 2016-01-27 19:00:51 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15298
15299         * configure.ac:
15300           build: remove check for old version of gstreamer
15301           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15302
15303 2016-01-27 17:55:02 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15304
15305         * configure.ac:
15306           build: remove GStreamer's parsers checks
15307           This patch removes almost all the parsers check since they are already in place,
15308           with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
15309           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15310
15311 2016-01-29 12:11:17 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15312
15313         * configure.ac:
15314         * gst/vaapi/Makefile.am:
15315           build: add gstreamer-pbutils dependency
15316           This dependency was added in gstvaapidecodebin with the call
15317           gst_missing_element_message_new().
15318           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15319
15320 2016-01-27 17:53:59 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15321
15322         * configure.ac:
15323           build: fix variable declaration
15324           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15325
15326 2016-01-27 17:47:32 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15327
15328         * gst-libs/gst/vaapi/Makefile.am:
15329           build: fix when HEVC decoder is disabled
15330           This a very pathological situation: when we have a HEVC encoder but not a HEVC
15331           decoder.
15332           The encoder needs functions that are only available when the decoder is
15333           enabled.
15334           This patch moves the utils functions into the generic sources, such as the
15335           rest of the utils.
15336           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15337
15338 2016-01-27 17:20:31 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15339
15340         * gst/vaapi/Makefile.am:
15341           build: remove unused EGL specific sources
15342           These Makefile variables are not used at all.
15343           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15344
15345 2016-01-27 17:19:32 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15346
15347         * gst/vaapi/Makefile.am:
15348           build: remove check for GStreamer 1.2
15349           Since we are working for current stable GStreamer 1.6
15350           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15351
15352 2016-01-26 11:49:40 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15353
15354         * gst/vaapi/gstvaapiparse.h:
15355           Remove more video parser crufts
15356           This header is not used anymore since it declares parsers that are
15357           already in GStreamer 1.6
15358           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15359
15360 2016-01-25 12:43:15 +0000  Tim-Philipp Müller <tim@centricular.com>
15361
15362         * configure.ac:
15363         * docs/reference/Makefile.am:
15364         * docs/reference/libs/Makefile.am:
15365         * docs/reference/libs/libs-docs.xml.in:
15366         * docs/reference/libs/libs-overrides.txt:
15367         * docs/reference/libs/libs-sections.txt:
15368           docs: remove library documentation which is non-public now
15369           https://bugzilla.gnome.org/show_bug.cgi?id=759192
15370
15371 2016-01-25 12:40:49 +0000  Tim-Philipp Müller <tim@centricular.com>
15372
15373         * Makefile.am:
15374         * configure.ac:
15375         * debian.upstream/Makefile.am:
15376         * debian.upstream/changelog.in:
15377         * debian.upstream/compat:
15378         * debian.upstream/control.in:
15379         * debian.upstream/copyright:
15380         * debian.upstream/gstreamer-vaapi-doc.install.in:
15381         * debian.upstream/gstreamer-vaapi.install.in:
15382         * debian.upstream/rules:
15383           Remove debian.upstream packaging
15384           https://bugzilla.gnome.org/show_bug.cgi?id=759192
15385
15386 2016-01-22 19:27:13 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15387
15388         * gst-libs/gst/vaapi/gstvaapidecoder.c:
15389         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15390         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
15391         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15392         * gst-libs/gst/vaapi/gstvaapiprofile.c:
15393         * gst/vaapi/gstcompat.h:
15394         * gst/vaapi/gstvaapi.c:
15395         * gst/vaapi/gstvaapidecode.c:
15396         * gst/vaapi/gstvaapiencode.c:
15397         * gst/vaapi/gstvaapipluginbase.c:
15398         * gst/vaapi/gstvaapipluginbase.h:
15399         * gst/vaapi/gstvaapipluginutil.c:
15400         * gst/vaapi/gstvaapisink.c:
15401           Remove old gst version guards
15402           As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
15403           all the old GStreamer version guards.
15404           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15405
15406 2016-01-22 19:23:43 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15407
15408         * gst/vaapi/gstvaapiparse.c:
15409           Remove video parser crufts
15410           We forgot to remove gstvaapiparse.c when we removed all the videoparser
15411           machinery.
15412           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15413
15414 2015-12-09 19:52:33 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15415
15416         * docs/reference/libs/Makefile.am:
15417         * docs/reference/plugins/Makefile.am:
15418         * gst-libs/gst/vaapi/Makefile.am:
15419         * gst/vaapi/Makefile.am:
15420         * tests/Makefile.am:
15421           libs: remove versioning
15422           Since we don't install libraries anymore, it makes no sense to keep
15423           versioning them according to the gstreamer's version.
15424           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15425
15426 2015-12-09 16:59:16 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15427
15428         * configure.ac:
15429         * debian.upstream/Makefile.am:
15430         * debian.upstream/control.in:
15431         * debian.upstream/libgstvaapi-dev.install.in:
15432         * debian.upstream/libgstvaapi-drm.install.in:
15433         * debian.upstream/libgstvaapi-glx.install.in:
15434         * debian.upstream/libgstvaapi-wayland.install.in:
15435         * debian.upstream/libgstvaapi-x11.install.in:
15436         * debian.upstream/libgstvaapi.install.in:
15437         * gst-libs/gst/vaapi/Makefile.am:
15438         * tests/Makefile.am:
15439           libs: make libraries no installables
15440           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15441
15442 2015-12-09 15:37:39 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15443
15444         * debian.upstream/libgstvaapi-dev.install.in:
15445         * gst-libs/gst/vaapi/Makefile.am:
15446           Do not install libgstvaapi headers
15447           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15448
15449 2016-01-19 10:40:54 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15450
15451         * Makefile.am:
15452         * configure.ac:
15453         * patches/Makefile.am:
15454         * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
15455         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15456         * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
15457         * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
15458         * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15459         * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15460         * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15461         * patches/videoparsers/Makefile.am:
15462         * patches/videoparsers/series.frag:
15463           Remove videoparser patches
15464
15465 2015-12-09 15:18:11 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15466
15467         * Makefile.am:
15468         * configure.ac:
15469         * debian.upstream/libgstvaapi-dev.install.in:
15470         * pkgconfig/Makefile.am:
15471         * pkgconfig/gstreamer-vaapi-drm.pc.in:
15472         * pkgconfig/gstreamer-vaapi-glx.pc.in:
15473         * pkgconfig/gstreamer-vaapi-wayland.pc.in:
15474         * pkgconfig/gstreamer-vaapi-x11.pc.in:
15475         * pkgconfig/gstreamer-vaapi.pc.in:
15476           Remove pkg-config files
15477           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15478
15479 2015-12-09 13:24:30 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15480
15481         * .gitmodules:
15482         * Makefile.am:
15483         * configure.ac:
15484         * ext/Makefile.am:
15485         * ext/codecparsers:
15486         * gst-libs/gst/Makefile.am:
15487         * gst-libs/gst/codecparsers/Makefile.am:
15488         * gst-libs/gst/vaapi/Makefile.am:
15489         * gst/vaapi/Makefile.am:
15490           Remove codecparsers submodule
15491           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15492
15493 2015-12-08 00:36:36 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15494
15495         * .gitmodules:
15496         * autogen.sh:
15497         * configure.ac:
15498         * debian.upstream/libgstvaapi.install.in:
15499         * ext/Makefile.am:
15500         * ext/libvpx/Makefile.am:
15501         * ext/libvpx/gstlibvpx.c:
15502         * ext/libvpx/gstlibvpx.h:
15503         * ext/libvpx/libgstcodecparsers_vpx.vers:
15504         * ext/libvpx/sources.frag:
15505         * ext/libvpx/upstream:
15506         * gst-libs/gst/codecparsers/Makefile.am:
15507         * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
15508           Remove libvpx submodule
15509           We will be using upstream codecparsers always.
15510           No more internal libvpx !
15511
15512 2015-12-09 14:12:22 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15513
15514         * configure.ac:
15515           build: fix check for GstJpegParser
15516           Right now the local JPEG parser is always compiled because the check for the
15517           upstreamed version is broken: it looks for an non existent symbol:
15518           GstJpegImage.
15519           This patch changes that check for< GstJpegFrameHdr.
15520           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15521
15522 2015-10-28 09:56:46 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
15523
15524         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15525           wayland: free the frame in frame_release_callback()
15526           This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
15527           decouple wl_buffer from frame).
15528           Otherwise the frame may be overwritten while it is still used by the
15529           compositer:
15530           The frame done callback (frame_done_callback()) is called, when the
15531           compositor is done processing the frame and hands it to the hardware.
15532           The buffer release callback (frame_release_callback()) is called when the
15533           buffer memory is no longer used.
15534           This can be quite some time later: E.g. if weston (with the DRM backend)
15535           puts the buffer on a hardware plane, then then buffer release callback is
15536           called when the kernel is done with the buffer. This is usually when the
15537           next frame is shown, so most likely after the frame done callback for the
15538           next frame!
15539           Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
15540           destroy()" the mentioned possible leak should no longer be a problem, so
15541           reverting this change should cause no leaking buffers.
15542           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15543           https://bugzilla.gnome.org/show_bug.cgi?id=758848
15544           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15545
15546 2016-01-14 17:36:24 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15547
15548         * gst/vaapi/gstvaapipostproc.c:
15549           vaapipostproc: check ANY caps at transform_caps()
15550           When transforming downstream caps we should check for ANY caps from peer pad,
15551           otherwise we get a segmentation fault.
15552           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15553           https://bugzilla.gnome.org/show_bug.cgi?id=759893
15554
15555 2016-01-13 19:17:02 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15556
15557         * gst/vaapi/gstvaapisink.c:
15558           vaapisink: ignore frame if its upload failed
15559           When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
15560           into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
15561           ignored by the vaapisink, leading to a segmentation fault.
15562           This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
15563           returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
15564           segmentation fault, but doing and effort to continue rendering. This is
15565           the same behavior of ximagesink.
15566           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15567           https://bugzilla.gnome.org/show_bug.cgi?id=759332
15568
15569 2015-12-09 18:24:50 +0200  Joel Holdsworth <joel.holdsworth@vcatechnology.com>
15570
15571         * configure.ac:
15572           build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
15573           https://bugzilla.gnome.org/show_bug.cgi?id=759184
15574
15575 2015-12-08 16:14:11 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15576
15577         * gst-libs/gst/vaapi/gstvaapicontext.c:
15578         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15579         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15580         * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
15581           Add 10 HEVC 10 bit decoding support
15582           Only supporting vaapidecode ! vaapisink combination for now.
15583           Missing dependencies:
15584           1: No support for P010 video format in GStreamer
15585           2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
15586           3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
15587           through GstVideoMeta.
15588           Right now we only set chroma format (YUV420 with more than 8 bits per channel)
15589           for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
15590           of the surfaces is implementation (driver) defined, which is P010.
15591
15592 2001-01-01 04:59:28 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15593
15594         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15595         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
15596           gstvaapisurfacepool: Add new API to create surface pool based on chroma type
15597           This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
15598           creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
15599           chroam type and dimensions. The underlying format of the surfaces is
15600           implementation (driver) defined.
15601
15602 2015-12-07 19:06:28 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15603
15604         * gst-libs/gst/vaapi/gstvaapisurface.h:
15605         * gst-libs/gst/vaapi/gstvaapiutils.c:
15606           Add definitions for YUV420 with more than 8 bits per channel
15607
15608 2015-12-07 17:26:24 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15609
15610         * gst-libs/gst/vaapi/gstvaapiprofile.c:
15611           gstvaapiporfile: Fix string representation of HEVCMain10 profile
15612
15613 2015-12-07 16:17:11 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15614
15615         * configure.ac:
15616           Bump version for development
15617
15618 === release 0.7.0 ===
15619
15620 2015-12-07 12:52:10 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15621
15622         * configure.ac:
15623           0.7.0
15624
15625 2015-12-07 12:49:05 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15626
15627         * NEWS:
15628           NEWS: Updates
15629
15630 2015-12-07 12:47:04 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15631
15632         * AUTHORS:
15633           AUTHORS: Update
15634
15635 2015-12-07 12:39:23 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15636
15637         * README:
15638           README: Update
15639
15640 2015-11-26 10:34:12 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15641
15642         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15643           texture: detect GL version and use the proper API
15644           When receiving the texture from the application or the video sink, we must
15645           know it size and border. To query the texture the API has changed according to
15646           the OpenGL version used in the GL context of the application/vsink.
15647           This patch checks the current context API type and queries the texture
15648           according to this detected API.
15649           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15650           https://bugzilla.gnome.org/show_bug.cgi?id=753099
15651
15652 2015-11-26 10:19:32 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15653
15654         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15655           texture: check for expected target and format
15656           gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
15657           formats GL_RGBA or GL_BGRA.
15658           This patch adds a debugging verification of those values.
15659           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15660           https://bugzilla.gnome.org/show_bug.cgi?id=753099
15661
15662 2015-11-26 10:26:10 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15663
15664         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15665         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15666           libs: add gl3_bind_texture_2d()
15667           Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
15668           needed. In particular, the Intel's Mesa implementation complains if it is
15669           called.
15670           This patch add a new binding function for 2D textures, without enabling
15671           gl3_bind_texture_2d()[2].
15672           1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
15673           2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
15674           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15675           https://bugzilla.gnome.org/show_bug.cgi?id=753099
15676
15677 2015-11-26 10:14:45 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15678
15679         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15680         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15681           libs: add gl_get_current_api()
15682           In order to know which OpenGL API use, we must detect the API type of current
15683           context. This patch adds the function gl_get_current_api() which returns the
15684           OpenGL API type.
15685           This function is an adaptation of gst_gl_context_get_current_gl_api() from
15686           GstGL.
15687           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15688           https://bugzilla.gnome.org/show_bug.cgi?id=753099
15689
15690 2015-11-27 12:29:11 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15691
15692         * configure.ac:
15693         * gst-libs/gst/vaapi/Makefile.am:
15694           build: Add gmodule dependency for libgstvaapi_egl
15695           https://bugzilla.gnome.org/show_bug.cgi?id=756259
15696
15697 2015-11-27 14:24:55 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15698
15699         * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15700         * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15701         * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15702         * patches/videoparsers/series.frag:
15703           patches/videoparsers: h264: Disable passthorugh mode enabling
15704           This is a quick fix for regression introduced by the upstream
15705           commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
15706           The patch is disabling the passthrough mode, otherwise it will
15707           break multi-layer mvc stream parsing.
15708           https://bugzilla.gnome.org/show_bug.cgi?id=758656
15709
15710 2015-11-25 15:12:53 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15711
15712         * gst/vaapi/Makefile.am:
15713         * patches/videoparsers/Makefile.am:
15714         * patches/videoparsers/series.frag:
15715           build: add gsth265parse patches conditionally
15716           As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
15717           GStreamer 1.2, the patching of gsth265parse must be conditional to the target
15718           GStreamer version.
15719           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15720           https://bugzilla.gnome.org/show_bug.cgi?id=755525
15721
15722 2015-11-25 15:11:28 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15723
15724         * gst/vaapi/Makefile.am:
15725           build: declare correctly parse lib built files
15726           This is a continuation of commit fc8a0d12
15727           When declaring BUILT_SOURCES, those files should not be distributed. This
15728           patch avoids the distribution of the generated source code.
15729           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15730           https://bugzilla.gnome.org/show_bug.cgi?id=755525
15731
15732 2015-11-24 17:14:20 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15733
15734         * ext/libvpx/sources.frag:
15735           build: libvpx: Add missing source file
15736
15737 2015-11-23 17:21:23 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15738
15739         * gst/vaapi/gstvaapipostproc.c:
15740           vaapipostproc: Correctly detect the caps change
15741           This is a quick fix for regression introuduced by the
15742           commit 757833230bc73b8e3b4e31649e4618ba802bea51
15743           With out this, the gst_vaapipostproc_create() will
15744           never get invoked.
15745           https://bugzilla.gnome.org/show_bug.cgi?id=758543
15746
15747 2015-11-18 20:48:30 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15748
15749         * ext/libvpx/Makefile.am:
15750         * ext/libvpx/sources.frag:
15751           build: libvpx: update the sources lists
15752           `make dist` broke since commit f06798 (libvpx: Update the submodule to
15753           libvpx-1.4.0) because the sources.frag does not contain all the module
15754           sources.
15755           This patch updates thoroughly the sources.
15756           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15757           https://bugzilla.gnome.org/show_bug.cgi?id=755525
15758
15759 2015-11-16 17:49:01 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15760
15761         * gst/vaapi/gstvaapipostproc.c:
15762           vaapipostproc: don't set caps change at first set
15763           When the source caps change, the filter is destroyed and recreated.
15764           Nonetheless, this happens every time the vaapipostproc starts, since the caps
15765           change detection algorithm does not take in consideration when the caps are
15766           set by first time.
15767           This patch intents to be an optimization, to avoid a useless filter
15768           destroy-creation cycle when the sources caps are set for first time.
15769           The new helper function video_info_update() is a refactorization to avoid
15770           duplicated code.
15771           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15772           https://bugzilla.gnome.org/show_bug.cgi?id=758007
15773
15774 2015-11-12 16:13:25 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15775
15776         * gst/vaapi/gstvaapipostproc.c:
15777           vaapipostproc: params video_info_changed() callers
15778           The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
15779           swapped the the order. This didn't raise problems since the comparison of both
15780           structures were not affected by its semantics.
15781           But still it would be better to fix this to keep the coherence of the code.
15782           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15783           https://bugzilla.gnome.org/show_bug.cgi?id=758007
15784
15785 2015-09-24 10:35:44 +0000  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15786
15787         * gst/vaapi/Makefile.am:
15788           build: declare real built files
15789           When runnig the `make dist` target from a clean tree, it fails because
15790           if could not find the copied files from codecparsers submodule.
15791           They weren't copied because they weren't declared as built sources.
15792           This patch removes the stamp mechanism and use the actual file list to copy
15793           as the built sources. Also it fixes the duplication of the parser files.
15794           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15795           https://bugzilla.gnome.org/show_bug.cgi?id=755525
15796
15797 2015-11-17 19:37:07 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15798
15799         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15800           decoder: vp9: Fix last/golden/altref frame index setting
15801           Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
15802           based on what ever reference frame indices encoded in frame header.
15803
15804 2015-08-25 16:01:51 +0000  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15805
15806         * debian.upstream/rules:
15807           debian: remove custom parallel compilation
15808           In order to build a debian package with upstream source, the user should
15809           do
15810           ./autogen.sh
15811           cp -a debian.upstream debian
15812           debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
15813           The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
15814           way to make a parallel build (-j8 in this case).
15815           This commit removes the script in debian/rules that detects the number of
15816           cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
15817           official in debian.
15818           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15819           https://bugzilla.gnome.org/show_bug.cgi?id=754087
15820
15821 2015-11-16 18:22:55 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15822
15823         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15824           decoder: vp9: Fix PTS calculation of cloned frames
15825
15826 2015-11-16 18:22:33 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15827
15828         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15829           decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
15830           We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
15831           gstvaapidecoder base calss is reponsible for handling those frames later on.
15832           No need for explicit verification of frame header's show_frame in order to
15833           do picture outputing.
15834
15835 2015-11-16 18:22:14 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15836
15837         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15838           decoder: vp9: Fix ref picture update while doing repeat frame
15839           Don't try to do frame decoding and reference picture update
15840           while receiving a vp9 frame having show_existing_frame flag
15841           set as TRUE.
15842
15843 2015-11-16 18:21:56 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15844
15845         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15846           decoder: vp9: Add repeat-frame display handling
15847           If vp9 frame header come up with show_existing_frame flag set,
15848           we should duplicate the existing decoded frame as current frame to
15849           be displayed.
15850
15851 2015-11-12 11:07:38 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15852
15853         * gst/vaapi/gstvaapidecodebin.c:
15854           vaapidecodebin: add me as element co-author
15855           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15856           https://bugzilla.gnome.org/show_bug.cgi?id=757957
15857
15858 2015-11-12 12:47:01 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15859
15860         * gst/vaapi/gstvaapidecodebin.c:
15861           vaapidecodebin: try to get display from decoder
15862           Rather than create a dummy display, if none has propagated as a context, we
15863           should try to get the one from vaapidecode.
15864           As the bin is already in READY state, the vaapidecode should be also in that
15865           state. That means that the contexts have been negotiated, and it should have
15866           already a display.
15867           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15868           https://bugzilla.gnome.org/show_bug.cgi?id=757957
15869
15870 2015-11-11 19:04:25 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15871
15872         * gst/vaapi/gstvaapidecodebin.c:
15873         * gst/vaapi/gstvaapidecodebin.h:
15874           vaapidecodebin: add postprocessor dynamically
15875           The former approach to left the bin unfinished has some problems: the context
15876           cannot be shared because the vaapidecode is unlinked in many cases, leading to
15877           creating a VADisplay twice.
15878           Initially the bin is fully functional, constructed as
15879           (-----------------------------------)
15880           |            vaapidecodebin         |
15881           |   (-------------)    (-------)    |
15882           |<--| vaapidecode |--->| queue |--->|
15883           |   (-------------)    (-------)    |
15884           (-----------------------------------)
15885           When the context is shared and the VADisplay has VPP capabilities, before
15886           changing to READY state, the bin is reconfigured dynamically, adding the
15887           vaapipostproc element afeter the queue:
15888           (--------------------------------------------------------)
15889           |                       vaapidecodebin                   |
15890           |   (-------------)    (-------)    (---------------)    |
15891           |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
15892           |   (-------------)    (-------)    (---------------)    |
15893           (--------------------------------------------------------)
15894           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15895           https://bugzilla.gnome.org/show_bug.cgi?id=757957
15896
15897 2015-11-11 16:33:24 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15898
15899         * gst/vaapi/gstvaapidecodebin.c:
15900           vaapidecodebin: delay the bin configuration
15901           Delay the bin configuration until changing to READY state. This is because we
15902           should add the vaapipostproc element until the vaapidecode has emitted the
15903           HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
15904           vaapipostproc.
15905           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15906           https://bugzilla.gnome.org/show_bug.cgi?id=757957
15907
15908 2015-11-13 19:39:56 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15909
15910         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15911           decoder: vp9: Add crop rectangle support.
15912           Set crop rectange if:
15913           There is display_width and display_height which is different from actual width/height
15914           or
15915           The changed resolution is less than the actual configured dimension of surfaces
15916
15917 2015-11-13 19:23:05 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15918
15919         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15920           decoder: vp9: Fix the context and surface pool reset for multi resolution video
15921           Unlike other decoders, vp9 decoder doesn't need to reset the
15922           whole context and surfaces for each resolution change. Context
15923           reset only needed if resolution of any frame is greater than
15924           what actullay configured. There are streams where a bigger
15925           resolution set in ivf header or webm header but actual resolution
15926           of all frames are less. Also it is possible to have inter-prediction
15927           between these multi resolution frames.
15928
15929 2015-11-13 18:58:33 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15930
15931         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15932           decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
15933           Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
15934           Preliminary fix for supproting multi resolution video decode.
15935
15936 2015-11-13 18:51:27 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15937
15938         * gst/vaapi/gstvaapidecode.c:
15939           vaapidecode: Add comments for corner case fixes and fix couple of indentations.
15940
15941 2015-11-13 18:41:53 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15942
15943         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15944           decoder: vp9: Set lossless flag from frame header
15945
15946 2015-11-13 18:40:52 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15947
15948         * ext/codecparsers:
15949           codecparsers: Update to gst-vaapi-branch d9f25
15950           d9f2527: codecparsers: vp9: Set lossless flag in frame header
15951
15952 2015-11-11 19:16:16 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15953
15954         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15955           libs: vp9: remove unused symbols
15956           clang complains about a couple variables and one label which were not
15957           used. This patch removes them.
15958           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15959           https://bugzilla.gnome.org/show_bug.cgi?id=757958
15960
15961 2015-11-10 19:00:22 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15962
15963         * ext/codecparsers:
15964           codecparsers: Update to gst-vaapi-branch da251bb
15965           da251bb: codecparsers: vp9: Optimize the memory allocation
15966           f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
15967
15968 2015-11-05 12:58:52 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15969
15970         * gst/vaapi/gstvaapipluginbase.c:
15971         * gst/vaapi/gstvaapipluginbase.h:
15972           plugin: guard pointers to pad query functions
15973           Since gstreamer 1.4 is not required to have pad query functions if the query
15974           vmethods are used.
15975           This patch guards out the pad query functions for gstreamer < 1.4
15976           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15977           https://bugzilla.gnome.org/show_bug.cgi?id=757629
15978
15979 2015-11-05 12:39:55 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15980
15981         * gst/vaapi/gstvaapiencode.c:
15982           vaapiencode: use pad query vmethods
15983           GstVideoEncoder, the base class of vaapiencode, added support for pad queries
15984           as virtual methods since gstreamer 1.4. This patch enables those vmethods,
15985           while keeps support for previous versions of gstreamer.
15986           This patch is relevant since GstVideoEncoder takes care of other queries that
15987           we are currently ignoring.
15988           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15989           https://bugzilla.gnome.org/show_bug.cgi?id=757629
15990
15991 2015-10-28 13:01:04 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15992
15993         * gst/vaapi/gstvaapidecode.c:
15994           vaapidecode: return pad's template caps if no display
15995           A caps query can occur before the element has a display. In that case, the
15996           element can return its pad's template. But when the element already has a
15997           display, and the caps probe fails, the element shall return an empty caps, so
15998           the auto-plug could try with another decoder.
15999           If the element has a display and the caps probe works, then the computed caps
16000           should be returned.
16001           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16002           https://bugzilla.gnome.org/show_bug.cgi?id=757598
16003
16004 2015-10-28 12:59:02 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16005
16006         * gst/vaapi/gstvaapidecode.c:
16007         * gst/vaapi/gstvaapisink.c:
16008           plugins: don't create display at caps query
16009           Caps query can happen before the element has a bus. The display creation should
16010           be should occur on the context negotiation, when the bus is already configured.
16011           Then at caps query no display should be created.
16012           Instead of force the display creation, we graciously fail the allowed_caps()
16013           creation.
16014           This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
16015           basetransform descendant, seems to be not affected by this, nor the encoders.
16016           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16017           https://bugzilla.gnome.org/show_bug.cgi?id=757598
16018
16019 2015-11-04 21:38:42 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16020
16021         * gst/vaapi/gstvaapidecode.c:
16022         * gst/vaapi/gstvaapiencode.c:
16023         * gst/vaapi/gstvaapipluginutil.c:
16024         * gst/vaapi/gstvaapipluginutil.h:
16025         * gst/vaapi/gstvaapipostproc.c:
16026         * gst/vaapi/gstvaapisink.c:
16027           plugins: fix context query handling
16028           The current context query handling design is flawed: the function
16029           gst_vaapi_reply_to_query() returns FALSE either if the query is not a
16030           GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
16031           pad query function should handle differently each case.
16032           This patch changes the gst_vaapi_reply_to_query() for
16033           gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
16034           to match the correct context query handling.
16035           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16036           https://bugzilla.gnome.org/show_bug.cgi?id=757598
16037
16038 2015-11-04 20:37:05 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16039
16040         * gst/vaapi/gstvaapipluginutil.c:
16041           plugin: don't lose previous context at query
16042           When processing the GST_CONTEXT_QUERY we should not lose the previous
16043           context in the query, we should only add our display structure.
16044           This patch copies the old context, if it is there, and stamp our display on
16045           it. Otherwise, a new context is created.
16046           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16047           https://bugzilla.gnome.org/show_bug.cgi?id=757598
16048
16049 2015-11-04 20:29:03 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16050
16051         * gst/vaapi/gstvaapivideocontext.c:
16052         * gst/vaapi/gstvaapivideocontext.h:
16053           vaapivideocontext: add gst_vaapi_video_context_set_display()
16054           This function set the display to an already created context. This function is
16055           going to be used later.
16056           Also, gst_vaapi_video_context_new_with_display() now uses this function.
16057           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16058           https://bugzilla.gnome.org/show_bug.cgi?id=757598
16059
16060 2015-10-30 12:27:16 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16061
16062         * gst/vaapi/gstvaapipluginutil.c:
16063         * gst/vaapi/gstvaapivideocontext.c:
16064         * gst/vaapi/gstvaapivideocontext.h:
16065           plugins: check if display is set in sync
16066           Since the context messages are sync'ed, the display assignation happens in the
16067           same thread, hence we can know if the display was found or not as soon we call
16068           for it.
16069           In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
16070           as a new parameter, the address of the plugin's display, and reports back if
16071           the display was found and set.
16072           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16073           https://bugzilla.gnome.org/show_bug.cgi?id=757598
16074
16075 2015-10-30 12:33:48 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16076
16077         * gst/vaapi/gstvaapipluginutil.c:
16078         * gst/vaapi/gstvaapivideocontext.c:
16079           plugins: set display through context
16080           Instead of setting the display to the plugin directly after its creation, do
16081           it through the gstreamer's context mechanism, avoiding double assignations.
16082           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16083           https://bugzilla.gnome.org/show_bug.cgi?id=757598
16084
16085 2015-11-02 18:20:07 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16086
16087         * gst/vaapi/gstvaapivideocontext.c:
16088           vaapivideocontext: rename context structure
16089           The context structure is named "display" which is too generic. The contrary
16090           happens, for example, with GstGL, what uses the same name as the context, and
16091           its logs make more sense.
16092           This patch renames the context structure with the same name as the
16093           context, thus GST_PTR_FORMAT can pretty print it.
16094           https://bugzilla.gnome.org/show_bug.cgi?id=757598
16095
16096 2015-11-04 19:02:34 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16097
16098         * gst/vaapi/gstvaapivideocontext.c:
16099           vaapivideocontext: refactor gst_vaapi_video_context_prepare()
16100           First, refactorized run_context_query() into _gst_context_run_query(), adding
16101           a new parameter: the pad direction, in order to simplify the code.
16102           Second, added a new helper function: _gst_context_query(), which is a generic
16103           context query function.  It isolates the operation of running the query and
16104           sets the context if found, also it enhances the logs.
16105           _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
16106           future this helper function will be merged into the core libraries of
16107           GStreamer.
16108           Finally, gst_vaapi_video_context_prepare() was rewritten to use
16109           _gst_context_query().
16110           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16111           https://bugzilla.gnome.org/show_bug.cgi?id=757598
16112
16113 2015-10-30 11:18:47 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16114
16115         * gst/vaapi/gstvaapivideocontext.c:
16116           vaapivideocontext: refactor context category debug
16117           Refactor the extraction GST_CAT_CONTEXT logging using a only once
16118           initializator, so we could get the debug category from different code
16119           paths, safely.
16120           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16121           https://bugzilla.gnome.org/show_bug.cgi?id=757598
16122
16123 2015-10-23 11:17:01 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16124
16125         * gst/vaapi/gstvaapivideocontext.c:
16126           gstvaapivideocontext: fix indentation
16127           gst-indent does not handle correctly some expression like function
16128           declaration with attributes, breaking the following expressions.
16129           This patch makes gst-indent to ignore the attributed function
16130           declartion so the followed function definition is not mangled, such
16131           as happened in commit b4154a
16132           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16133           https://bugzilla.gnome.org/show_bug.cgi?id=757598
16134
16135 2015-11-02 16:48:27 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16136
16137         * gst/vaapi/gstvaapipluginbase.c:
16138           plugin: chain up set_context() vmethod
16139           Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
16140           the parent class in order to broadcast all its contexts when the element
16141           is added into a bin:
16142           http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
16143           There is no need to guard the call, because before GStreamer 1.7, the
16144           set_context() vmethod was NULL in the element class, hence the conditional
16145           call make it safe.
16146           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16147           https://bugzilla.gnome.org/show_bug.cgi?id=757598
16148
16149 2015-11-06 10:20:34 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16150
16151         * tests/simple-encoder.c:
16152           tests: simple-encoder: remove dead code
16153           The caps creation for codec state configuration is not used. Let's remove it.
16154           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16155
16156 2015-11-02 19:05:07 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16157
16158         * gst/vaapi/gstvaapidecodebin.c:
16159           vaapidecodebin: fix a leaked display instance
16160           The display returned by gst_vaapi_video_context_get_display() increments the
16161           references. Thus, we have to unref the returned display.
16162           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16163           https://bugzilla.gnome.org/show_bug.cgi?id=757595
16164
16165 2015-11-04 16:50:44 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16166
16167         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
16168         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
16169           libs: remove unneeded headers
16170           Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
16171           required to include them in the header. It is not also required to include
16172           them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
16173           exposes their structures (e.g. GLXPixmap).
16174           Nonetheless, glext.h neither glxext.h are required to include, they are
16175           already included conditionally by gl.h and glx.h, respectively.
16176           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16177           https://bugzilla.gnome.org/show_bug.cgi?id=757577
16178
16179 2015-11-06 19:18:54 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16180
16181         * ext/codecparsers:
16182           codecparsers: Update to gst-vaapi-branch 0ea6792
16183           0ea6792: codecparsers: vp9: Add header comments
16184           347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
16185
16186 2015-11-06 15:19:38 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16187
16188         * gst/vaapi/gstvaapidecode.c:
16189           VP9: plugins: Add VP9 decoder
16190
16191 2015-11-06 15:12:51 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16192
16193         * gst-libs/gst/vaapi/Makefile.am:
16194         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16195         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
16196           VP9: libgstvaapi: Add VP9 decoder
16197
16198 2015-11-06 14:57:00 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16199
16200         * gst-libs/gst/vaapi/gstvaapiprofile.c:
16201         * gst-libs/gst/vaapi/gstvaapiprofile.h:
16202           VP9: gstvaapiprofile: Add profile definitions
16203
16204 2015-11-06 14:39:22 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16205
16206         * configure.ac:
16207           VP9: build: Check availability of vp9 decoder APIs
16208
16209 2015-11-06 14:24:08 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16210
16211         * configure.ac:
16212         * ext/Makefile.am:
16213         * gst-libs/gst/codecparsers/Makefile.am:
16214           VP9: Allow building vp9 codecparser internally
16215
16216 2015-11-06 12:38:46 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16217
16218         * ext/codecparsers:
16219           codecparsers: Update to gst-vaapi-branch commit ac5dc1a
16220           ac5dc1a: codecparsers: vp9: Add vp9 codec parser
16221           e7d9217: codecparser: h264: initialize parsing structures
16222           403d400: codecparser: h265: initialize parsing structures
16223
16224 2015-11-04 15:37:34 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16225
16226         * configure.ac:
16227           configure.ac: don't use an undefined variable
16228           If the environment lacks of gstreamer development packages, this error will
16229           be reported to the user: "gstreamer- was not found"
16230           This is because we are using an undefined variable in the printed message. The
16231           fix simple changes the variable for the hard-coded string "1.0".
16232           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16233           https://bugzilla.gnome.org/show_bug.cgi?id=757283
16234
16235 2015-10-16 15:55:40 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16236
16237         * gst/vaapi/gstvaapidecode.c:
16238           vaapidecode: relax guards for memory:VASurface capsfeature
16239           Though caps features are supported since GStreamer 1.2, there are some
16240           issues with the features caps negotiation in that version. Nonetheless,
16241           those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
16242           feature negotiation is relaxed for GStreamer 1.4.
16243           The guard is the same as in vaapisink's caps template.
16244           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16245           https://bugzilla.gnome.org/show_bug.cgi?id=756686
16246
16247 2015-10-15 18:18:36 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16248
16249         * gst/vaapi/gstvaapidecode.c:
16250           vaapidecode: decide allocation doesn't update srccaps
16251           The received caps query will bring the already negotiated caps, so they are
16252           not expected to change.
16253           This patch removes this verification which is dead code path.
16254           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16255           https://bugzilla.gnome.org/show_bug.cgi?id=756686
16256
16257 2015-10-14 20:30:30 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16258
16259         * gst/vaapi/gstvaapidecode.c:
16260         * gst/vaapi/gstvaapipluginutil.c:
16261         * gst/vaapi/gstvaapipluginutil.h:
16262           vaapidecode: use caps to check the features
16263           Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
16264           expensive, we check the caps from the allocation query, to check the
16265           negotiated feature.
16266           In order to do this verification a new utility function has been implemented:
16267           gst_vaapi_caps_feature_contains().
16268           As this new function shared its logic with gst_caps_has_vaapi_surface(), both
16269           have been refactorized.
16270           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16271           https://bugzilla.gnome.org/show_bug.cgi?id=756686
16272
16273 2015-10-14 20:22:43 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16274
16275         * gst/vaapi/gstvaapidecode.c:
16276           vaapidecode: set format before decide allocation
16277           There is a regression from commit 3d8e5e. It was expected the buffer pool
16278           allocation occur before the caps negotiation, but it is not.
16279           This patch fixes this regression: the caps negotiation is done regardless the
16280           allocation query from downstream.
16281           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16282           https://bugzilla.gnome.org/show_bug.cgi?id=756686
16283
16284 2015-10-16 20:21:50 +0800  Lim Siew Hoon <siew.hoon.lim@intel.com>
16285
16286         * configure.ac:
16287           build: check for patch and fix yasm check
16288           Add configure checking for GNU patch tools and fixed configure
16289           checking YASM to correct sequence.
16290           Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16291           https://bugzilla.gnome.org/show_bug.cgi?id=756690
16292
16293 2015-10-15 19:20:21 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16294
16295         * ext/libvpx/Makefile.am:
16296           build: Remove disable-md5 option for libvpx build
16297           The configure option --disable-md5 was provided in libvpx-1.3.0 which
16298           has been removed in 1.4.0.
16299
16300 2015-10-15 19:00:26 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16301
16302         * ext/libvpx/upstream:
16303           libvpx: Update the submodule to libvpx-1.4.0
16304           libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
16305
16306 2015-10-15 10:59:08 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16307
16308         * configure.ac:
16309           configure: mark support for GStreamer 1.2 as obsolete.
16310           Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
16311           Our goal is to support the last two stable versions of GStreamer which
16312           are 1.4 and 1.6 at the moment.
16313           We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
16314           release and will get rid of those in 0.8.
16315
16316 2015-10-12 14:13:03 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16317
16318         * gst/vaapi/gstvaapidecode.c:
16319           vaapidecode: Fix buffer copy assertion
16320           Don't try to copy the NULL buffer-codec_data.
16321
16322 2015-09-28 14:57:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16323
16324         * configure.ac:
16325           build: allow builds against GStreamer 1.7.x
16326           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16327
16328 2015-09-23 16:02:46 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16329
16330         * gst/vaapi/gstcompat.h:
16331           gstcompat: add gst_buffer_copy_deep() if gst < 1.5
16332           gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
16333           add an implementation if gstreamer-vaapi is linked to previous versions.
16334           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16335
16336 2015-09-23 12:13:41 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16337
16338         * gst/vaapi/gstvaapidecode.c:
16339           vaapidecode: simplify copy of GstVideoCodecState
16340           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16341
16342 2015-09-14 19:21:08 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16343
16344         * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
16345         * patches/videoparsers/series.frag:
16346           patches/videoparsers: h265parser: more API fences
16347           Add more API fences according with its version and refresh the patch.
16348           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16349           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16350
16351 2015-09-14 19:19:56 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16352
16353         * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
16354         * patches/videoparsers/series.frag:
16355           patches/videoparsers: h265parser: rename patch keeping number
16356           Refresh the patch and rename it in order to keep the patch number.
16357           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16358           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16359
16360 2015-09-14 19:18:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16361
16362         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16363           patches/videoparsers: h264parser: more API fences and refresh
16364           Add more API fences according with its version and refresh the patch.
16365           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16366           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16367
16368 2015-09-14 19:16:51 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16369
16370         * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
16371         * patches/videoparsers/series.frag:
16372           patches/videoparsers: h264parser: fix description and refresh
16373           Fix a typo in the patch description and refresh it in order to avoid the
16374           creation of .orig files and break the distcheck target.
16375           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16376           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16377
16378 2015-09-14 19:15:18 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16379
16380         * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
16381         * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
16382           patches/videoparsers: h264parser: refresh patches
16383           In order to avoid the creation of .orig files and break the distcheck target.
16384           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16385           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16386
16387 2015-09-15 16:53:31 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16388
16389         * gst/vaapi/Makefile.am:
16390           build: link libgstvaapi_parse against codec parser
16391           GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
16392           when running configure.
16393           Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
16394           need it if builtin codec parsers are disabled.
16395           This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
16396           compilation. If builtin codec parsers are enable, this variable is null, so it
16397           should work using libgstvaapi, as normal.
16398           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16399           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16400
16401 2015-09-11 16:35:30 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16402
16403         * configure.ac:
16404           build: verify for H264 MVC and H265 SPS
16405           Currently the H264 and H265 parsers look for MVC and SPS respectively, and
16406           the required symbols for those were added in GStreamer 1.5
16407           If we try to compile in GStreamer < 1.4, without enabling the builtin codec
16408           parsers, the compilation fails, because the lack of those symbols.
16409           This patch verifies if the installed H264 and H265 parsers have those symbols. If
16410           they do not, the specific built in codec parsers are enabled and used.
16411           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16412           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16413
16414 2015-09-11 16:49:16 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16415
16416         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16417           decoder: h264: initialize PPS's slice_group_id
16418           When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
16419           so it contains random data.
16420           When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
16421           pointer uninitialized, leading to a segmentation fault when the memory is
16422           freed.
16423           This patch prevents this by initializing the slice_group_id before the PPS
16424           parsing.
16425           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16426           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16427
16428 2015-09-15 11:01:29 +0300  Mark Nauwelaerts <mnauw@users.sourceforge.net>
16429
16430         * gst/vaapi/gstvaapidecode.c:
16431           vaapidecode: proper numerator and denominator for forced latency framerate
16432           https://bugzilla.gnome.org/show_bug.cgi?id=755040
16433
16434 2015-09-11 20:51:42 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16435
16436         * ext/codecparsers:
16437           codecparsers: Update to gst-vaapi-branch commit f9e284b
16438           dae1a84: h264parse/h265parse: Fix negotiation crash
16439           45a9f8a: codecparsers: h265 : Fix default scaling list values
16440           28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
16441           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16442
16443 2015-09-04 22:19:55 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16444
16445         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16446           decoder: hevc: Don't flush dpb for EOS/EOB nal
16447           Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
16448           the dpb_add() itself will handle the flusing(if needed) of dpb
16449           for end of sequence and end of bitstream.
16450           https://bugzilla.gnome.org/show_bug.cgi?id=754010
16451
16452 2015-09-04 22:11:10 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16453
16454         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16455           decoder: hevc: Fix the dpb_add() based on C.5.2.3
16456           Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
16457           just after the PicLatencyCnt setting of existing dpb frames.
16458           https://bugzilla.gnome.org/show_bug.cgi?id=754010
16459
16460 2015-09-04 22:02:55 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16461
16462         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16463           decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
16464           This fix is based on the V3 vesion of spec which was missing in older versions.
16465           When the current picture has PicOutputFlag equal to 1, for each picture in the
16466           DPB that is marked as "needed for output" and follows the current picture in output order,
16467           the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
16468           https://bugzilla.gnome.org/show_bug.cgi?id=754010
16469
16470 2015-09-04 22:00:36 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16471
16472         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16473           decoder: h265: Fix indentation
16474
16475 2015-06-13 01:39:31 +1000  Jan Schmidt <jan@centricular.com>
16476
16477         * gst-libs/gst/vaapi/gstvaapidecoder.c:
16478         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16479         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16480         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16481         * gst/vaapi/gstvaapidecode.c:
16482         * gst/vaapi/gstvaapipluginutil.c:
16483           multiview: initial attempt at stereo/multiview support
16484           Add support for marking caps and buffers for multiview or
16485           stereoscopic output.
16486           https://bugzilla.gnome.org/show_bug.cgi?id=750835
16487
16488 2015-08-28 17:12:12 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16489
16490         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16491           decoder: hevc: remove unused functions
16492           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16493           https://bugzilla.gnome.org/show_bug.cgi?id=754250
16494
16495 2015-08-31 13:11:54 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16496
16497         * gst/vaapi/gstvaapidecode.c:
16498           vaapidecode: remove (another) unused variable
16499           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16500
16501 2015-08-28 17:10:40 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16502
16503         * gst/vaapi/gstvaapidecode.c:
16504           vaapidecode: remove unused variable
16505           Thus silence the compilation warnings.
16506
16507 2015-08-28 16:06:08 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16508
16509         * gst/vaapi/gstvaapidecode.c:
16510           vaapidecode: compilation fix
16511           gst_vaapi_decoder_state_changed() returns void. This patch fixes the
16512           compilation where the toolchain uses restrictive flags as clang.
16513           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16514
16515 2015-08-29 00:27:05 +0300  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16516
16517         * gst/vaapi/gstvaapidecode.c:
16518           vaapidecode: renegotiate if caps are not equal
16519           The use of gst_caps_is_always_compatible() for this optimization may lead to
16520           false positives. It is better to stick to gst_caps_is_strictly_equal() to know
16521           if it is required a re-negotiation.
16522           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16523           https://bugzilla.gnome.org/show_bug.cgi?id=750835
16524
16525 2015-08-29 00:18:57 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16526
16527         * gst/vaapi/gstvaapidecode.c:
16528         * gst/vaapi/gstvaapidecode.h:
16529           vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
16530           Delaying the pool re-negotiation untill we push all decoded (and queued)
16531           frames downstream. Otherwise for the multi-resolution videos, the
16532           GstVideoVideoMemory will be having wrong resolution and which leads
16533           to nasty behaviours, especially when using software renderers.
16534           sample media file: RAP_B_Bossen_1.bin
16535           case explained:
16536           The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
16537           get the final resoultion 416x240.
16538           Starting from 25 th frame, the resolution will change to 416x240. But parser
16539           elements won't report this since the effective croped resolution is same in
16540           both cases. Here the core libgstvaapi will detect this through it's internal
16541           parsing and do all context/pool destory/reset stuffs. Also it will notify this
16542           change to plugins in advance. But if the plugin try to do re-negotiaion of pool
16543           immediately, this will not sync with the resolution of already decoded and queued
16544           frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
16545           software renderer). So we have to delay the pool renegotiation in vaapidecode,
16546           untill we push all decoded frames downstream.
16547           https://bugzilla.gnome.org/show_bug.cgi?id=753914
16548
16549 2015-08-28 23:43:47 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16550
16551         * gst/vaapi/gstvaapidecode.c:
16552           vaapidecode: Always keep a copy of input codec state
16553           Currently we are sharing the input GstVideoCodecState with
16554           GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
16555           each caps change. This is troublesome in many cases, for eg: if
16556           resoultion changes with in a singe stream. Because, when ever there
16557           is a resolution change, GstVideoDecoder will first change the Codec_state->caps
16558           fields with new resolution, but since we are using the same codecstate (ref)
16559           in gstvaapidecode.c, the caps check for input caps change will always fail.
16560           https://bugzilla.gnome.org/show_bug.cgi?id=753914
16561
16562 2015-08-26 07:25:03 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16563
16564         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16565           decoder: hevc: Fix the scaling list scan order
16566           The default scan order of scaling lists are up-right-diagonal
16567           as per hevc specification. Use the newly implemented
16568           uprightdiagonal_to_raster conversion codecparser APIs to
16569           get the the scaling_list values in raster order, which is
16570           what the VA intel driver requires.
16571
16572 2015-08-26 07:20:09 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16573
16574         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16575           decoder: hevc: sync with the codecparser changes
16576           The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
16577           in codecparsers now. Remove the duplication from gstvaapidecoder_h265
16578
16579 2015-08-26 07:04:22 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16580
16581         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16582           patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16583
16584 2015-08-26 06:57:36 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16585
16586         * ext/codecparsers:
16587           codecparsers: Update to gst-vaapi-branch commit 69550f1
16588           c207c6d: codecparsers: h265: Fix tile row and column parsing
16589           47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
16590           cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16591           1746bbe: videoparsers: Use gst_base_parse_merge_tags()
16592           2f0932b: h264parse: Clear SPS info after processing
16593           f57d6b0: videoparsers: enable accept-template flag
16594
16595 2015-08-25 15:38:42 +0000  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16596
16597         * debian.upstream/control.in:
16598           debian: add yasm as build dependency
16599           As the compilation of libvpx (for vp8 parser) is enabled by default,
16600           yasm is required by default too.
16601           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16602
16603 2015-08-14 19:21:04 +0800  Lim Siew Hoon <siew.hoon.lim@intel.com>
16604
16605         * debian.upstream/rules:
16606           debian: remove --with-gstreamer-api option
16607           It is no longer valid in gstreamer-vaapi.
16608           Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16609           [removed unused GST_API_VERSION variable]
16610           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16611           https://bugzilla.gnome.org/show_bug.cgi?id=753618
16612
16613 2015-08-24 19:22:14 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16614
16615         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16616           wayland: rename is_cancelled to sync_failed
16617           Since commit 065a18a3, the semantics of the variable is_cancelled did not make
16618           sense. This commit renames this variable to sync_failed.
16619
16620 2015-08-13 15:12:44 -0400  Olivier Crete <olivier.crete@collabora.com>
16621
16622         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16623           wayland: Don't return GST_FLOW_ERROR on flushing
16624           Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
16625           return FALSE which makes gst_vaapi_window_wayland_render() return
16626           FALSE which ends up posting an ERROR message in
16627           gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
16628           in the EBUSY case.
16629           https://bugzilla.gnome.org/show_bug.cgi?id=753598
16630
16631 2015-08-06 12:28:51 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16632
16633         * gst/vaapi/gstvaapi.c:
16634           Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
16635           This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
16636
16637 2015-07-06 20:22:57 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16638
16639         * gst/vaapi/gstvaapidecodebin.c:
16640           vaapidecodebin: check for postproc instance
16641           If the VPP's deinterlace-method is set, first we should check if the postproc
16642           is already instanced to set it. Otherwise we just store it until the VPP is
16643           added into the bin.
16644           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16645           https://bugzilla.gnome.org/show_bug.cgi?id=749554
16646
16647 2015-08-06 18:48:13 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16648
16649         * gst/vaapi/gstvaapidecodebin.c:
16650         * gst/vaapi/gstvaapipluginutil.c:
16651         * gst/vaapi/gstvaapipluginutil.h:
16652           vaapidecodebin: ensure VPP before going to READY
16653           There are sometimes that the VA-API display context is not shared among the
16654           pipeline, but it is important to know it before going to READY state (when the
16655           pipeline is already linked).
16656           One instance of this case is this:
16657           gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
16658           This patch adds a new function in gstvaapipluginutil called
16659           gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
16660           display, which only will be used for verify if the VAEntrypointVideoProc is
16661           available by the hardware. Afterwards, it should be unrefed.
16662           If the vaapidecodebin is going to READY state, and the element still doesn't
16663           know if VPP is available, the last resort is to create a new instance of the
16664           VA-API display and test for it.
16665           https://bugzilla.gnome.org/show_bug.cgi?id=749554
16666
16667 2015-08-06 12:39:52 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16668
16669         * gst/vaapi/gstvaapidecodebin.c:
16670           vaapidecodebin: post an error message if fails
16671           If the construction of the bin fails, post an error message in the bus.
16672           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16673           https://bugzilla.gnome.org/show_bug.cgi?id=749554
16674
16675 2015-08-06 12:36:07 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16676
16677         * gst/vaapi/gstvaapidecodebin.c:
16678         * gst/vaapi/gstvaapidecodebin.h:
16679           vaapidecodebin: has_vpp as a tri-state variable
16680           has_vpp can be UNKNOWN while the context message hasn't being received.
16681           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16682           https://bugzilla.gnome.org/show_bug.cgi?id=749554
16683
16684 2015-08-03 16:33:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16685
16686         * gst/vaapi/gstvaapivideomemory.c:
16687           gstvaapivideomemory: native format with no derived image
16688           If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
16689           info based on the derived image configuration.
16690           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16691           https://bugzilla.gnome.org/show_bug.cgi?id=744042
16692
16693 2015-07-23 20:07:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16694
16695         * gst-libs/gst/vaapi/video-format.c:
16696         * gst-libs/gst/vaapi/video-format.h:
16697         * gst/vaapi/gstvaapivideomemory.c:
16698           surface pool config based on video info
16699           First added the function gst_vaapi_video_format_get_best_native(), which
16700           returns the best native format that matches a particular chroma type:
16701           YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
16702           RGB32 chroma and encoded format map to NV12 too.
16703           That format is used to configure, initially, the surface's pool for the
16704           allocator.
16705           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16706           https://bugzilla.gnome.org/show_bug.cgi?id=744042
16707
16708 2015-07-23 16:03:43 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16709
16710         * gst/vaapi/gstvaapivideomemory.c:
16711           gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
16712           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16713           https://bugzilla.gnome.org/show_bug.cgi?id=744042
16714
16715 2015-06-19 15:51:07 +0200  Victor Jaquez <vjaquez@igalia.com>
16716
16717         * gst-libs/gst/vaapi/gstvaapiencoder.c:
16718           gstvaapiencoder: validate chroma according to the VA's RT format
16719           Before, only YUV420 color space where supported. With this patch, the
16720           encoder is queried to know the supported formats and admits YUV422
16721           color space if its available.
16722           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16723           https://bugzilla.gnome.org/show_bug.cgi?id=744042
16724
16725 2015-08-13 05:07:52 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16726
16727         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16728           decoder: hevc: Add calculation of WpOffsetHalfRangeC
16729           This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
16730           prediction weight table values with out using any hard coding.
16731           Fixme: We don't have parser API for sps_range_extension, so
16732           assumed zero value for high_precision_offsets_enabled_flag.
16733           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16734
16735 2015-08-13 04:09:44 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16736
16737         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16738           decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
16739           Based on ITU-T rec H265(4/2015): 7-56
16740           This was a wrong equation in rec H265 (4/2013): 7-44...
16741           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16742
16743 2015-08-13 04:08:03 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16744
16745         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16746           decoder: hevc: Fix default value assignment of pred_weight_table
16747
16748 2015-08-13 03:48:43 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16749
16750         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16751           decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
16752           Assign only if ChromaArrayType != 0..
16753           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16754
16755 2015-08-13 03:06:32 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16756
16757         * ext/codecparsers:
16758           codecparsers: Update to gst-vaapi-branch commit 1c70432
16759           8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16760           839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
16761           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16762
16763 2015-08-11 08:09:10 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16764
16765         * ext/codecparsers:
16766           codecparsers: Update to gst-vaapi-branch commit c18b8ad
16767           8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
16768           a033083: videoparsers: h265: Fix the frame start detection code
16769           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16770
16771 2015-08-10 05:50:50 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16772
16773         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16774           decoder: hevc: Add SEI parsing
16775           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16776
16777 2015-08-07 08:43:44 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16778
16779         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16780           decoder: hevc: Workaround to recognize wrongly encoded main profile streams
16781           HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
16782           There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
16783           have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
16784           has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
16785           is TRUE. Assuming them as MAIN profile for now.
16786           https://bugzilla.gnome.org/show_bug.cgi?id=753226
16787           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16788
16789 2015-08-07 08:41:57 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16790
16791         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16792           patches/videoparsers: Fix the wrong source file path
16793           This is something wrongly typed in commit 6d7b631
16794
16795 2015-08-07 08:34:55 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16796
16797         * ext/codecparsers:
16798           codecparsers: Update to gst-vaapi-branch commit b8d8be4
16799           ee7e81b: h264parse: Don't discard first AU delimiter
16800           3690fb9: h264parse: Add more NAL types for debugging output
16801           108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
16802           ace61048: h265parse: expose compatible profiles to downstream
16803           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16804
16805 2015-08-06 13:07:53 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16806
16807         * gst/vaapi/gstvaapipluginutil.c:
16808         * gst/vaapi/gstvaapivideocontext.c:
16809         * gst/vaapi/gstvaapivideocontext.h:
16810           gstvaapivideocontext: remove unused parameter
16811           gst_vaapi_video_context_prepare() received an unused parameter. This patch
16812           removes it and the structure passed by the caller.
16813           This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
16814           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16815
16816 2015-08-06 04:01:24 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16817
16818         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16819           decoder: hevc: Fix decoding of stream when it has temporal sublayers
16820           We are calculating the dpb size based on max_dec_pic_buffering.
16821           But if there are more than one temporal sublayers, we are supposed
16822           to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
16823           size calculation (Assuming HighestTid as max_sub_layers_minus).
16824           Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
16825           https://bugzilla.gnome.org/show_bug.cgi?id=753226
16826           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16827
16828 2015-08-05 14:11:12 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16829
16830         * gst/vaapi/gstvaapidecode.c:
16831         * gst/vaapi/gstvaapidecodebin.c:
16832         * gst/vaapi/gstvaapiencode_h264.c:
16833         * gst/vaapi/gstvaapiencode_h265.c:
16834         * gst/vaapi/gstvaapiencode_jpeg.c:
16835         * gst/vaapi/gstvaapiencode_mpeg2.c:
16836         * gst/vaapi/gstvaapiencode_vp8.c:
16837         * gst/vaapi/gstvaapipluginutil.h:
16838         * gst/vaapi/gstvaapipostproc.c:
16839         * gst/vaapi/gstvaapisink.c:
16840           refactor vaapi caps strings for pad templates
16841           Refactor the main vaapi caps strings into three macros:
16842           GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
16843           GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
16844           Those are in gstvaapipluginutil.h so all the elements could use them, instead
16845           of re-declaring them every time.
16846           No functional changes.
16847           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16848
16849 2015-08-05 14:15:07 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16850
16851         * gst/vaapi/gstvaapipostproc.c:
16852           gstvaapipostproc: fix code style
16853           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16854
16855 2015-08-05 05:23:20 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16856
16857         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16858           decoder: hevc: Fix the decoding of dependent slice segment
16859           Decoding process for reference picture list construction needs to be
16860           invoked only for P and B slice and the value for slice_type of dependent slice
16861           segment should be taken from the previous independent slice segment header
16862           of the same pic.
16863           https://bugzilla.gnome.org/show_bug.cgi?id=753226
16864           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16865
16866 2015-06-22 17:38:41 +0200  Victor Jaquez <vjaquez@igalia.com>
16867
16868         * gst/vaapi/gstvaapipluginbase.c:
16869           plugins: reduce the noise of warnings
16870           Those messagse should be attached to the object, also the lack of
16871           caps is not an error, in particular in the case of JPEG encoding.
16872           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16873           https://bugzilla.gnome.org/show_bug.cgi?id=744042
16874
16875 2015-06-23 17:49:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16876
16877         * gst-libs/gst/vaapi/gstvaapicontext.c:
16878           gstvaapicontext: fix the JPEG encoder attribs value
16879           When we query for the VAConfigAttribEncJPEG, we get a value which packs the
16880           VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
16881           assigns the returned value to the attribute.
16882           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16883           https://bugzilla.gnome.org/show_bug.cgi?id=744042
16884
16885 2015-06-18 17:37:46 +0200  Victor Jaquez <vjaquez@igalia.com>
16886
16887         * gst-libs/gst/vaapi/gstvaapiencoder.c:
16888           gstvaapiencoder: framerate 0/1 is valid too
16889           Framerate 0/1 is valid, and it is particularly useful for picture
16890           encoding, such as jpeg. This patch makes the encoder to admit that
16891           framerate.
16892           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16893           https://bugzilla.gnome.org/show_bug.cgi?id=744042
16894
16895 2015-07-03 09:35:16 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16896
16897         * gst/vaapi/gstvaapipostproc.c:
16898           vaapipostroc: GLTextureUploadMeta in sink template
16899           Advertise GLTextureUploadMeta in sink caps template.
16900           https://bugzilla.gnome.org/show_bug.cgi?id=752130
16901
16902 2015-07-23 13:11:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16903
16904         * gst/vaapi/Makefile.am:
16905         * gst/vaapi/gstvaapiencode.c:
16906         * gst/vaapi/gstvaapipluginbase.c:
16907         * gst/vaapi/gstvaapipluginbase.h:
16908         * gst/vaapi/gstvaapipostproc.c:
16909         * gst/vaapi/gstvaapisink.c:
16910         * gst/vaapi/gstvaapiuploader.c:
16911         * gst/vaapi/gstvaapiuploader.h:
16912           remove gstvaapiuploader
16913           Working on bug #744042 I realized that the gstvaapiuploader is practically not
16914           used.
16915           This patch removes the gstvaapiuploader and add the method
16916           gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
16917           the system can handle, which is used by vaapisink and vaapipostproc.
16918           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16919           https://bugzilla.gnome.org/show_bug.cgi?id=752777
16920
16921 2015-07-27 18:49:13 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16922
16923         * gst/vaapi/gstvaapidecode.c:
16924           vaapidecode: don't lost GLTextureUpload on seek
16925           When seeking, the decoder is reset, but the buffer pool is not
16926           re-negotiated, but in reset_full() the code forgets if the negotiated buffer
16927           pool has the GLTextureUpload meta.
16928           The decoder knows that GLTextureUpload meta was negotiated in
16929           decide_allocation(), but this method is not called when seeking.
16930           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16931           https://bugzilla.gnome.org/show_bug.cgi?id=752929
16932
16933 2015-07-21 18:45:56 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16934
16935         * gst/vaapi/gstvaapipluginutil.c:
16936           plugins: don't use gst_pad_get_allowed_caps()
16937           gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
16938           decoders, that is OK, but in the case of the postproc might lead loops,
16939           since the gst_base_transform_query_caps() forwards the query upstream
16940           and forth.
16941           Instead of gst_pad_get_allowed_caps() we only query the peer with
16942           gst_pad_peer_query_caps() using the pad's template as filter.
16943           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16944           https://bugzilla.gnome.org/show_bug.cgi?id=752558
16945
16946 2015-07-22 12:40:19 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16947
16948         * README:
16949           README: updates
16950
16951 2015-07-22 09:45:26 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16952
16953         * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
16954         * patches/videoparsers/series.frag:
16955           patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
16956           All API/ABI changes for S3D/MVC are added in 1.5, backporting
16957           them to older verison is not recommended.
16958           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16959
16960 2015-07-22 09:41:34 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16961
16962         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16963           patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16964
16965 2015-07-22 09:38:42 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16966
16967         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
16968           decoder: jpeg: Align with new API/ABI changes in codecparser
16969           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16970
16971 2015-07-22 09:31:02 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16972
16973         * ext/codecparsers:
16974           codecparsers: Update to gst-vaapi-branch commit 800bdb2
16975           ed13220: mpegvideometa: add meta transform function
16976           18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
16977           7a51722: codecparsers: jpeg: fix docs for table parsing functions
16978           06b8ded: codecparsers: jpeg: fix validity checking of data parsed
16979           387a39d: codecparsers: jpeg: fix up API
16980           db9d6a9: codecparsers: jpeg: tweak API a little
16981           bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
16982           f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
16983           4658c30: codecparsers: jpeg: fix calculation of segment size
16984           759bcb9: codecparsers: jpeg: fix default Huffman tables generation
16985           b4811ee: codecparsers: jpeg: add JPEG bitstream parser
16986           9422464: h264parse: fix typo in log message
16987           9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
16988           77704ce: nalutils: trivial patch to check if
16989           8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
16990           7862f95: Revert "codecparsers: remove ignored increment of return"
16991           54017b1: h264parse: Add support for passing stereoscopic/multiview info
16992           8667ee4: h264parse: Don't switch to passthrough on set_caps()
16993           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16994
16995 2015-06-29 14:27:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16996
16997         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16998           decoder: h264: track previous reference frames.
16999           Improve closure of gaps in frame_num by strictly following and trying
17000           to fill them with previous reference frames. So, they are now tracked
17001           thus avoiding insertion of dummy ("greenish") frames.
17002
17003 2015-06-29 13:16:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17004
17005         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17006           decoder: h264: fix integration of second field into the DPB.
17007           If the new picture to be added to the DPB is not a first field, then
17008           it shall be the second field of the previous picture that was added
17009           before.
17010           This removes the need for dpb_find_picture() now that we track the
17011           immediately preceding decoded picture, in decode order.
17012
17013 2015-07-06 14:38:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17014
17015         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17016           decoder: h264: fix closure of "other-field" gap.
17017           When a dummy "other-field" is inserted, it is assumed to inherit the
17018           reference flags from the first field, and the sliding window decoded
17019           reference picture marking process is also executed so that corrupted
17020           frames are moved out as early as possible.
17021           While doing so, we also try to output frames that now contain a single
17022           valid field picture, prior to inserting any other picture into the DPB.
17023           Note: this may be superfluous currently based on the fact that dpb_add()
17024           combines the two most recent pairable fields, but this process would be
17025           further simplified later on.
17026
17027 2015-06-24 13:58:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17028
17029         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17030           decoder: h264: track corrupted frames.
17031           Mark the picture as "corrupted" if it is reconstructed from corrupted
17032           references or if those references are fake, e.g. resulting from lost
17033           frames.
17034           This is useful for notifying the upper layer, or downstream elements,
17035           that the decoded frame may contain artefacts.
17036           https://bugzilla.gnome.org/show_bug.cgi?id=703921
17037
17038 2015-06-24 13:48:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17039
17040         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17041         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17042         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
17043         * gst/vaapi/gstvaapidecode.c:
17044           decoder: add initial infrastructure for marking corrupted output.
17045           Add initial infrastructure in core codec library and vaapidecode to mark
17046           corrupted frames as such. A corrupted frame is such a frame that was
17047           reconstructed from invalid references for instance.
17048           https://bugzilla.gnome.org/show_bug.cgi?id=751434
17049           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17050
17051 2015-07-15 18:18:49 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17052
17053         * configure.ac:
17054           Bump version for development
17055
17056 === release 0.6.0 ===
17057
17058 2015-07-15 15:49:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17059
17060         * configure.ac:
17061           0.6.0
17062
17063 2015-07-15 15:49:19 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17064
17065         * NEWS:
17066           NEWS: updates
17067
17068 2015-07-14 19:39:20 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17069
17070         * gst-libs/gst/vaapi/gstvaapiprofile.c:
17071           vaapidecoder: no wmv profiles gstreamer 1.4/1.2
17072           This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
17073           Right now there is not a primary ranked parser for vc1 and the demuxers
17074           delivers caps without specifying the profile. This situation is not an issue
17075           for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
17076           explicit profile defined in the negotiated caps.
17077           Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
17078           negotiation admits caps subsets try outs.
17079           This patch solves the issue ignoring the profile negotiation in the caps. For
17080           gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
17081           done without the vc1 parser, such as happens in gstreamer 1.5.
17082           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17083
17084 2015-07-07 20:57:20 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17085
17086         * gst/vaapi/gstvaapi.c:
17087           Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
17088           Unfortunately vaapidecodebin element is not seems to be stable
17089           enough for autoplugging ahead of vaapidecode.
17090           Lowering the rank for now (cosidering the immediate 0.6 release).
17091           See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
17092           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17093
17094 2015-07-07 13:32:18 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17095
17096         * gst-libs/gst/vaapi/Makefile.am:
17097           build: Add missing CFLAGS to Makefile.am
17098
17099 2015-07-03 15:07:02 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17100
17101         * gst-libs/gst/vaapi/gstvaapifilter.c:
17102           gstvaapifilter: Only register STE property if it supported by corresponding VA library
17103           Fix the regression introduced in commit eb465fb.
17104           VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
17105           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17106
17107 2015-07-02 17:49:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17108
17109         * gst/vaapi/gstvaapipostproc.c:
17110           vaapipostproc: no format convert on GL tex upload meta
17111           When GL texture upload meta is negotiated, vaapipostproc shall not modify the
17112           color format of the buffer.
17113           https://bugzilla.gnome.org/show_bug.cgi?id=748184
17114
17115 2015-07-03 12:42:09 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17116
17117         * gst-libs/gst/vaapi/gstvaapifilter.c:
17118           gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
17119           VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
17120           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17121
17122 2015-07-02 21:57:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17123
17124         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17125           encoder:h265: Fix the check for packed-header support
17126           Use VA_ENC_PACKED_HEADER_* definition for checking.
17127           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17128
17129 2015-07-02 21:37:56 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17130
17131         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17132           encoder:h264: Fix the check for packed-header support
17133           Use VA_ENC_PACKED_HEADER_* definition for checking.
17134           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17135
17136 2015-07-02 21:00:14 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17137
17138         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17139           encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
17140           One buffering_period() SEI message shall be present in every IDR access unit
17141           when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
17142           use a non-CQP mode, e.g. CBR. In other words, when
17143           nal_hrd_parameters_present_flag is set to 1.
17144           One picture_timing() SEI messages shall be present in every access unit
17145           if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
17146           https://bugzilla.gnome.org/show_bug.cgi?id=722734
17147           https://bugzilla.gnome.org/show_bug.cgi?id=751831
17148           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17149
17150 2015-07-01 14:16:50 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17151
17152         * gst/vaapi/gstvaapidecodebin.c:
17153           vaapidecodebin: notify if vpp is disabled
17154           When the system is aware that VPP is not available by the VA driver,
17155           it would be useful to notify to the user that the disable-vpp property
17156           has changed.
17157           https://bugzilla.gnome.org/show_bug.cgi?id=749554
17158
17159 2015-07-01 14:17:17 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17160
17161         * gst/vaapi/gstvaapidecodebin.c:
17162         * gst/vaapi/gstvaapidecodebin.h:
17163           vaapidecodebin: enable vpp if it is available
17164           Instead of creating and adding VPP into the bin at setup, we wait until
17165           we are sure the VA driver supports it. We know that when the VA video
17166           context is received by the bin. Afterwards, it is decided to instanciate
17167           and link the VPP or not.
17168           This is more efficient and safer than waiting the VPP to fail and then
17169           disable it.
17170           https://bugzilla.gnome.org/show_bug.cgi?id=749554
17171
17172 2015-07-02 12:29:32 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17173
17174         * tests/test-display.c:
17175         * tests/test-windows.c:
17176           tests: Fix compilation while enabling egl as the only renderer in build
17177           Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
17178
17179 2015-07-02 10:45:50 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17180
17181         * configure.ac:
17182           configure: fix the build while enabling egl as the only renderer
17183
17184 2015-07-02 10:25:25 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17185
17186         * configure.ac:
17187           libs: Bump library major version
17188
17189 2015-06-30 09:44:18 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17190
17191         * gst/vaapi/gstvaapi.c:
17192         * gst/vaapi/gstvaapidecodebin.c:
17193         * gst/vaapi/gstvaapiencode.c:
17194         * gst/vaapi/gstvaapiencode_jpeg.c:
17195         * gst/vaapi/gstvaapipluginbase.c:
17196         * gst/vaapi/gstvaapipluginutil.c:
17197         * gst/vaapi/gstvaapipostproc.c:
17198         * gst/vaapi/gstvaapivideobufferpool.c:
17199         * gst/vaapi/gstvaapivideocontext.c:
17200         * gst/vaapi/gstvaapivideomemory.c:
17201         * gst/vaapi/gstvaapivideometa.c:
17202           gst/vaapi: Switch to upstreram like indentation.
17203           gst-indent for all gst/vaapi/*.c source files
17204
17205 2015-06-30 09:35:37 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17206
17207         * gst/vaapi/gstvaapidecodebin.c:
17208         * gst/vaapi/gstvaapidecodebin.h:
17209           vaapidecodebin: Add property to disable VPP
17210           Adding a new propery "disable-vpp", enabling it will prevent
17211           the insertion of vaapipostproc child element.
17212           This is helpful in debugging, specifically to narrow-down the
17213           vaapidecodebin/vaapipostproc related negotiation issues.
17214           No support for run-time disabling for now.
17215           https://bugzilla.gnome.org/show_bug.cgi?id=745901
17216
17217 2015-06-29 13:35:59 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17218
17219         * gst/vaapi/gstvaapipostproc.c:
17220           vaapipostproc: Fix wrong selection of passthrough mode.
17221           The Current code path is falling back to passthorugh mode if there is no
17222           vpp property set by the user explictily. But we should not use the
17223           passthrough mode if the negotiated src pad caps have a differnt color space
17224           format than sink pad caps (Even though the user didn't set the format property
17225           explicitly).
17226           https://bugzilla.gnome.org/show_bug.cgi?id=748184
17227           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17228
17229 2015-06-29 13:20:28 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17230
17231         * gst/vaapi/gstvaapipostproc.c:
17232           vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
17233           This is a workaround to deal with the va-intel-driver for non-native
17234           formats while doing advanced deinterlacing. The format of reference surfaces must
17235           be same as the format used by the driver internally for motion adaptive
17236           deinterlacing and motion compensated deinterlacing.
17237           A permanent solution could be to do the color space conversion internally
17238           for reference surfaces.
17239           https://bugzilla.gnome.org/show_bug.cgi?id=730925
17240           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17241
17242 2015-06-29 13:06:30 +0300  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17243
17244         * gst/vaapi/gstvaapisink.c:
17245           Work around ABBA deadlock between vaapisink and vaapipostproc
17246           vaapisink takes the display lock, then does a gst_buffer_replace which can
17247           take the lock on the gst_vaapi_video_pool.
17248           vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
17249           the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
17250           surfaces, which means that gst_vaapi_surface_create is
17251           called. gst_vaapi_surface_create takes the display lock.
17252           If vaapisink and vaapipostproc are in different threads, and this happens,
17253           you get a deadlock. vaapisink holds the display lock, and wants the
17254           gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
17255           and wants the display lock.
17256           Work around this by releasing the display lock in vaapisink around the
17257           gst_buffer_replace.
17258           https://bugzilla.gnome.org/show_bug.cgi?id=738249
17259           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17260           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17261
17262 2015-04-29 16:34:07 +0200  Jacobo Aragunde Pérez <jaragunde@igalia.com>
17263
17264         * gst/vaapi/gstvaapidecodebin.c:
17265         * gst/vaapi/gstvaapidecodebin.h:
17266           vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
17267           https://bugzilla.gnome.org/show_bug.cgi?id=745901
17268
17269 2015-05-19 11:24:10 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17270
17271         * gst/vaapi/gstvaapipostproc.c:
17272           vaapipostproc: log negotiated caps
17273
17274 2015-05-18 14:30:22 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17275
17276         * gst/vaapi/gstvaapipostproc.c:
17277           vaapipostproc: remove useless debug message
17278
17279 2015-02-12 12:31:57 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17280
17281         * gst/vaapi/gstvaapidecode.c:
17282           vaapidecode: log negotiated src/sink caps
17283
17284 2015-05-07 15:57:26 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17285
17286         * gst/vaapi/gstvaapisink.c:
17287           vaapisink: error handling if rendering fails
17288           This patch enhance the code path when an error is found when rendering a
17289           buffer.
17290           If the video meta doesn't contain a surface proxy or a surface, a warning
17291           message is printed.
17292           If the rendering backend fails, a error message is posted in the bus.
17293           https://bugzilla.gnome.org/show_bug.cgi?id=749382
17294
17295 2015-06-18 14:55:12 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17296
17297         * gst/vaapi/gstvaapisink.c:
17298           vaapisink: Fix the conditional pad template creation.
17299
17300 2015-06-18 13:19:26 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17301
17302         * tests/Makefile.am:
17303           build: Don't build simple-encoder test program if there is no VA Encoding support
17304           This will fix the build error against older VA-APIs <= 0.32
17305
17306 2015-06-18 12:20:37 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17307
17308         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17309         * gst-libs/gst/vaapi/gstvaapicompat.h:
17310           Fix build error for older VA-API versions
17311           Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
17312           VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
17313           VA >= 0.36.
17314
17315 2015-06-17 14:20:37 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17316
17317         * gst/vaapi/gstvaapisink.c:
17318           vaapisink: Fix the capsfeature advertisement in padtemplate
17319           This fixes the regression introduced in 64acc74.
17320           If a pad supports multiple set of capsfeatures, it needs to add
17321           multiple equal structures with different feature sets to the caps.
17322           Because caps structures with the same name but with a non-equal
17323           set of caps features are not compatible.
17324           Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
17325           https://bugzilla.gnome.org/show_bug.cgi?id=750095
17326
17327 2015-06-17 12:41:28 +0300  Adrian Cox <adrian@humboldt.co.uk>
17328
17329         * gst/vaapi/gstvaapisink.c:
17330           vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
17331           https://bugzilla.gnome.org/show_bug.cgi?id=750095
17332           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17333           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17334
17335 2015-06-17 09:53:29 +0300  Olivier Crete <olivier.crete@collabora.com>
17336
17337         * gst/vaapi/gstvaapipluginbase.c:
17338           vaapipluginbase: Override downstream allocation reply if no pool
17339           If the downstream replied without a pool, then override it.
17340           https://bugzilla.gnome.org/show_bug.cgi?id=748559
17341
17342 2015-06-09 15:15:31 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17343
17344         * gst/vaapi/gstvaapipostproc.c:
17345         * gst/vaapi/gstvaapipostproc.h:
17346           vaapipostproc: add color balance interface
17347           https://bugzilla.gnome.org/show_bug.cgi?id=720376
17348
17349 2015-05-22 18:13:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17350
17351         * gst-libs/gst/vaapi/gstvaapifilter.c:
17352         * gst-libs/gst/vaapi/gstvaapifilter.h:
17353         * gst/vaapi/gstvaapipostproc.c:
17354         * gst/vaapi/gstvaapipostproc.h:
17355           vaapipostproc: add skin tone enhancement
17356           Added the 'skin-tone-enhancement' property to vaapostproc.
17357           https://bugzilla.gnome.org/show_bug.cgi?id=744088
17358
17359 2015-05-20 18:02:37 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17360
17361         * docs/reference/libs/libs-docs.xml.in:
17362           doc: add VA-API reference in freedesktop
17363
17364 2015-06-04 19:03:44 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17365
17366         * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17367         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17368         * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17369           patches/videoparsers: rebase all the h264parse patches
17370           In order to avoid the creation of .orig files and break the distcheck target
17371
17372 2015-06-04 18:29:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17373
17374         * ext/libvpx/Makefile.am:
17375           build: don't build in parallel libvpx
17376           This fixes the distcheck -j XX target.
17377
17378 2015-06-02 08:52:53 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17379
17380         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
17381           encoder: jpeg: Fix the packed header generation
17382           This is a work-around to satisfy the va-intel-driver.
17383           Normalize the quality factor and scale QM values (only for packed header
17384           generation) similar to what VA-Intel driver is doing . Otherwise the
17385           generated packed headers will be wrong, since the driver itself is
17386           scaling the QM values using the normalized quality factor.
17387           https://bugzilla.gnome.org/show_bug.cgi?id=748335
17388           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17389
17390 2015-06-02 11:46:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17391
17392         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17393           decoder: h264: fix uninitialized variables in avcC mode.
17394           Fix uninitialized variables when decoding SPS and PPS NAL units from
17395           "codec-data" buffers. This is particularly important when seeking ops
17396           are involved, and the new persistent states are used more often.
17397           https://bugzilla.gnome.org/show_bug.cgi?id=750094
17398
17399 2015-06-01 18:39:18 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17400
17401         * gst/vaapi/gstvaapidecode.c:
17402           vaapidecode: remove unneeded casting
17403           And a code-style fix
17404
17405 2015-05-21 19:38:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17406
17407         * gst/vaapi/gstvaapidecode.c:
17408           vaapidecode: calculate decoding latency
17409           This is a naïve approach to the calculation of the VA-API decoding latency. It
17410           takes into consideration when the frame-rate has some insane value.
17411           https://bugzilla.gnome.org/show_bug.cgi?id=740419
17412
17413 2015-05-21 23:16:14 +1000  Jan Schmidt <jan@centricular.com>
17414
17415         * configure.ac:
17416           configure: Compiling against libgstgl requires libgstvideo
17417           Fix detection of the GstGL helper headers in uninstalled
17418           builds.
17419
17420 2015-05-28 10:52:48 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17421
17422         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17423           encoder: hevc: Fix the size over-flow for encoded buffer.
17424           The approximation of 6 times compression ratio migh not
17425           work in all cases. Especially when enabling I frames.
17426           Provide large enough size for coded-buffer creation.
17427
17428 2015-05-28 10:43:20 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17429
17430         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
17431           encoder: vp8: Fix the size over-flow for encoded buffer.
17432           The approximation of 4 times compression ratio will not
17433           work in all cases. Especially when enabling I frames.
17434           Provide large enough size for coded-buffer creation.
17435
17436 2015-05-28 05:43:49 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17437
17438         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17439           encoder: hevc:  fix bug in multi slice encoding.
17440           This is a work-around for satisfying the VA-Intel driver.
17441           The driver only support slices begin from CTU row start address.
17442           Multi-Slice encoding also requires a fix in va-intel-driver:
17443           http://lists.freedesktop.org/archives/libva/2015-May/003351.html
17444           https://bugzilla.gnome.org/show_bug.cgi?id=749854
17445           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17446
17447 2015-03-12 22:57:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17448
17449         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17450           decoder: h264: add initial support for loss of pictures.
17451           Implement decoding process for gaps in frame_num (8.5.2). This
17452           also somewhat supports unintentional loss of pictures.
17453           https://bugzilla.gnome.org/show_bug.cgi?id=745048
17454           https://bugzilla.gnome.org/show_bug.cgi?id=703921
17455           Original-patch-by: Wind Yuan <feng.yuan@intel.com>
17456           [fixed derivation of POC, ensured clone is valid for reference,
17457           actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
17458           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17459
17460 2015-05-22 11:42:52 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17461
17462         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17463           decoder: h264: add support for missing first field.
17464           Try to identify missing first fields too, thus disregarding any
17465           intermediate gaps in frames. We also assume that we keep the same
17466           field sequence, i.e. if previous frames were in top-field-first
17467           (TFF) order, then so are subsequent frames.
17468           Note that insertion of dummy first fields need to operate in two
17469           steps: (i) create the original first field that the current field
17470           will inherit from, and (ii) submit that field into the DPB prior
17471           to initializing the current (other) field POC values but after any
17472           reference flag was set. i.e. copy reference flags from the child
17473           (other field) to the parent (first field).
17474           https://bugzilla.gnome.org/show_bug.cgi?id=745048
17475
17476 2015-05-07 14:00:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17477
17478         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17479           decoder: h264: add support for missing second field.
17480           Interlaced H.264 video frames always have two fields to decode and
17481           display. However, in some cases, e.g. packet loss, one of the field
17482           can be missing. This perturbs the reference picture marking process,
17483           whereby the number of references available in DPB no longer matches
17484           the expected value.
17485           This patch adds initial support for missing field within a decoded
17486           frame. The current strategy taken is to find out the nearest field,
17487           by POC value, and with the same parity.
17488           https://bugzilla.gnome.org/show_bug.cgi?id=745048
17489
17490 2015-05-22 17:06:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17491
17492         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17493           decoder: h264: improve tracking of "top-field-first" flag.
17494           Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
17495           does not mandate it. This will be useful for tracking missing fields, and
17496           also for more correct _split_fields() implementation for frames in the DPB.
17497
17498 2015-05-05 11:56:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17499
17500         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17501           decoder: h264: skip all pictures prior the first I-frame.
17502           Don't try to decode pictures until the first I-frame is received within
17503           the currently active sequence. There is no point is decoding and then
17504           displaying frames with artifacts.
17505
17506 2015-05-12 15:36:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17507
17508         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17509           decoder: h264: fix processing of EOSEQ NAL.
17510           Fix decoding of end_of_seq() NAL unit so that to not submit the current
17511           picture for decoding again. This is pretty vintage code that dates back
17512           before the existing of the whole decoder units machinery.
17513           One issue that could be arising if that code was kept is that we could
17514           have submitted a picture, and subsequently a GstVideoCodec frame, twice.
17515           Once without the decode_only flag set, and once with that flag set. The
17516           end result is that the GstVideoDecoder would release the codec frame
17517           twice, thus releasing stale data.
17518           In short, the piece of code that is removed by this patch is for once
17519           completely obsolete for a while, and secondly error-prone in corner
17520           cases.
17521
17522 2013-02-28 15:26:36 +0800  Wind Yuan <feng.yuan@intel.com>
17523
17524         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17525         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17526         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17527         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17528           decoder: add utility function to clone picture objects.
17529           https://bugzilla.gnome.org/show_bug.cgi?id=703921
17530           Signed-off-by: Wind Yuan <feng.yuan@intel.com>
17531           [added cosmetic changes, fixed propagation of "one-field" flag to
17532           children, fixed per-codec clone modes (h264)]
17533           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17534
17535 2015-05-27 23:49:18 +0300  Alban Browaeys <prahal@yahoo.com>
17536
17537         * gst/vaapi/Makefile.am:
17538           build: don't compile HEVC encoder if not supported
17539           Fix:
17540           (gst-plugin-scanner:16681): GStreamer-WARNING **: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so: undefined symbol: gst_vaapi_encoder_h265_get_default_properties
17541           https://bugzilla.gnome.org/show_bug.cgi?id=749954
17542           Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17543           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17544
17545 2015-05-27 23:43:16 +0300  Alban Browaeys <prahal@yahoo.com>
17546
17547         * gst-libs/gst/vaapi/gstvaapicompat.h:
17548         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17549           HEVC: decode: add missing va_dec_hevc header
17550           Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17551           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17552           https://bugzilla.gnome.org/show_bug.cgi?id=749953
17553
17554 2015-05-26 13:28:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17555
17556         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17557           mpeg2: fix PTS cache for GOP start.
17558           If the GOP temporal sequence number (TSN) is interpolated from a valid
17559           PTS, then we need to compensate that PTS corresponding to the start of
17560           GOP with the next picture to be decoded, which shall be an I-frame,
17561           based on its sequence number.
17562           https://bugzilla.gnome.org/show_bug.cgi?id=748676
17563
17564 2015-05-27 10:49:56 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17565
17566         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17567           mpeg2: avoid crash when seeking with debug logs
17568           Move down the debug message when the state of the decoder is verified
17569           so the slice header is not NULL.
17570
17571 2014-12-17 00:41:10 +1100  Jan Schmidt <jan@centricular.com>
17572
17573         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17574           mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
17575           Reset state and add some checks for safe state to avoid a crash and
17576           a warning after the decoder is destroyed/recreated during a seek.
17577
17578 2015-05-26 10:21:59 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17579
17580         * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17581         * patches/videoparsers/series.frag:
17582           patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
17583           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17584
17585 2015-05-26 10:03:20 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17586
17587         * ext/codecparsers:
17588           codecparsers: Update to gst-vaapi-branch commit 20ee952
17589           b7dded3: h264parse: don't consider unknown stream-format as avc
17590           5110ad9: h264parse: fix up handling of input caps corner cases
17591           e51db3e: h264parse: Remove dead code
17592           3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
17593           8482957: h265parse: Fix profile, tier and level setting in caps
17594           4649acb: h265parse: Fix the memory freeing of stored VPS nals
17595           f2beeb7: h265parse: Fix source caps to report cropped dimensions
17596           6886a31: h264parse: Fix profile and level setting in caps
17597           5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
17598           eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
17599           53074fc: build: Upgrade GStreamer dependency to 1.0
17600           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17601
17602 2015-05-26 06:01:10 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17603
17604         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17605           HEVC: decode: Replace clip3 implementation with glib CLAMP macro
17606           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17607
17608 2015-05-26 05:33:33 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17609
17610         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17611           HEVC: decode: Update Cropping Rectangle
17612           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17613
17614 2015-05-25 11:58:20 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17615
17616         * gst/vaapi/Makefile.am:
17617         * gst/vaapi/gstvaapi.c:
17618         * gst/vaapi/gstvaapiencode_h265.c:
17619         * gst/vaapi/gstvaapiencode_h265.h:
17620           HEVC_Encode: Add HEVC(h265) Encoder plugin
17621           https://bugzilla.gnome.org/show_bug.cgi?id=748874
17622           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17623
17624 2015-05-25 11:38:34 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17625
17626         * gst-libs/gst/vaapi/Makefile.am:
17627         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17628         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
17629           HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
17630           https://bugzilla.gnome.org/show_bug.cgi?id=748874
17631           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17632
17633 2015-05-25 11:26:14 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17634
17635         * configure.ac:
17636           HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
17637           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17638           https://bugzilla.gnome.org/show_bug.cgi?id=748874
17639
17640 2015-05-25 10:58:52 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17641
17642         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
17643         * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
17644           gstvaapiutils_h265: Add H265 Tier specific utility functions
17645           -- New API: gst_vaapi_utils_h265_get_tier_from_string()
17646           -- New API: gst_vaapi_utils_h265_get_tier_string()
17647           https://bugzilla.gnome.org/show_bug.cgi?id=748874
17648           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17649
17650 2015-05-19 10:57:42 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17651
17652         * docs/reference/plugins/Makefile.am:
17653           doc: conditional linking for scanner
17654           Add x11 library only if it is enabled.
17655           https://bugzilla.gnome.org/show_bug.cgi?id=749018
17656
17657 2015-05-19 10:37:13 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17658
17659         * docs/reference/plugins/plugins.types:
17660           doc: fix scanner compilation warning
17661           https://bugzilla.gnome.org/show_bug.cgi?id=749018
17662
17663 2015-05-06 16:19:23 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17664
17665         * docs/reference/libs/libs-docs.xml.in:
17666         * docs/reference/libs/libs-sections.txt:
17667           doc: update sections and symbols
17668           https://bugzilla.gnome.org/show_bug.cgi?id=749018
17669
17670 2015-05-13 10:38:24 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17671
17672         * .gitignore:
17673         * Makefile.am:
17674         * debian.upstream/Makefile.am:
17675         * docs/Makefile.am:
17676         * docs/reference/Makefile.am:
17677         * docs/reference/libs/Makefile.am:
17678         * docs/reference/plugins/Makefile.am:
17679         * ext/Makefile.am:
17680         * ext/libvpx/Makefile.am:
17681         * git.mk:
17682         * gst-libs/Makefile.am:
17683         * gst-libs/gst/Makefile.am:
17684         * gst-libs/gst/base/Makefile.am:
17685         * gst-libs/gst/codecparsers/Makefile.am:
17686         * gst-libs/gst/vaapi/Makefile.am:
17687         * gst/Makefile.am:
17688         * gst/vaapi/Makefile.am:
17689         * patches/Makefile.am:
17690         * patches/videoparsers/Makefile.am:
17691         * pkgconfig/Makefile.am:
17692         * tests/Makefile.am:
17693           build: use git.mk
17694           This patch handles dinamically the gitignore files with git.mk[1].
17695           Removed the automake variable MAINTAINERCLANFILES in most of the
17696           Makefile.am files since now it is handled by the top one.
17697           1. https://github.com/behdad/git.mk/blob/master/git.mk
17698           https://bugzilla.gnome.org/show_bug.cgi?id=749321
17699
17700 2015-05-07 11:28:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17701
17702         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17703           wayland: sync() when destroy()
17704           Before pushing a the new frame, the render() method calls sync() to flush the
17705           pending frames. Nonetheless, the last pushed frame never gets rendered, leading
17706           to a memory leak too.
17707           This patch calls sync() in the destroy() to flush the pending frames before
17708           destroying the window.
17709           Also a is_cancelled flag is added. This flag tells to not flush the event
17710           queue again since the method failed previously or were cancelled by the user.
17711           https://bugzilla.gnome.org/show_bug.cgi?id=749078
17712
17713 2015-05-07 15:55:40 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
17714
17715         * gst-libs/gst/vaapi/gstvaapiwindow.c:
17716         * gst-libs/gst/vaapi/gstvaapiwindow.h:
17717         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17718         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17719         * gst/vaapi/gstvaapisink.c:
17720           vaapisink: implement unlock/unlock_stop for wayland
17721           Otherwise wl_display_dispatch_queue() might prevent the pipeline from
17722           shutting down. This can happen e.g. if the wayland compositor exits while
17723           the pipeline is running.
17724           Changes:
17725           * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
17726           * splitted the patch removing wl_display_dispatch_queue()
17727           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17728           https://bugzilla.gnome.org/show_bug.cgi?id=747492
17729           https://bugzilla.gnome.org/show_bug.cgi?id=749078
17730
17731 2015-05-07 12:33:34 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17732
17733         * configure.ac:
17734         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17735           wayland: wl_display_dispatch_queue() can block forever.
17736           wl_display_dispatch_queue() might prevent the pipeline from shutting
17737           down. This can happen e.g. if the wayland compositor exits while the
17738           pipeline is running.
17739           This patch replaces it with these steps:
17740           - With wl_display_prepare_read() all threads announce their intention
17741           to read.
17742           - wl_display_read_events() is thread save. On threads reads, the other
17743           wait for it to finish.
17744           - With wl_display_dispatch_queue_pending() each thread dispatches its
17745           own events.
17746           wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
17747           Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
17748           * stripped out the unlock() unlock_stop() logic
17749           * stripped out the poll handling
17750           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17751           https://bugzilla.gnome.org/show_bug.cgi?id=749078
17752           https://bugzilla.gnome.org/show_bug.cgi?id=747492
17753
17754 2015-05-07 18:30:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17755
17756         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17757           wayland: rename frame for last_frame
17758           Since frame in the private data means the last frame sent, it would
17759           semantically better use last_frame.
17760           Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
17761           functions.
17762           https://bugzilla.gnome.org/show_bug.cgi?id=749078
17763
17764 2015-05-07 11:18:12 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17765
17766         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17767           wayland: use a counter as sync flag
17768           Wayland window has a pointer to the last pushed frame and use it to set the
17769           flag for stopping the queue dispatch loop. This may lead to memory leaks,
17770           since we are not keeping track of all the queued frames structures.
17771           This patch removes the last pushed frame pointer and change the binary flag
17772           for an atomic counter, keeping track of number of queued frames and use it for
17773           the queue dispatch loop.
17774           https://bugzilla.gnome.org/show_bug.cgi?id=749078
17775
17776 2015-05-07 10:36:17 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17777
17778         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17779           wayland: decouple wl_buffer from frame
17780           This patch takes out the wayland's buffer from the the frame structure. The
17781           buffer is queued to wayland and destroyed in the "release" callback. The
17782           frame is freed in the surface's "done" callback.
17783           In this way a buffer may be leaked but not the whole frame structure.
17784           - surface 'done' callback is used to throttle the rendering operation and to
17785           unallocate the frame, but not the buffer.
17786           - buffer 'release' callback is used to destroy wl_buffer.
17787           Original-patch-by: Zhao Halley <halley.zhao@intel.com>
17788           * code rebase
17789           * kept the the event_queue for buffer's proxy
17790           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17791           https://bugzilla.gnome.org/show_bug.cgi?id=749078
17792
17793 2015-05-14 16:22:36 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17794
17795         * gst/vaapi/gstvaapisink.c:
17796           vaapisink: fix indentation
17797
17798 2015-05-13 11:54:01 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17799
17800         * debian.upstream/Makefile.am:
17801         * ext/libvpx/Makefile.am:
17802         * gst-libs/gst/vaapi/Makefile.am:
17803         * gst/vaapi/Makefile.am:
17804         * tests/Makefile.am:
17805           build: fix make distcheck
17806           This patch fixes several issues found when running the `make distcheck`
17807           target:
17808           - In commit c561b8da, the update of gstcompat.h in Makefile.am was
17809           forgotten.
17810           - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
17811           forgotten.
17812           - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
17813           - The make target distcleancheck failed because some autogenerated files
17814           were not handled with the DISTCLEANFILES variable.
17815           Note: `make distcheck -jXX` is not currently supported.
17816
17817 2015-05-13 13:28:17 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17818
17819         * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17820         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17821         * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17822           h264parse: update patches with upstream
17823           These patches didn't applied cleanly, breaking the `make distcleancheck`
17824           target. Re-sync'ed the patches against the current git's submodule.
17825
17826 2015-05-12 16:04:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17827
17828         * tests/simple-encoder.c:
17829           tests: simple-encoder: fix build warnings on 64-bit platforms.
17830           Add a cosmetic change to replace VAAPI buffer with VA buffer and most
17831           importantly fix warnings spitted out during build on 64-bit platforms.
17832           ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17833           g_warning ("Invalid VAAPI buffer size (%d)", size);
17834           ^
17835           ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17836           g_warning ("Failed to create output buffer of size %d", size);
17837           ^
17838
17839 2015-05-08 15:54:09 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17840
17841         * gst/vaapi/gstvaapipluginbase.c:
17842         * gst/vaapi/gstvaapipluginutil.c:
17843         * gst/vaapi/gstvaapipluginutil.h:
17844         * gst/vaapi/gstvaapivideocontext.h:
17845           plugins: remove gstreamer-0.10 crumbs
17846           GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
17847           Still, its definition was still in the code. This patch removes it.
17848           https://bugzilla.gnome.org/show_bug.cgi?id=749113
17849
17850 2015-05-05 13:08:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17851
17852         * tests/Makefile.am:
17853         * tests/simple-encoder.c:
17854         * tests/y4mreader.c:
17855         * tests/y4mreader.h:
17856           tests: add simple-encoder program
17857           This patch adds a simple-encoder test program that uses libgstvaapi for video
17858           encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
17859           format. That can be from a regular file or standard input when the input
17860           filename is "-".
17861           Usage: simple-encoder [options]* <source>
17862           Options:
17863           --output|-o     output file name
17864           --codec|-c      codec to use for video encoding
17865           --bitrate|-b    desired bitrate (kbps)
17866           By default, and as an initial patch, the encoded stream shall conform to the
17867           minimally supported profile. That is "Constrained Baseline Profile" for H.264
17868           and "Simple Profile" for MPEG-2. Though, those are the defaults to be
17869           generated by libgstvaapi.
17870           You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
17871           Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
17872           * general code clean-up
17873           * removed the yuv reader thread
17874           * re-wrote the y4m file parser
17875           * updated used API fixed some wrong usage
17876           * fixed a lot of memory leaks
17877           * added the bitrate setting
17878           * keep fps' numerator and denominator
17879           * simplified the thread control
17880           * removed custom logging and use glib
17881           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17882           https://bugzilla.gnome.org/show_bug.cgi?id=719528
17883
17884 2015-05-05 13:02:19 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17885
17886         * gst-libs/gst/vaapi/gstvaapiencoder.h:
17887           libs: trivial documentation fix
17888           GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
17889           are not errors, so they do not have the ERROR namespace.
17890           This patch fixes this typo in documentation.
17891
17892 2015-02-15 15:01:03 +0000  Simon Farnsworth <simon@farnz.org.uk>
17893
17894         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17895           window: Correct prototype to match implementation
17896           On s390x, guintptr and GstVaapiID are not compatible types. The
17897           implementation of gst_vaapi_window_new_internal() and all its callers
17898           seem to assume that its third argument is a GstVaapiID, while the
17899           header gives it guintptr type.
17900           https://bugzilla.gnome.org/show_bug.cgi?id=744559
17901
17902 2015-05-04 14:24:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17903
17904         * gst/vaapi/gstvaapidecode.c:
17905         * gst/vaapi/gstvaapidecodebin.c:
17906           vaapidecode: add guards for disabled codecs.
17907           Fix link when building plugin elements without HEVC support. e.g. don't
17908           try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
17909           support HEVC enabled in libgstvaapi.
17910           Also, drop disabled codecs from static template caps. Add the missing
17911           HEVC static template caps into vaapidecodebin too.
17912
17913 2015-04-30 13:29:48 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17914
17915         * configure.ac:
17916         * gst-libs/gst/vaapi/glibcompat.h:
17917           build: upgrade glib dependency to 2.32
17918           Since bug #745728 was fixed the oldest supported version of GStreamer is
17919           1.2. That GStreamer release requires glib 2.32, so we can upgrade our
17920           requirement too.
17921           This patch changes the required version of glib in configure.ac and removes
17922           the hacks in glibcompat.h
17923           https://bugzilla.gnome.org/show_bug.cgi?id=748698
17924
17925 2015-04-30 13:21:08 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17926
17927         * gst/vaapi/gstvaapipluginbase.c:
17928           plugins: check if the pool config is already set
17929           In commit 97b768, a regression for GStreamer 1.2 was introduced:
17930           GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
17931           config option is already set. This patch adds an inline function to
17932           first verify if the option is not in the pool config berfore add it.
17933
17934 2015-04-29 12:39:50 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17935
17936         * gst/vaapi/gstvaapipostproc.c:
17937           vaapipostproc: tune up a couple of log messages
17938           In order to reduce the noise, the query type log was downgrade from INFO to
17939           DEBUG, and the shared display address log message is assigned to the object.
17940
17941 2015-04-29 12:27:43 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17942
17943         * gst/vaapi/gstvaapipluginbase.c:
17944           plugins: check gst_buffer_pool_set_config()
17945           Check the return value of gst_buffer_pool_set_config(). If it fails an error
17946           message is posted in the bus.
17947
17948 2015-04-29 12:24:52 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17949
17950         * gst/vaapi/gstvaapipluginbase.c:
17951           plugins: more specific log message
17952           Be more specific in the log message about the reason of creating a new pool.
17953
17954 2015-04-29 12:22:29 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17955
17956         * gst/vaapi/gstvaapipluginbase.c:
17957           plugins: delete unused variable
17958           need_pool is a boolean variable extracted from the allocation query, but it is
17959           not used afterwards.
17960
17961 2015-04-27 19:21:12 -0400  Olivier Crete <olivier.crete@collabora.com>
17962
17963         * gst/vaapi/gstvaapipluginbase.c:
17964           vaapipluginbase: Update the pool if there was no pool in the downstream reply
17965           Fix regression introduced by bd866479, the query after decide_allocation()
17966           always needs a pool in the first slot.
17967           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17968           https://bugzilla.gnome.org/show_bug.cgi?id=748559
17969
17970 2015-04-27 20:50:19 -0400  Olivier Crete <olivier.crete@collabora.com>
17971
17972         * gst/vaapi/gstvaapivideobufferpool.c:
17973           videopool: Free members before chaining up finalize
17974           The finalize function in GObject frees the object memory, so
17975           everything else needs to have been freed before.
17976           https://bugzilla.gnome.org/show_bug.cgi?id=748563
17977
17978 2015-04-27 20:31:50 -0400  Olivier Crete <olivier.crete@collabora.com>
17979
17980         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
17981           wayland: don't leak the registry proxy
17982           Release the registry proxy when closing the display.
17983           https://bugzilla.gnome.org/show_bug.cgi?id=748564
17984
17985 2015-04-21 17:17:06 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17986
17987         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17988           wayland: refactor _sync() method and rename callback
17989           This patch only intends to improve readability: in the method
17990           gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
17991           single while loop.
17992           Also renames the frame_redraw_callback() callback into frame_done_callback(),
17993           which is a bit more aligned to Wayland API.
17994
17995 2015-02-03 16:52:06 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
17996
17997         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17998           wayland: free frame in buffer release callback
17999           The Wayland compositor may still use the buffer when the frame done
18000           callback is called.
18001           This patch destroys the frame (which contains the buffer) until the
18002           release callback is called. The draw termination callback only controls
18003           the display queue dispatching.
18004           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18005           https://bugzilla.gnome.org/show_bug.cgi?id=747492
18006
18007 2015-04-21 10:00:36 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18008
18009         * gst/vaapi/gstvaapidecode.c:
18010           vaapidecode: refactor gst_vaapidecode_internal_flush()
18011           This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
18012           label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
18013           shares the same error message of gst_vaapidecode_internal_flush() when flush
18014           fails.
18015
18016 2015-04-20 13:27:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18017
18018         * gst/vaapi/gstvaapidecode.c:
18019           vaapidecode: refactor gst_vaapidecode_destroy()
18020           Add the method gst_vaapidecode_purge(). This method releases the
18021           flushed frames from the decoder.
18022           This new method add more readablity to gst_vaapidecode_destroy()
18023
18024 2015-04-16 12:53:18 -0400  Olivier Crete <olivier.crete@collabora.com>
18025
18026         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18027         * gst/vaapi/gstvaapidecode.c:
18028           vaapidecode: Tell the base class about released frames on close
18029           The base class needs to be informed about frames that were still queued
18030           in the decoder on release, otherwise they are leaked.
18031           https://bugzilla.gnome.org/show_bug.cgi?id=747999
18032
18033 2015-04-19 11:19:03 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18034
18035         * gst/vaapi/gstvaapidecode.c:
18036           vaapidecode: reduce logging noise
18037           When a frame is rejected by downstream, the message is logged twice. This
18038           patch removes one of those logging messages.
18039           Also, the reject of a frame doesn't mean an alarming error. This patch demotes
18040           the log message from error to info.
18041
18042 2015-04-16 20:18:13 -0400  Olivier Crete <olivier.crete@collabora.com>
18043
18044         * gst/vaapi/gstvaapidecode.c:
18045           vaapidecode: Use the GstVideoDecoder error reporting function
18046           This way, the decoder won't stop on the first decoding error,
18047           in most cases it can recover after some glitchiness.
18048           https://bugzilla.gnome.org/show_bug.cgi?id=744620
18049
18050 2015-04-17 19:10:35 +0000  Olivier Crete <olivier.crete@collabora.com>
18051
18052         * gst/vaapi/gstvaapipluginbase.c:
18053           vaapipluginbase: The allocation query can return without a pool
18054           It is possible to return the min/max/size without actually providing
18055           a pool. This way the source knows how many buffers downstream needs.
18056           https://bugzilla.gnome.org/show_bug.cgi?id=748076
18057
18058 2015-04-17 16:45:22 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18059
18060         * ext/Makefile.am:
18061         * gst/vaapi/Makefile.am:
18062         * gst/vaapi/gstvaapiparse.c:
18063         * gst/vaapi/gstvaapiparse.h:
18064         * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
18065         * patches/videoparsers/series.frag:
18066           plugins: Add h265 videoparser element "vaapiparse_h265"
18067           This is a mirror of h265parse element in upstream gst-plugins-bad.
18068           There could be additional patches but all should go to upstream.
18069           This is for making development faster.
18070           Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
18071
18072 2015-04-17 15:44:04 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18073
18074         * ext/codecparsers:
18075           codecparsers: Update to gst-vaapi-branch commit 43a0368
18076           45f1c28: codecparser: h265: Fix nal unit size checking
18077           f25987b: codecparser: h265: Calculate crop rectangle dimensions
18078           639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
18079           4c8ec41: Add h265 videoparser plugin source files
18080
18081 2015-04-17 10:10:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18082
18083         * autogen.sh:
18084           autogen: drop videoutils submodule.
18085
18086 2015-04-17 10:36:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18087
18088         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18089           decoder: hevc: cosmetics.
18090           Mostly coding style updates. Avoid integer signess inconsistencies.
18091           Optimize dpb_find_lowest_poc() to align with original h264's decoder.
18092
18093 2015-04-16 14:13:59 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18094
18095         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18096           decoder: hevc: Add Support for tiled video decoding
18097           Based up on the value of uniform_spacing_flag in Picture Parameter Set,
18098           the tile column width and tile row height should be calculated.
18099           Equations: 6-1, 6-2
18100           Tiled video Descriptions: 7.3.2.3, 7.4.3.3
18101
18102 2015-04-16 14:13:21 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18103
18104         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18105           decoder: hevc: Fix decoding when there are RASL pictures present.
18106           -- Set NoRaslOutputFlag based on EOS and EOB Nal units
18107           -- Fix PicOutputFlag setting for RASL picture
18108           -- Fix prev_poc_lsb/prev_poc_msb calculation
18109           -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
18110           -- Fixed couple of crashes and added cosmetics
18111
18112 2015-04-14 10:54:54 +0100  Martin Sherburn <martin.sherburn@datapath.co.uk>
18113
18114         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
18115           display: drm: fix race condition setting device type
18116           There is a race condition where g_drm_device_type can be left set to
18117           DRM_DEVICE_RENDERNODES when it shouldn't.
18118           If thread 1 comes in and falls into the last else statement setting up both
18119           RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
18120           it sets g_drm_device_type = RENDERNODES.
18121           Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
18122           up that type to be tried but then encounters the lock and has to wait until the
18123           first thread finishes. Once the lock is acquired it will then proceed to ONLY try
18124           RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
18125           attempts will only try RENDERNODES.
18126           So to avoid this situation I have simply moved the acquisition of the lock higher
18127           up in the attached patch.
18128           https://bugzilla.gnome.org/show_bug.cgi?id=747914
18129
18130 2015-04-15 15:26:12 -0400  Olivier Crete <olivier.crete@collabora.com>
18131
18132         * gst/vaapi/gstvaapipostproc.c:
18133           vaapipostproc: Don't create filter on caps query
18134           The problem with this is that creating the filter causes the display to
18135           be selected, and the caps query happens while linking the element. So,
18136           if the downstream or upstream element is using a specific display
18137           object, it won't be propagated correctly to the postproc as it already
18138           has a display at this point.
18139           https://bugzilla.gnome.org/show_bug.cgi?id=747945
18140
18141 2015-04-15 15:20:17 -0400  Olivier Crete <olivier.crete@collabora.com>
18142
18143         * gst-libs/gst/vaapi/gstvaapivideopool.c:
18144           videopool: Release lock while allocating new object
18145           The video pool can be accessed with the display lock held, for example,
18146           when releasing a buffer from inside vaapisink_render, but allocating
18147           a new object can may also take the display lock. Which means a possible
18148           deadlock.
18149           https://bugzilla.gnome.org/show_bug.cgi?id=747944
18150
18151 2015-04-15 17:26:43 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18152
18153         * gst/vaapi/gstvaapisink.c:
18154           vaapisink: use GstVideoSink vmethod show_frame()
18155           vaapisink inherits from GstVideoSink, in order to use its functionality (such
18156           as ::show-preroll-frame property), we should use its vmethod show_frame(),
18157           rather than call ourselves render() and preroll().
18158
18159 2015-04-15 18:16:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18160
18161         * gst/vaapi/gstvaapisink.c:
18162         * gst/vaapi/gstvaapisink.h:
18163           vaapisink: add 'handoff' signal
18164           This patch adds the signal ::handoff and the property signal-handoffs. If the
18165           property is set TRUE, the signal ::handoff is emitted just after the buffer is
18166           rendered.
18167           Based on Zhao Halley <halley.zhao@intel.com>
18168           https://bugzilla.gnome.org/show_bug.cgi?id=747905
18169
18170 2015-04-14 10:17:16 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18171
18172         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18173           HEVC: silence the compiler
18174           Fixed a couple of clang complains.
18175
18176 2015-02-02 16:42:43 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
18177
18178         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18179           wayland: destroy vpp buffer pool on resize
18180           Otherwise the old buffers with the old size are used.
18181           https://bugzilla.gnome.org/show_bug.cgi?id=747491
18182
18183 2015-04-14 10:08:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18184
18185         * configure.ac:
18186         * gst-libs/gst/vaapi/Makefile.am:
18187           build: don't compile HEVC if not supported
18188           HEVC decoding was added recently libva-1.5.
18189           This patch avoids HEVC decoding support in libgstvaapi if it is not available
18190           in the installed libva.
18191           https://bugzilla.gnome.org/show_bug.cgi?id=747831
18192
18193 2015-04-13 16:04:59 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18194
18195         * gst/vaapi/gstvaapidecode.c:
18196           vaapidecode: Update Author name in plugin metadata
18197
18198 2015-04-13 15:43:30 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18199
18200         * gst/vaapi/gstvaapidecode.c:
18201           plugins: Add HEVC decoder
18202           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18203
18204 2015-04-13 15:41:45 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18205
18206         * gst-libs/gst/vaapi/Makefile.am:
18207         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18208         * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
18209           HEVC: Add HEVC(h265) decoder to core libgstvaapi
18210           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18211
18212 2015-04-13 14:53:46 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18213
18214         * gst-libs/gst/vaapi/Makefile.am:
18215         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
18216         * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
18217         * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
18218           HEVC: Add codec utility methods to core libgstvaapi
18219           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18220
18221 2015-04-13 14:52:53 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18222
18223         * gst-libs/gst/vaapi/gstvaapiprofile.c:
18224         * gst-libs/gst/vaapi/gstvaapiprofile.h:
18225           HEVC: gstvaapiprofile: Add profile definitions
18226           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18227
18228 2015-04-13 14:52:14 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18229
18230         * configure.ac:
18231           HEVC: build: Check availability of h265 decoder APIs
18232           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18233
18234 2015-04-13 14:51:51 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18235
18236         * configure.ac:
18237         * ext/Makefile.am:
18238         * gst-libs/gst/codecparsers/Makefile.am:
18239           HEVC: Allow to build h265 codecparser internally
18240           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18241
18242 2015-04-08 18:05:20 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18243
18244         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18245         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
18246         * gst-libs/gst/vaapi/gstvaapisurface.c:
18247           guard buffer export API if not available
18248           The support for buffer exports in VA-API was added in version 0.36. These
18249           interfaces are for interop with EGL, OpenCL, etc.
18250           GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
18251           has to support VA-API versions ranging from 0.30.4, which doesn't support it.
18252           This patch guards all the buffer exports handling (and dmabuf allocator) if
18253           the detected VA-API version is below 0.36.
18254           https://bugzilla.gnome.org/show_bug.cgi?id=746405
18255
18256 2015-04-13 11:29:35 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18257
18258         * ext/codecparsers:
18259           codecparsers: Update to gst-vaapi-branch commit 9bc72b0
18260           767bf22: codecparsers: h265: add helpers to convert quantization matrices
18261           71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
18262           3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
18263           10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
18264           2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
18265
18266 2014-12-11 12:02:38 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
18267
18268         * gst/vaapi/gstvaapidecode.c:
18269           vaapidecode: unref video codec frame twice
18270           We get one reference when the frame is passed to decode_handle_frame()
18271           and create another one in gst_vaapi_decoder_push_frame().
18272           Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
18273           Here the frame is always released twice:
18274           gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
18275           gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
18276           In gst_vaapidecode_reset_full() both references to the frame must be
18277           released as well.
18278           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18279           https://bugzilla.gnome.org/show_bug.cgi?id=743226
18280
18281 2015-04-08 18:20:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18282
18283         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
18284           libs: remove unused variables
18285           clang reports these unused variables. Let's get rid of them.
18286           This patch is a missing part of commit c82e5173
18287           https://bugzilla.gnome.org/show_bug.cgi?id=747312
18288
18289 2015-04-03 20:38:07 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18290
18291         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18292           decoder: mpeg4: remove an spurious comparison
18293           The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
18294           less than zero. Hence this pre-condition test is a no-op. This patch removes
18295           that code.
18296           https://bugzilla.gnome.org/show_bug.cgi?id=747312
18297
18298 2015-04-03 20:33:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18299
18300         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18301           encoder: h264: casts slice_param->slice_type
18302           slice_type in slice_param is defined as (char *), but it is compared against a
18303           signed integer. clang complains about this comparison.
18304           This patch casts the variable.
18305           https://bugzilla.gnome.org/show_bug.cgi?id=747312
18306
18307 2015-04-03 20:31:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18308
18309         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
18310           encoder: avoid GstVaapiCodedBuffer redefinition
18311           The symbol GstVaapiCodedBuffer is already defined in
18312           gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
18313           gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
18314           This patch removes that redefinition.
18315           https://bugzilla.gnome.org/show_bug.cgi?id=747312
18316
18317 2015-04-03 20:28:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18318
18319         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18320         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
18321           libs: remove unused variables
18322           clang reports these unused variables. Let's get rid of them.
18323           https://bugzilla.gnome.org/show_bug.cgi?id=747312
18324
18325 2015-04-03 20:27:24 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18326
18327         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18328           encoder: mpeg2: use fabsf() instead of abs()
18329           The member value in frame_rate_tab is float, the result of the abs() function
18330           should be float too. But abs() only manages integers.
18331           This patch replaces abs() with fabsf() to handle correctly the possible floats
18332           values.
18333           https://bugzilla.gnome.org/show_bug.cgi?id=747312
18334
18335 2015-04-03 20:02:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18336
18337         * gst-libs/gst/vaapi/gstvaapidecoder.c:
18338         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18339         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
18340         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18341         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18342           decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
18343           Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
18344           GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
18345           https://bugzilla.gnome.org/show_bug.cgi?id=747312
18346
18347 2015-04-04 00:40:29 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18348
18349         * README:
18350           Update README
18351
18352 2015-04-04 00:06:56 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18353
18354         * .gitmodules:
18355         * README:
18356           Changing source code download links from https://gitorious  to https://github
18357           -- gitmodules: Change gstreamer-codecparsers submodule source download link
18358           -- README: Change the gstreamer-vaapi webpage link
18359
18360 2015-04-03 23:30:24 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18361
18362         * ext/codecparsers:
18363           codecparsers: update to gst-vaapi-branch commit 1f792e4
18364           87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
18365           7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
18366           2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
18367           2b92a67: h264parse: reset the parser information when caps changes
18368           05eee86: codecparsers: Indent file
18369           e27a38b: codecparsers: Add READ_UE_MAX macro
18370           2036471: Constify some static arrays everywhere
18371
18372 2015-04-03 17:45:08 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18373
18374         * gst/vaapi/gstvaapivideoconverter_glx.c:
18375         * gst/vaapi/gstvaapivideoconverter_x11.c:
18376           Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
18377
18378 2015-04-03 17:09:08 +0300  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18379
18380         * gst/vaapi/gstvaapidecode.c:
18381         * gst/vaapi/gstvaapidecodebin.c:
18382         * gst/vaapi/gstvaapiencode_h264.c:
18383         * gst/vaapi/gstvaapiencode_jpeg.c:
18384         * gst/vaapi/gstvaapiencode_mpeg2.c:
18385         * gst/vaapi/gstvaapiencode_vp8.c:
18386         * gst/vaapi/gstvaapipluginbase.c:
18387         * gst/vaapi/gstvaapipluginutil.c:
18388         * gst/vaapi/gstvaapipluginutil.h:
18389         * gst/vaapi/gstvaapipostproc.c:
18390         * gst/vaapi/gstvaapisink.c:
18391         * gst/vaapi/gstvaapivideobuffer.c:
18392         * gst/vaapi/gstvaapivideobufferpool.c:
18393         * gst/vaapi/gstvaapivideocontext.c:
18394         * gst/vaapi/gstvaapivideocontext.h:
18395         * gst/vaapi/gstvaapivideoconverter_glx.h:
18396         * gst/vaapi/gstvaapivideoconverter_x11.h:
18397         * gst/vaapi/gstvaapivideomemory.h:
18398         * gst/vaapi/gstvaapivideometa_texture.c:
18399           Removal of gstreamer-1.0 support
18400           The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
18401           GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
18402           This patch removes all the pre-processor conditional code compilation guarded
18403           for gstreamer-1.0.
18404           Thus, all the video converters were removed too.
18405           https://bugzilla.gnome.org/show_bug.cgi?id=745728
18406           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18407           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18408
18409 2015-04-03 17:08:30 +0300  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18410
18411         * gst-libs/gst/vaapi/gstcompat.h:
18412         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18413         * gst-libs/gst/vaapi/gstvaapiprofile.c:
18414         * gst-libs/gst/vaapi/sysdeps.h:
18415         * gst/vaapi/gstcompat.h:
18416         * gst/vaapi/gstvaapi.c:
18417         * gst/vaapi/gstvaapidecode.c:
18418         * gst/vaapi/gstvaapidecodebin.c:
18419         * gst/vaapi/gstvaapiencode.c:
18420         * gst/vaapi/gstvaapiencode_h264.c:
18421         * gst/vaapi/gstvaapiencode_jpeg.c:
18422         * gst/vaapi/gstvaapiencode_mpeg2.c:
18423         * gst/vaapi/gstvaapiencode_vp8.c:
18424         * gst/vaapi/gstvaapiparse.c:
18425         * gst/vaapi/gstvaapipluginbase.c:
18426         * gst/vaapi/gstvaapipluginutil.c:
18427         * gst/vaapi/gstvaapipostproc.c:
18428         * gst/vaapi/gstvaapisink.c:
18429         * gst/vaapi/gstvaapiuploader.c:
18430         * gst/vaapi/gstvaapivideobuffer.c:
18431         * gst/vaapi/gstvaapivideobufferpool.c:
18432         * gst/vaapi/gstvaapivideocontext.c:
18433         * gst/vaapi/gstvaapivideoconverter_glx.c:
18434         * gst/vaapi/gstvaapivideoconverter_x11.c:
18435         * gst/vaapi/gstvaapivideomemory.c:
18436         * gst/vaapi/gstvaapivideometa.c:
18437         * gst/vaapi/gstvaapivideometa_texture.c:
18438         * tests/codec.c:
18439           update and move gstcompat.h
18440           The purpose of gstcompat.h is to couple the API differences among
18441           gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
18442           in this compatibility layer shall be removed.
18443           Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
18444           appear in the future, but it shall live in gst/vaapi, not in gst-libs.
18445           This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
18446           In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
18447           the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
18448           https://bugzilla.gnome.org/show_bug.cgi?id=745728
18449           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18450           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18451
18452 2015-04-03 17:05:45 +0300  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18453
18454         * configure.ac:
18455         * gst/vaapi/Makefile.am:
18456           autotools: remove gstreamer-1.0 support
18457           This patch only removes the support of gstreamer-1.0 in the autotools
18458           scripts. No other files are touched.
18459           In the automake file all the converters were deprecated.
18460           https://bugzilla.gnome.org/show_bug.cgi?id=745728
18461           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18462           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18463
18464 2015-04-03 17:03:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18465
18466         * .gitmodules:
18467         * ext/Makefile.am:
18468         * ext/videoutils:
18469           Remove the gstreamer-videoutils submodule
18470
18471 2015-04-03 17:01:45 +0300  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18472
18473         * configure.ac:
18474         * gst-libs/gst/Makefile.am:
18475         * gst-libs/gst/vaapi/Makefile.am:
18476         * gst-libs/gst/video/Makefile.am:
18477         * gst/vaapi/Makefile.am:
18478         * tests/Makefile.am:
18479           Remove libgstvaapi-videoutils.so
18480           This library was intended to add the base classes for video decoders which
18481           where not included in gstreamer-0.10.
18482           Since the support of gstreamer-0.10 is deprecated those classes are not
18483           required, thus the whole library is removed.
18484           https://bugzilla.gnome.org/show_bug.cgi?id=745728
18485           https://bugzilla.gnome.org/show_bug.cgi?id=732666
18486           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18487
18488 2015-04-03 16:55:43 +0300  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18489
18490         * configure.ac:
18491         * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18492         * gst-libs/gst/vaapi/gstvaapiutils.c:
18493         * tests/test-subpicture.c:
18494           Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
18495           This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
18496           defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
18497           deprecated these guards are not required.
18498           https://bugzilla.gnome.org/show_bug.cgi?id=745728
18499           https://bugzilla.gnome.org/show_bug.cgi?id=732666
18500           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18501
18502 2015-04-03 16:55:27 +0300  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18503
18504         * gst-libs/gst/vaapi/gstcompat.h:
18505         * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18506         * gst-libs/gst/vaapi/gstvaapidecoder.c:
18507         * gst-libs/gst/vaapi/gstvaapiimage.c:
18508         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18509         * gst-libs/gst/vaapi/video-format.c:
18510         * gst-libs/gst/vaapi/video-format.h:
18511         * gst/vaapi/gstvaapi.c:
18512         * gst/vaapi/gstvaapidecode.c:
18513         * gst/vaapi/gstvaapidecodebin.c:
18514         * gst/vaapi/gstvaapidownload.c:
18515         * gst/vaapi/gstvaapidownload.h:
18516         * gst/vaapi/gstvaapiencode.c:
18517         * gst/vaapi/gstvaapiencode_h264.c:
18518         * gst/vaapi/gstvaapiencode_jpeg.c:
18519         * gst/vaapi/gstvaapiencode_mpeg2.c:
18520         * gst/vaapi/gstvaapiencode_vp8.c:
18521         * gst/vaapi/gstvaapiparse.c:
18522         * gst/vaapi/gstvaapipluginbase.c:
18523         * gst/vaapi/gstvaapipluginbase.h:
18524         * gst/vaapi/gstvaapipluginutil.c:
18525         * gst/vaapi/gstvaapipluginutil.h:
18526         * gst/vaapi/gstvaapipostproc.c:
18527         * gst/vaapi/gstvaapisink.c:
18528         * gst/vaapi/gstvaapiupload.c:
18529         * gst/vaapi/gstvaapiupload.h:
18530         * gst/vaapi/gstvaapiuploader.c:
18531         * gst/vaapi/gstvaapivideobuffer.c:
18532         * gst/vaapi/gstvaapivideoconverter_glx.c:
18533         * gst/vaapi/gstvaapivideoconverter_x11.c:
18534         * gst/vaapi/gstvaapivideometa.c:
18535         * gst/vaapi/gstvaapivideometa.h:
18536         * tests/test-filter.c:
18537         * tests/test-subpicture.c:
18538           Removal of gstreamer-0.10 support
18539           This patch removes all the pre-processor conditional code compilation guarded
18540           for gstreamer-0.10.
18541           https://bugzilla.gnome.org/show_bug.cgi?id=745728
18542           https://bugzilla.gnome.org/show_bug.cgi?id=732666
18543           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18544
18545 2015-04-03 16:54:54 +0300  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18546
18547         * configure.ac:
18548         * debian.upstream/control.in:
18549         * gst-libs/gst/video/Makefile.am:
18550         * gst/vaapi/Makefile.am:
18551           autotools: remove gstreamer-0.10 support
18552           This patch only removes the support of gstreamer-0.10 in the autotools
18553           scripts. No other files are touched.
18554           The configuration parameter --gstreamer-api was deleted since now it is always
18555           auto-detected.
18556           The verification of vmethod query in GstBaseSinkClass was removed since it was
18557           added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
18558           its format flags.
18559           The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
18560           remained.
18561           The automake files were changed accordingly.
18562           Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
18563           https://bugzilla.gnome.org/show_bug.cgi?id=732666
18564           https://bugzilla.gnome.org/show_bug.cgi?id=745728
18565           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18566
18567 2015-03-16 23:38:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18568
18569         * gst/vaapi/gstvaapidecode.c:
18570           vaapidecode: add drain() vmethod
18571           In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
18572           class. This patch implements this new method.
18573           https://bugzilla.gnome.org/show_bug.cgi?id=742922
18574           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18575           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18576
18577 2015-03-16 23:37:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18578
18579         * gst/vaapi/gstvaapidecode.c:
18580           vaapidecode: remove vmethod reset()
18581           Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
18582           this patch removes the method reset() which was deprecated in GStreamer 1.2.
18583           https://bugzilla.gnome.org/show_bug.cgi?id=742922
18584           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18585           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18586
18587 2015-03-16 23:36:33 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18588
18589         * gst/vaapi/gstvaapidecode.c:
18590           vaapidecode: handle flush() vmethod
18591           Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
18592           and flush() was added.
18593           This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
18594           superior. Otherwise, reset() is set.
18595           v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
18596           was renamed to gst_vaapidecode_internal_flush().
18597           2) The new vmethod flush() always do a hard full reset.
18598           v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
18599           gather all collected data with  gst_video_decoder_have_frame()
18600           https://bugzilla.gnome.org/show_bug.cgi?id=742922
18601           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18602           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18603
18604 2015-03-16 23:10:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18605
18606         * gst/vaapi/gstvaapidecode.c:
18607           vaapidecode: call the correct query function
18608           In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
18609           a bug was introduced: when calling the parent's query function of the
18610           src pad, the one of the sink pad is called instead. This patch fixes
18611           this issue.
18612           https://bugzilla.gnome.org/show_bug.cgi?id=746248
18613
18614 2015-03-15 00:36:45 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18615
18616         * .gitmodules:
18617           gitmodules: Use https:// url instead of git:// for submodules.
18618           Gitorious is failing to clone repositories over git:// url.
18619
18620 2015-03-14 22:12:19 +0200  Julien Isorce <j.isorce@samsung.com>
18621
18622         * gst-libs/gst/vaapi/gstvaapidisplay.c:
18623           vaapidisplay: mark X11 display as compatible with EGL
18624           GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
18625           gst-launch-1.0 ... ! vaapidecode ! glimagesink
18626           https://bugzilla.gnome.org/show_bug.cgi?id=745902
18627           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18628
18629 2015-03-06 15:20:01 +0200  Olivier Crete <olivier.crete@collabora.com>
18630
18631         * gst/vaapi/gstvaapidecode.c:
18632           vaapidecode: Don't crash if a buffer outlives the decoder
18633           Sometimes, for example, when switching video streams but keeping
18634           the same sink, the surface will be released after the decoder is
18635           stopped and replaced. This caused a crash because the release
18636           callback was called on an invalid pointer.
18637           The patch adding an additional reference to the decoder object in the buffer.
18638           https://bugzilla.gnome.org/show_bug.cgi?id=745189
18639           Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
18640           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18641
18642 2015-03-06 14:31:21 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18643
18644         * gst/vaapi/gstvaapidecode.c:
18645           vaapidecode: clean-ups (indentation, drop unused variables)
18646
18647 2015-03-06 14:09:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18648
18649         * gst/vaapi/gstvaapidecode.c:
18650           vaapidecode: use the query virtual methods in 1.4
18651           GstVideoDecoder, the base class of vaapidecode, added support for
18652           pad queries as virtual methods. This patch enables the use of that
18653           support, while keeping support for lower versions of gstreamer.
18654           This patch is important because GstVideoDecoder takes care of other
18655           queries that might be important in the pipeline managing.
18656           v2: 1) rebase to current master
18657           2) fix indentation with gst-indent
18658           3) simplify the patch layout
18659           4) fix the context query
18660           5) initialise the filter to NULL
18661           6) improve the query log message for gst-1.2
18662           https://bugzilla.gnome.org/show_bug.cgi?id=744406
18663
18664 2015-03-06 12:16:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18665
18666         * gst/vaapi/gstvaapipostproc.c:
18667         * gst/vaapi/gstvaapipostproc.h:
18668           vaapipostproc: always activate buffer pool
18669           The vaapipostproc has a proxy flag to know if the the buffer pool is
18670           already active. But this fails in some situations where it is needed
18671           to renegotiate the buffer pool.
18672           This patch removes that flag so the renegotiation is done whenever is
18673           required.
18674           https://bugzilla.gnome.org/show_bug.cgi?id=745535
18675
18676 2015-03-02 17:04:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18677
18678         * gst/vaapi/gstvaapisink.c:
18679           vaapisink: fix minor memory leak in debug mode.
18680           The gst_video_colorimetry_to_string() function returns a newly created
18681           string that represents the GstVideoColorimetry value. So, that needs
18682           to be released after usage, in e.g. GST_DEBUG().
18683
18684 2015-03-03 12:37:41 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18685
18686         * gst/vaapi/gstvaapidecodebin.h:
18687           vaapidecodebin: Avoid usage of "__" prefix in macro names
18688           Avoiding "__" prefix usage in Header File Guards as per
18689           C standard recommendation.
18690
18691 2015-03-03 12:31:11 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18692
18693         * gst/vaapi/gstvaapi.c:
18694           plugins: Disable vaapidecodebin for GStreamer < 1.4
18695           There are autoplugging issues in GStreamer-1.2.
18696           Lets disable vaapidecodebin untill we get some workarounds for this.
18697
18698 2015-03-02 15:19:40 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18699
18700         * gst/vaapi/Makefile.am:
18701         * gst/vaapi/gstvaapi.c:
18702         * gst/vaapi/gstvaapidecodebin.c:
18703         * gst/vaapi/gstvaapidecodebin.h:
18704           plugins: Add a vaapidecodebin element
18705           Add a "vaapidecodebin" element to vaapi plugins.
18706           Child Elements: "vaapidecode ! queue ! vaapipostproc"
18707           The Reasons for implementing a new bin element:
18708           -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
18709           with out any dependency to upstream gstreamer.
18710           This is to overcome the *unacceptable* delay in upstream gstreamer to get new
18711           features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
18712           Also customers using older gstreamer versions (1.2 and 1.4) will get the
18713           benefit of autoplugging, hardware accelerated deinterlacing support etc.
18714           -- Help to maintain a single thread implementation in vaapidecode.
18715           This will result a dead-lock free vaapidecode in most of the cases.
18716           More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
18717           https://bugzilla.gnome.org/show_bug.cgi?id=745216
18718
18719 2015-03-02 14:59:16 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18720
18721         * gst/vaapi/gstvaapidecode.c:
18722           vaapidecode: re-indent (gst-indent) gstvaapidecode.c
18723
18724 2015-03-02 14:46:38 +0200  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18725
18726         * gst/vaapi/gstvaapidecode.c:
18727         * gst/vaapi/gstvaapidecode.h:
18728           vaapidecode: Switch back to Single thread implementation
18729           Because the decoder uses the thread from handle_frame() to decode a frame,
18730           the src pad task creates an unsolveable AB-BA deadlock between
18731           handle_frame() waiting for a free surface and decode_loop() pushing
18732           decoded frames out.
18733           Instead, have handle_frame() take responsibility for pushing surfaces,
18734           and remove the deadlock completely. If you need a separate thread
18735           downstream, you can insert a queue between vaapidecode and its downstream
18736           to get one.
18737           Another justification for the single thread implementation is,
18738           there are two many point of locking in gstreamer-vaapi's current
18739           implementation which can lead to deadlocks.
18740           https://bugzilla.gnome.org/show_bug.cgi?id=742605
18741           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18742           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18743           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18744
18745 2015-03-02 13:28:41 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18746
18747         * gst/vaapi/gstvaapipluginbase.c:
18748           plugins: fix detection of upstream v4l2src element.
18749           Improve check for upstream element that requires DMABUF buffer pool,
18750           e.g. v4l2src element. In particular, make sure to traverse through
18751           any additional capsfilter for instance.
18752           Note: the traversal to the top-most upstream element could be made
18753           more generic, but we are insofar only interested in supporting pipes
18754           similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
18755           specification for a desired video camera format, or resolution.
18756
18757 2015-03-02 11:12:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18758
18759         * gst/vaapi/gstvaapivideomemory.c:
18760           plugins: fix allocation of DMABUF memory.
18761           The dmabuf allocator would close the DMABUF handle passed in the init
18762           function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
18763           to avoid a double close, ultimately in the underlying driver that owns
18764           the DMABUF handle.
18765
18766 2015-02-26 12:28:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18767
18768         * gst/vaapi/gstvaapidecode.c:
18769           vaapidecode: keep src caps and output state in sync
18770           vaapidecode keeps an output state that use the format
18771           GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
18772           for a correct negotiation.
18773           I don't see the rational behind this decoupling, it looks like
18774           unnecessary complexity. This patch simplify this logic keeping
18775           in sync the output state and the src caps.
18776           This patch improves the readability of the function
18777           gst_vaapidecode_update_src_caps() and simplify its logic. Also,
18778           the patch validates if the buffer pool has the configuration for
18779           the GL texture upload meta, in order to set the caps feature
18780           meta:GLTextureUpload. Otherwise, the I420 format is set back.
18781           https://bugzilla.gnome.org/show_bug.cgi?id=744618
18782           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18783           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18784
18785 2015-02-26 12:26:54 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18786
18787         * gst/vaapi/gstvaapidecode.c:
18788           vaapidecode: upload meta only if feature and allocation
18789           When vaapidecode finishes the decoding of a frame and pushes it,
18790           if, in the decide_allocation() method, it is determined if the
18791           next element supports the GL texture upload meta feature, the
18792           decoder adds the buffer's meta.
18793           Nonetheless, in the same spirit of the commit 71d3ce4d, the
18794           determination if the next element supports the GL texture upload
18795           meta needs to check both the preferred caps feature *and* if the
18796           allocation query request the API type.
18797           This patch, first removes the unused variable need_pool, and
18798           determines the attribute has_texture_upload_meta using the
18799           preferred caps feature *and* the allocation query.
18800           Also, the feature passed to GstVaapPluginBase is not longer
18801           determined by has_texture_upload_meta, but by the computed
18802           preferred one.
18803           https://bugzilla.gnome.org/show_bug.cgi?id=744618
18804           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18805           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18806
18807 2015-02-26 12:24:55 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18808
18809         * gst/vaapi/gstvaapidecode.c:
18810         * gst/vaapi/gstvaapidecode.h:
18811         * gst/vaapi/gstvaapipluginutil.c:
18812         * gst/vaapi/gstvaapipluginutil.h:
18813           vaapidecode: delayed src caps negotiation
18814           Currently the src caps are set immediately after the sink caps are set, but in
18815           that moment the pipeline might not fully constructed and the video sink has
18816           not negotiated its supported caps and features. As a consequence, in many cases
18817           of playback, the least optimized caps feature is forced. This is partially the
18818           responsible of bug #744039.
18819           Also, vaapidecode doesn't attend the reconfigure events from downstream,
18820           which is a problem too, since the video sink can be changed with different
18821           caps features.
18822           This patch delays the src caps, setting them until the first frame arrives to
18823           the decoder, assuming until that very moment the whole pipeline is already
18824           negotiated. Particularly, it checks if the src pad needs to be reconfigured,
18825           as a consequence of a reconfiguration event from downstream.
18826           A key part of this patch is the new GstVaapiCapsFeature
18827           GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
18828           doesn't have a peer yet. Also, for a better report of the caps allowed
18829           through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
18830           instead of gst_pad_peer_query_caps() when looking for the preferred feature.
18831           v3: move the input_state unref to close(), since videodecoder resets at
18832           some events such as navigation.
18833           v4: a) the state_changed() callback replaces the input_state if the media
18834           changed, so this case is also handled.
18835           b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
18836           always the input_state, the parameter were removed.
18837           c) there were a lot of repeated code handling the input_state, so I
18838           refactored it with the function gst_vaapi_decode_input_state_replace().
18839           https://bugzilla.gnome.org/show_bug.cgi?id=744618
18840           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18841           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18842
18843 2015-02-24 17:14:33 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18844
18845         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18846         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
18847           encoder: h264: add support for more than 2 views
18848           Add support for H.264 MVC Multiview High profile encoding with
18849           more than 2 views. All views within the same accesss unit are
18850           provided in increasing order of view order index (VOIdx).
18851           Upto 10 view are supported for now.
18852           A new property "view-ids" has been provided for the plugins to
18853           set the view ids (which is an array of guint values) to be used
18854           for mvc encoding.
18855           https://bugzilla.gnome.org/show_bug.cgi?id=732453
18856
18857 2015-02-23 16:55:36 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18858
18859         * gst/vaapi/gstvaapipluginbase.c:
18860           plugins: upload meta only if feature and allocation
18861           Working on bug #743687, I realized that vaapidecode always adds to its buffer
18862           pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
18863           the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
18864           Nevertheless, there are occasions where the query has the API type, but the
18865           last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
18866           Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
18867           buffer pool configuration, and adds its buffer's meta to each output buffer,
18868           even if the negotiated caps feature is memory:SystemMemory with I420 color
18869           format.
18870           This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
18871           that relates caps <-> GL upload method. If it receives a buffer with color
18872           format I420, it assumes that it doesn't have a texture upload meta, because
18873           only those with RGB color format has it. Our buffers, with I420 format, say
18874           that they have the upload meta too. In that case the mapped method is a dummy
18875           one which does nothing. I reported this issue in bug #744039 (the patch,
18876           obviously, was rejected).
18877           This patch workarounds the problem: the buffer pool's configuration option
18878           GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
18879           query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
18880           caps feature is meta:GstVideoGLTextureUploadMeta.
18881           I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
18882           in all they seem to work correctly.
18883           https://bugzilla.gnome.org/show_bug.cgi?id=744618
18884           [adapted to fit current EGL changes]
18885           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18886
18887 2015-02-20 15:13:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18888
18889         * gst-libs/gst/vaapi/gstvaapitexture.c:
18890         * gst-libs/gst/vaapi/gstvaapitexture.h:
18891         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
18892         * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
18893         * gst/vaapi/gstvaapivideometa_texture.c:
18894           plugins: add support for GstVideoGLTextureOrientation.
18895           Add support for GstVideoGLTextureOrientation modes. In particular,
18896           add orientation flags to the GstVaapiTexture wrapper and the GLX
18897           implementations. Default mode is that texture memory is laid out
18898           with top lines first, left row first. Flags indicate whether the
18899           X or Y axis need to be inverted.
18900
18901 2015-02-09 21:09:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18902
18903         * gst/vaapi/gstvaapidecode.c:
18904         * gst/vaapi/gstvaapipluginbase.c:
18905         * gst/vaapi/gstvaapipluginutil.c:
18906         * gst/vaapi/gstvaapipluginutil.h:
18907         * gst/vaapi/gstvaapipostproc.c:
18908         * gst/vaapi/gstvaapivideometa_texture.c:
18909           plugins: add support for BGRA textures.
18910           Some frameworks (EFL) expect BGRA textures for storage. However,
18911           adding support for that broadly into GStreamer framework  implies
18912           two kinds of hacks: (i) libgstgl helpers currently do not support
18913           BGRA textures correctly, (ii) we need to better parse downstream
18914           suggested caps and intersect them with what the VA plugin elements
18915           can offer to them for GL texturing.
18916
18917 2015-01-23 09:31:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18918
18919         * gst/vaapi/gstvaapipluginutil.c:
18920           plugins: fix support for Wayland/EGL running alongside X11.
18921           When multiple display servers are available, the glimagesink element
18922           (from GStreamer 1.4) may not be able to derive a global display in
18923           Wayland. Rather, a "window"-specific display is created. In this case,
18924           the GstGLDisplay handle available through GstGLContext is invalid.
18925           So, try to improve heuristics for display server characterisation in
18926           those particular situations.
18927
18928 2015-02-20 15:29:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18929
18930         * configure.ac:
18931         * gst/vaapi/Makefile.am:
18932         * gst/vaapi/gstvaapidecode.c:
18933         * gst/vaapi/gstvaapipluginbase.c:
18934         * gst/vaapi/gstvaapipluginutil.c:
18935         * gst/vaapi/gstvaapivideobufferpool.c:
18936         * gst/vaapi/gstvaapivideometa_texture.c:
18937           plugins: add initial support for EGL.
18938           Add initial support for EGL through GstVideoGLTextureUploadMeta.
18939           Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
18940           downstream supplied GstGLContext configuration, i.e. use its native
18941           display handle to create a GstVaapiDisplay of type X11 or Wayland ;
18942           and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
18943           wrapper.
18944           https://bugzilla.gnome.org/show_bug.cgi?id=741079
18945
18946 2014-12-09 11:46:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18947
18948         * gst/vaapi/gstvaapivideometa_texture.c:
18949           plugins: track video texture size changes.
18950           Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
18951           i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
18952           now update the texture size from the GstVideoMeta, if any, or reset
18953           to some defaults otherwise.
18954
18955 2014-12-03 15:45:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18956
18957         * gst/vaapi/gstvaapipluginbase.c:
18958         * gst/vaapi/gstvaapipluginbase.h:
18959         * gst/vaapi/gstvaapipluginutil.c:
18960           plugins: ensure VA display matches GL context expectations.
18961           If a GstGLContext is supplied by the downstream element, then make
18962           sure that the VA plugin element gets a compatible display to what
18963           is requested by the GL context. e.g. re-allocate a VA/GLX display
18964           when a GLX context is provided by the downstream element.
18965
18966 2014-12-03 14:14:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18967
18968         * configure.ac:
18969         * gst/vaapi/Makefile.am:
18970         * gst/vaapi/gstvaapipluginbase.c:
18971         * gst/vaapi/gstvaapipluginbase.h:
18972           plugins: record downstream GstGLContext.
18973           Record GL context supplied by downstream elements. This can be useful,
18974           and further needed, to enforce run-time check that the GL context is
18975           compatible for use by libgstvaapi. e.g. check that we don't create a
18976           VA/GLX display for EGL/X11 contexts.
18977           https://bugzilla.gnome.org/show_bug.cgi?id=725643
18978           Original-path-by: Matthew Waters <ystreet00@gmail.com>
18979
18980 2014-12-01 14:52:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18981
18982         * tests/Makefile.am:
18983         * tests/output.c:
18984           egl: update tests.
18985           Add initial support for EGL to tests. The new EGL backend can be selected
18986           through the --egl command line option. The OpenGL|ES version can further
18987           be selected with the --gles-version command line option, where the default
18988           of 0 means "desktop" OpenGL.
18989
18990 2015-01-27 16:21:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18991
18992         * gst-libs/gst/vaapi/Makefile.am:
18993         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18994         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
18995         * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
18996         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
18997         * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
18998           egl: add windowing support.
18999           This provides for some basic EGL window abstraction.
19000
19001 2015-01-24 08:29:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19002
19003         * gst-libs/gst/vaapi/Makefile.am:
19004         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
19005         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
19006         * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
19007           egl: add texture abstraction.
19008           Add GstVaapiTextureEGL abstraction that can create its own GL texture,
19009           or import a foreign allocated one, while still allowing updates from a
19010           VA surface.
19011
19012 2014-12-09 18:14:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19013
19014         * gst-libs/gst/vaapi/Makefile.am:
19015         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
19016         * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
19017           egl: allow for EGLImage imports into VA Surfaces.
19018           Add helpers to import EGLImage objects into VA surfaces. There are
19019           two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
19020           which allows for implicit conversion from EGLImage to a VA surface
19021           in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
19022           which exactly wraps the source EGLImage, typically in RGBA format
19023           with linear storage.
19024           Note: in case of (i), the EGLImage can be disposed right after the
19025           VA surface creation call, unlike in (ii) where the user shall ensure
19026           that the EGLImage is live until the associated VA surface is no longer
19027           needed.
19028           https://bugzilla.gnome.org/show_bug.cgi?id=743847
19029
19030 2015-02-20 15:27:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19031
19032         * configure.ac:
19033         * gst-libs/gst/vaapi/Makefile.am:
19034         * gst-libs/gst/vaapi/egl_compat.h:
19035         * gst-libs/gst/vaapi/egl_vtable.h:
19036         * gst-libs/gst/vaapi/gstvaapidisplay.c:
19037         * gst-libs/gst/vaapi/gstvaapidisplay.h:
19038         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
19039         * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
19040         * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
19041         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
19042         * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
19043         * gst-libs/gst/vaapi/ogl_compat.h:
19044           Add initial support for EGL.
19045           Add initial support for EGL to libgstvaapi core library. The target
19046           display server and the desired OpenGL API can be programmatically
19047           selected at run-time.
19048           A comprehensive set of EGL utilities are provided to support those
19049           dynamic selection needs, but also most importantly to ensure that
19050           the GL command stream is executed from within a single thread.
19051           https://bugzilla.gnome.org/show_bug.cgi?id=743846
19052
19053 2015-01-30 21:38:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19054
19055         * gst-libs/gst/vaapi/gstvaapivalue.c:
19056           libs: initialize GValues in a thread-safe manner.
19057
19058 2015-01-30 21:35:10 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19059
19060         * gst-libs/gst/vaapi/gstvaapivalue.c:
19061           libs: re-indent all GValue related source code.
19062
19063 2015-01-22 22:45:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19064
19065         * gst/vaapi/gstvaapidecode.c:
19066           vaapidecode: partially revert 0777f35.
19067           Reset the VA decoder after updating the base plugin caps, and most
19068           importantly, after GstVideoDecoder negotiation. The reason behind
19069           this is that the negotiation could trigger a last decide_allocation()
19070           where we could actually derive a new GstVaapiDisplay to use from the
19071           downstream element. e.g. GLX backend.
19072
19073 2015-02-19 13:37:09 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19074
19075         * gst/vaapi/gstvaapidecode.c:
19076           vaapidecode: Caps query should return the list of all supported caps.
19077           Query caps filtering should be always done on top of allowed caps instead
19078           of existing fixed caps on a particular pad.
19079           This fixes the mvc stream decoding when there is a base view(high profile)
19080           and non-base view(stereo-high profile).
19081
19082 2015-02-18 13:36:16 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19083
19084         * gst/vaapi/gstvaapidecode.c:
19085           vaapidecode: intersect filter from query caps
19086           According to documentation[1] when receiving a GST_QUERY_CAPS
19087           the return value should be all formats that this elements supports,
19088           taking into account limitations of peer elements further downstream
19089           or upstream, sorted by order of preference, highest preference first.
19090           This patch add those limitations intersecting with the received
19091           filter in the query. Also takes into account the already negotiated
19092           caps. Also adds the processing of the query on the SRC pad.
19093           1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
19094           https://bugzilla.gnome.org/show_bug.cgi?id=744406
19095
19096 2015-02-18 11:46:11 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19097
19098         * gst-libs/gst/vaapi/Makefile.am:
19099         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19100         * gst-libs/gst/vaapi/gstvaapidecoder.c:
19101         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19102         * gst-libs/gst/vaapi/gstvaapidisplay.c:
19103         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19104         * gst/vaapi/gstvaapivideomemory.c:
19105           Fix compiler warnings
19106           This patch fixes some warnings that gcc 4.9 reports.
19107           https://bugzilla.gnome.org/show_bug.cgi?id=744411
19108
19109 2015-02-18 11:22:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19110
19111         * gst/vaapi/gstvaapidecode.c:
19112           vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
19113           Hence the function name is shown in the gst-inspect-1.0 information
19114           rather than the memory address.
19115           https://bugzilla.gnome.org/show_bug.cgi?id=744330
19116
19117 2015-02-18 11:21:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19118
19119         * gst/vaapi/gstvaapidecode.c:
19120           vaapidecode: log flow error name
19121           https://bugzilla.gnome.org/show_bug.cgi?id=744387
19122
19123 2015-02-18 11:20:42 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19124
19125         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19126           VC1: decoder: Ignore VC1 user BDU's
19127           Don't return error if the processed BDU is a user one, just ignore them.
19128           https://bugzilla.gnome.org/show_bug.cgi?id=741237
19129           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19130
19131 2015-02-18 11:19:26 +0200  Olivier Crete <olivier.crete@collabora.com>
19132
19133         * gst/vaapi/gstvaapidecode.c:
19134         * gst/vaapi/gstvaapipluginbase.c:
19135           vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
19136           This is required in GStreamer, elements should never return
19137           GST_FLOW_ERROR without posting an ERROR message on the bus.
19138           https://bugzilla.gnome.org/show_bug.cgi?id=744620
19139
19140 2015-02-13 13:45:32 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19141
19142         * gst/vaapi/Makefile.am:
19143         * gst/vaapi/gstvaapi.c:
19144         * gst/vaapi/gstvaapiencode_vp8.c:
19145         * gst/vaapi/gstvaapiencode_vp8.h:
19146           plugins: Add VP8 Encoder
19147
19148 2015-02-13 13:42:04 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19149
19150         * gst-libs/gst/vaapi/Makefile.am:
19151         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
19152         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
19153           Add VP8 Encoder to core libgstvaapi.
19154
19155 2015-02-13 13:40:19 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19156
19157         * configure.ac:
19158           configure: Add Check for VP8 Encoding API
19159
19160 2015-02-10 11:40:16 +0200  Lim Siew Hoon <siew.hoon.lim@intel.com>
19161
19162         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19163           decoder: vc1: Rounding control handling for VC1 simple and Main profile
19164           Added rounding control handling for VC1 simple and Main profile
19165           based on VC1 standard spec: section 8.3.7
19166           https://bugzilla.gnome.org/show_bug.cgi?id=743958
19167           Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
19168           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19169
19170 2015-02-06 12:10:51 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19171
19172         * gst/vaapi/Makefile.am:
19173           build: fix make dist when certain conditionals not met.
19174           Fix typo which was preventing the inclusion of jpeg encoder
19175           source files from make dist (when there is no jpeg encoder
19176           API support in libva).
19177
19178 2015-02-05 13:08:53 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19179
19180         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19181           encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
19182           If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
19183           use native YUV420 format (which is i420) as default.
19184
19185 2015-02-05 12:13:38 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19186
19187         * gst-libs/gst/vaapi/gstvaapiencoder.c:
19188           encoder: Only support YUV420 native format as input for now
19189           Practically we should be able to support more formats, for eg:
19190           JPEG Encoder can support YUV422, RGBA and all.
19191           But this is causing more issues which need proper fix here and there.
19192
19193 2015-02-04 18:34:59 +0200  Olivier Crete <olivier.crete@collabora.com>
19194
19195         * gst-libs/gst/vaapi/gstvaapidecoder.h:
19196         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19197         * gst/vaapi/gstvaapidecode.c:
19198           vaapidecode: Check the condition after taking the lock
19199           Otherwise the condition could become true before the lock
19200           is taken and the g_cond_signal() could be called
19201           before the g_cond_wait(), so the g_cond_wait() is never
19202           awoken.
19203           https://bugzilla.gnome.org/show_bug.cgi?id=740645
19204
19205 2015-02-04 11:18:29 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19206
19207         * gst/vaapi/Makefile.am:
19208         * gst/vaapi/gstvaapi.c:
19209         * gst/vaapi/gstvaapiencode_jpeg.c:
19210         * gst/vaapi/gstvaapiencode_jpeg.h:
19211           plugins: Add JPEG encoder element
19212
19213 2015-02-04 11:17:58 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19214
19215         * gst-libs/gst/vaapi/gstvaapicontext.c:
19216           gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
19217
19218 2015-02-04 11:17:27 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19219
19220         * gst-libs/gst/vaapi/gstvaapicontext.c:
19221           gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
19222           Don't add the VAConfigAttribRateControl to the attribute list using
19223           for the vaCreateConfig if it is not supported by the driver.
19224
19225 2015-02-04 11:17:06 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19226
19227         * gst-libs/gst/vaapi/gstvaapiencoder.c:
19228           gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
19229
19230 2015-02-04 11:16:37 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19231
19232         * gst-libs/gst/vaapi/gstvaapiencoder.c:
19233           gstvaapiencoder: Fix crash when handling rate control mask
19234           Having a ratecontrol_mask equal to zero is not a bug, but the driver
19235           might not be supporting any kind of rate control mechanisms.
19236           Eg: JPEG Encoding
19237
19238 2015-02-04 11:16:05 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19239
19240         * gst-libs/gst/vaapi/Makefile.am:
19241         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19242         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
19243           encoder: Add JPEG Encoder
19244
19245 2015-02-04 11:15:38 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19246
19247         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
19248         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
19249           encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
19250
19251 2015-02-04 11:15:00 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19252
19253         * gst-libs/gst/vaapi/gstvaapidisplay.c:
19254         * gst-libs/gst/vaapi/gstvaapiencoder.c:
19255         * gst-libs/gst/vaapi/gstvaapiprofile.c:
19256         * gst-libs/gst/vaapi/gstvaapiprofile.h:
19257           Encode: Add support for Picture level Entrypoint
19258           This is useful for JPEG encoding which is utilizing picture level
19259           entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
19260
19261 2015-02-04 11:14:15 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19262
19263         * configure.ac:
19264           configure: Add Check for JPEG encoding API
19265
19266 2015-02-03 13:08:53 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19267
19268         * AUTHORS:
19269           AUTHORS: Updates
19270
19271 2015-02-03 13:08:01 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19272
19273         * configure.ac:
19274           Bump version for development.
19275
19276 === release 0.5.10 ===
19277
19278 2015-02-03 10:00:42 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19279
19280         * configure.ac:
19281           0.5.10
19282
19283 2015-02-03 10:00:23 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19284
19285         * NEWS:
19286           NEWS: Updates
19287
19288 2015-02-02 11:43:58 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19289
19290         * gst/vaapi/gstvaapivideometa_texture.c:
19291           Fix compilation error if there is no GL/gl.h header file installed
19292
19293 2015-01-28 18:09:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19294
19295         * gst/vaapi/gstvaapivideomemory.h:
19296           plugins: drop leftover declaration.
19297           GstVaapiVideoMemory quark is not needed any more, and the actual
19298           implementation was already removed bfore the merge. i.e. this is
19299           an oversight for a hunk that was not meant to be pushed.
19300
19301 2015-01-26 18:30:47 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19302
19303         * gst/vaapi/gstvaapipluginbase.c:
19304         * gst/vaapi/gstvaapivideobufferpool.c:
19305         * gst/vaapi/gstvaapivideobufferpool.h:
19306         * gst/vaapi/gstvaapivideomemory.c:
19307         * gst/vaapi/gstvaapivideomemory.h:
19308           plugins: add support for dma_buf exports (v4l2src).
19309           Allow v4l2src element to connected to vaapipostproc or vaapisink when
19310           "io-mode" is set to "dmabuf-import". In practice, this is a more likely
19311           operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
19312           to "dmabuf" could work, but with more demanding driver or kernel reqs.
19313           Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
19314           with --without-libv4l2.
19315           https://bugzilla.gnome.org/show_bug.cgi?id=743635
19316
19317 2014-01-23 05:00:09 -0500  Wind Yuan <feng.yuan@intel.com>
19318
19319         * configure.ac:
19320         * gst/vaapi/Makefile.am:
19321         * gst/vaapi/gstvaapipluginbase.c:
19322           plugins: add support for dma_buf imports.
19323           Allow imports of v4l2 buffers into VA surfaces for further operation
19324           with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
19325           https://bugzilla.gnome.org/show_bug.cgi?id=735362
19326           [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
19327           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19328
19329 2014-09-15 15:27:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19330
19331         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19332         * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19333           surface: add support for GEM buffer imports.
19334           Add support for GEM buffer imports. This is useful for VA/EGL interop
19335           with legacy Mesa implementations, or when it is desired or required to
19336           support outbound textures for instance.
19337           https://bugzilla.gnome.org/show_bug.cgi?id=736718
19338
19339 2014-09-15 15:25:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19340
19341         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19342         * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19343           surface: add support for dma_buf imports.
19344           Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
19345           to allow for creating VA surfaces from a foreign DRM PRIME fd. The
19346           resulting VA surface owns the supplied buffer handle.
19347           https://bugzilla.gnome.org/show_bug.cgi?id=735362
19348
19349 2015-01-27 11:19:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19350
19351         * gst-libs/gst/vaapi/gstvaapisurface.c:
19352         * gst-libs/gst/vaapi/gstvaapisurface.h:
19353         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19354           surface: add initial support for foreign buffer imports.
19355           Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
19356           create a VA surface from an external buffer provided throug the
19357           new GstVaapiBufferProxy object.
19358
19359 2014-09-15 13:47:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19360
19361         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19362         * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19363         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19364         * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19365           surface: add support for GEM buffer exports.
19366           Add support for GEM buffer exports. This will only work with VA drivers
19367           based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
19368           to support interop with EGL and the "Desktop" GL specification. Indeed,
19369           the EXT_image_dma_buf_import extension is not going to be supported in
19370           Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
19371           there.
19372           This is useful for implementing VA/EGL interop with legacy Mesa stacks,
19373           in Desktop OpenGL context.
19374           https://bugzilla.gnome.org/show_bug.cgi?id=736717
19375
19376 2014-09-15 11:48:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19377
19378         * gst-libs/gst/vaapi/Makefile.am:
19379         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19380         * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19381         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19382         * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19383           surface: add support for dma_buf exports.
19384           Use the new VA buffer export APIs to allow for a VA surface to be
19385           exposed as a plain PRIME fd. This is in view to simplifying interop
19386           with EGL or OpenCL for instance.
19387           https://bugzilla.gnome.org/show_bug.cgi?id=735364
19388
19389 2014-09-15 10:58:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19390
19391         * gst-libs/gst/vaapi/Makefile.am:
19392         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19393         * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19394         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
19395           Add abstraction for exported VA buffers.
19396           The VA buffer export APIs work for a particular lifetime starting from
19397           vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
19398           it could be much more convenient to support implicit releases by simply
19399           having a refcount reaching zero.
19400           https://bugzilla.gnome.org/show_bug.cgi?id=736721
19401
19402 2015-01-28 18:25:09 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19403
19404         * gst-libs/gst/vaapi/Makefile.am:
19405           Add missing header file to Makefile
19406           Add gstvaapitexture_glx.h to Makefile.am
19407
19408 2015-01-27 11:44:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19409
19410         * gst-libs/gst/vaapi/gstvaapicontext.c:
19411         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19412         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19413         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19414         * gst/vaapi/gstvaapipostproc.c:
19415         * gst/vaapi/gstvaapiuploader.c:
19416         * gst/vaapi/gstvaapivideobufferpool.c:
19417         * gst/vaapi/gstvaapivideomemory.c:
19418         * gst/vaapi/gstvaapivideomemory.h:
19419         * tests/test-surfaces.c:
19420           videopool: add optional flags for surface pool allocation.
19421           Reword surface pool allocation helpers so that to allow for a simple
19422           form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
19423           somewhat more elaborated/flexible form with optional allocation flags
19424           and precise GstVideoInfo specification.
19425           This is an API/ABI change, and SONAME version needs to be bumped.
19426
19427 2015-01-26 23:21:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19428
19429         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19430         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19431         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19432         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19433         * gst-libs/gst/vaapi/gstvaapivideopool.c:
19434         * gst-libs/gst/vaapi/gstvaapivideopool.h:
19435         * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19436           videopool: re-indent all GstVaapiVideoPool related source code.
19437
19438 2014-12-10 20:13:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19439
19440         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19441         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19442           window: add toplevel display indirection for visualid and colormap.
19443           Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
19444           the best suitable window visual id and colormap. This is an indirection in
19445           view to supporting EGL and custom/generic replacements.
19446
19447 2014-12-10 19:58:10 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19448
19449         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19450         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19451         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19452         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19453           window: add toplevel API to determine the colormap.
19454           Add GstVaapiWindowClass::get_colormap() hook to help determine the
19455           currently active colormap bound to the supplied window, or actually
19456           create it if it does not already exist yet.
19457
19458 2014-12-10 19:36:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19459
19460         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
19461         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
19462         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19463         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19464         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19465         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19466           window: add toplevel API to determine a visual id.
19467           Add GstVaapiWindowClass::get_visual_id() function hook to help find
19468           the best suitable visual id for the supplied window. While doing so,
19469           also simplify the process by which an X11 window is created with a
19470           desired Visual, i.e. now use a visual id instead of a Visual object.
19471
19472 2014-12-10 18:12:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19473
19474         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19475         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19476         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19477         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19478         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19479         * gst-libs/gst/vaapi/gstvaapiwindow.c:
19480         * gst-libs/gst/vaapi/gstvaapiwindow.h:
19481         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19482         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19483         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19484         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19485         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19486           window: add generic helper to create windows.
19487           Add a new generic helper function gst_vaapi_window_new() to create
19488           a window without having the caller to check for the display type
19489           himself. i.e. internally, there is now a GstVaapiDisplayClass hook
19490           to create windows, and the actual backend implementation fills it in.
19491           Add new generic helper functions gst_vaapi_texture_new_wrapped()
19492           This is a simplification in view to supporting EGL.
19493
19494 2014-12-03 11:39:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19495
19496         * gst-libs/gst/vaapi/gstvaapidisplay.c:
19497         * gst-libs/gst/vaapi/gstvaapidisplay.h:
19498         * gst-libs/gst/vaapi/gstvaapitexture.c:
19499         * gst/vaapi/gstvaapivideometa_texture.c:
19500           display: add utility function to check for OpenGL rendering.
19501           Add gst_vaapi_display_has_opengl() helper function to help determining
19502           whether the display can support OpenGL context to be bound to it, i.e.
19503           if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
19504
19505 2014-12-10 18:02:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19506
19507         * gst-libs/gst/vaapi/gstvaapidisplay.c:
19508         * gst-libs/gst/vaapi/gstvaapidisplay.h:
19509         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19510         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
19511         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19512         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
19513         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19514         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19515         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
19516         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19517         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
19518         * gst/vaapi/gstvaapipluginutil.c:
19519         * gst/vaapi/gstvaapivideobuffer.c:
19520         * gst/vaapi/gstvaapivideometa_texture.c:
19521           display: refine the meaning of display type.
19522           Make gst_vaapi_display_get_display_type() return the actual VA display
19523           type. Conversely, add a gst_vaapi_display_get_class_type() function to
19524           return the type of the GstVaapiDisplay instance. The former is used to
19525           identify the display server onto which the application is running, and
19526           the latter to identify the original object class.
19527
19528 2014-12-02 11:23:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19529
19530         * gst-libs/gst/vaapi/gstvaapidisplay.c:
19531         * gst-libs/gst/vaapi/gstvaapidisplay.h:
19532         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19533         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19534         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19535         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19536           display: cosmetics (helper macros, new internal API names).
19537           Add more helper macros to the top-level GstVaapiDisplay interfaces.
19538           Rename a few others used internally for improved consistency.
19539
19540 2014-12-01 17:08:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19541
19542         * gst-libs/gst/vaapi/gstvaapidisplay.c:
19543         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19544         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19545         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
19546         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19547         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19548         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19549         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19550           display: record native display object.
19551           Record the underlying native display instance into the toplevel
19552           GstVaapiDisplay object. This is useful for fast lookups to the
19553           underlying native display, e.g. for creating an EGL display.
19554
19555 2014-12-01 16:54:32 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19556
19557         * gst-libs/gst/vaapi/gstvaapidisplay.c:
19558         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19559         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19560           display: use a recursive mutex for the display cache.
19561           Use a recursive mutex for the display cache so that a 3rdparty display
19562           object could be initialized during the initialization of the parent
19563           display.
19564
19565 2014-12-04 14:36:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19566
19567         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19568         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19569         * gst-libs/gst/vaapi/gstvaapitexture.c:
19570         * gst-libs/gst/vaapi/gstvaapitexture.h:
19571         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19572         * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19573           texture: add generic helper to create textures.
19574           Add new generic helper functions gst_vaapi_texture_new_wrapped()
19575           and gst_vaapi_texture_new() to create a texture without having
19576           the caller to uselessly check for the display type himself. i.e.
19577           internally, there is now a GstVaapiDisplayClass hook to create
19578           textures, and the actual backend implementation fills it in.
19579           This is a simplification in view to supporting EGL.
19580
19581 2014-10-23 17:44:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19582
19583         * gst-libs/gst/vaapi/Makefile.am:
19584         * gst-libs/gst/vaapi/gstvaapitexture.c:
19585         * gst-libs/gst/vaapi/gstvaapitexture.h:
19586         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19587         * gst-libs/gst/vaapi/gstvaapitexture_glx.h:
19588         * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19589         * gst/vaapi/gstvaapivideoconverter_glx.c:
19590         * gst/vaapi/gstvaapivideometa_texture.c:
19591         * tests/test-textures.c:
19592           texture: move to core libgstvaapi base library.
19593           GstVaapiTexture is a generic abstraction that could be moved to the
19594           core libgstvaapi library. While doing this, no extra dependency needs
19595           to be added. This means that a GstVaapitextureClass is now available
19596           for any specific code that needs to be added, e.g. creation of the
19597           underlying GL texture objects, or backend dependent ways to upload
19598           a surface to the texture object.
19599           Generic OpenGL data types (GLuint, GLenum) are also replaced with a
19600           plain guint.
19601           https://bugzilla.gnome.org/show_bug.cgi?id=736715
19602
19603 2014-10-23 13:11:54 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19604
19605         * configure.ac:
19606         * gst-libs/gst/vaapi/Makefile.am:
19607         * gst-libs/gst/vaapi/gstvaapicompat.h:
19608         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19609         * gst-libs/gst/vaapi/gstvaapitexture.c:
19610           texture: drop support for VA/GLX interfaces.
19611           The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
19612           ease of use, but they had other caveats to deal with. It's now better
19613           to move on to legacy mode, whereby VA/GLX interop is two be provided
19614           through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
19615           https://bugzilla.gnome.org/show_bug.cgi?id=736711
19616
19617 2014-10-23 11:56:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19618
19619         * gst-libs/gst/vaapi/gstvaapitexture.c:
19620         * gst-libs/gst/vaapi/gstvaapitexture.h:
19621         * gst/vaapi/gstvaapivideoconverter_glx.c:
19622         * gst/vaapi/gstvaapivideometa_texture.c:
19623         * tests/test-textures.c:
19624           texture: add support for cropping rectangle during transfer.
19625           The gst_vaapi_texture_put_surface() function is missing a crop_rect
19626           argument that would be used during transfer for cropping the source
19627           surface to the desired dimensions.
19628           Note: from a user point-of-view, he should create the GstVaapiTexture
19629           object with the cropped size. That's the default behaviour in software
19630           decoding pipelines that we need to cope with.
19631           This is an API/ABI change, and SONAME version needs to be bumped.
19632           https://bugzilla.gnome.org/show_bug.cgi?id=736712
19633
19634 2014-10-23 11:22:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19635
19636         * gst-libs/gst/vaapi/gstvaapitexture.c:
19637         * gst-libs/gst/vaapi/gstvaapitexture.h:
19638           texture: re-indent all GstVaapiTexture related source code.
19639
19640 2015-01-27 11:16:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19641
19642         * gst-libs/gst/vaapi/gstvaapisurface.c:
19643         * gst-libs/gst/vaapi/gstvaapisurface.h:
19644           surface: add more fine-grained allocation helper.
19645           Add new gst_vaapi_surface_new_full() helper function that allocates
19646           VA surface from a GstVideoInfo template in argument. Additional flags
19647           may include ways to
19648           - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
19649           - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
19650           - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
19651
19652 2014-09-15 14:57:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19653
19654         * gst-libs/gst/vaapi/gstvaapisurface.c:
19655         * gst-libs/gst/vaapi/gstvaapisurface.h:
19656         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19657           surface: re-indent all GstVaapiSurface related source code.
19658
19659 2015-01-23 16:44:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19660
19661         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19662         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19663           surfaceproxy: add helper to create a wrapped surface object.
19664           Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
19665           a proxy. The main use case for that is to convey additional information
19666           at the proxy level that would not be suitable to the plain surface.
19667
19668 2015-01-23 16:37:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19669
19670         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19671         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19672         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19673           surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
19674
19675 2015-01-27 18:02:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19676
19677         * configure.ac:
19678           libs: bump library major version.
19679
19680 2014-12-04 14:36:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19681
19682         * gst-libs/gst/vaapi/gstvaapitypes.h:
19683           libs: re-introduce a GST_VAAPI_ID_INVALID value.
19684           Re-introduce a GST_VAAPI_ID_INVALID value that represents
19685           a non-zero and invalid id. This is useful to have a value
19686           that is still invalid for cases where zero could actually
19687           be a valid value.
19688
19689 2014-12-02 16:51:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19690
19691         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19692         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19693           libs: expose GstVaapiMiniObject APIs to all backends.
19694           Make it possible to have all libgstvaapi backends (libs) access to a
19695           common GstVaapiMiniObject API and implementation. This is a minor step
19696           towards full exposure when needed, but restrict it to libgstvaapi at
19697           this time.
19698
19699 2014-12-02 14:15:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19700
19701         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19702         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19703         * gst-libs/gst/vaapi/gstvaapiobject.c:
19704         * gst-libs/gst/vaapi/gstvaapiobject.h:
19705         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19706           libs: re-indent all GstVaapiObject related source code.
19707           Re-indent and provide additional minor cosmetical changes to the
19708           GstVaapiMiniObject and GstVaapiObject source files.
19709
19710 2015-01-27 16:25:21 +0200  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19711
19712         * gst/vaapi/gstvaapipluginutil.c:
19713           pluginutil: Fix clearing of subtitle overlay
19714           dvbsuboverlay signals no subtitles present by not setting
19715           GstVideoOverlayCompositionMeta on a buffer.
19716           Detect this, and remove subtitles whenever we have no overlay composition to
19717           hand.
19718           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19719
19720 2015-01-27 16:06:02 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
19721
19722         * gst/vaapi/gstvaapipostproc.c:
19723           vaapipostproc: clear state on stop
19724           Otherwise restarting may fail because the state of vaapipluginbase and
19725           vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
19726           initailization and not call gst_vaapi_plugin_base_set_caps()
19727
19728 2015-01-27 14:50:12 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
19729
19730         * gst/vaapi/gstvaapidecode.c:
19731           vaapidecode: don't print an error message for GST_FLOW_FLUSHING
19732
19733 2015-01-27 12:38:45 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19734
19735         * gst-libs/gst/vaapi/gstvaapiencoder.c:
19736           gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
19737           Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
19738           since the vaaapi context creation (gstvaapicontext.c) can still use the
19739           default chroma type which is YUV420.
19740           https://bugzilla.gnome.org/show_bug.cgi?id=743567
19741           https://bugzilla.gnome.org/show_bug.cgi?id=743035
19742
19743 2015-01-21 18:31:22 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19744
19745         * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
19746         * patches/videoparsers/series.frag:
19747           h264parse: drop patches merged upstream.
19748           0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
19749
19750 2015-01-21 18:26:12 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19751
19752         * ext/codecparsers:
19753           codecparsers: update to gst-vaapi-branch commit d3b5c1b
19754           8194cac: h264parse: parse SPS subset
19755           64b7f52: h264parse: expose stereo-high profile
19756           774360a: h264parse: add initial support for MVC NAL units
19757           258478f: h264parser: fix stack smashing
19758
19759 2015-01-19 11:30:12 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19760
19761         * gst/vaapi/gstvaapivideometa_texture.c:
19762           Fix compilation error if there is no GL/gl.h header file installed
19763
19764 2015-01-15 16:23:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19765
19766         * gst/vaapi/gstvaapidecode.c:
19767           vaapidecode: commit updated srcpad caps to base plugin.
19768           Make sure that the GstVaapiPluginBase instance receives the new src
19769           pad caps whenever they get updated from within the GstVaapiDecoder
19770           decode routines.
19771           This also ensures that downstream elements receive correctly sized
19772           SW decoded buffers if needed.
19773           https://bugs.tizen.org/jira/browse/TC-114
19774
19775 2015-01-15 16:19:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19776
19777         * gst/vaapi/gstvaapidecode.c:
19778           vaapidecode: always reset decoder on ::set_format().
19779           Split GstVideoDecoder::set_format() handler to first update the sink
19780           pad caps and reset the active VA decoder instance based on those, and
19781           then update the src pad caps whenever possible, e.g. when the caps
19782           specify a valid video resolution.
19783
19784 2015-01-15 16:14:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19785
19786         * gst/vaapi/gstvaapivideomemory.c:
19787           vaapivideomemory: don't crash when trying to allocate 0x0 images.
19788           In some occasions, a buffer pool is created for pre-initialization
19789           purposes regardless of whether a valid image size is available or
19790           not. However, during actual decode stage, the vaapidecode element
19791           is expected to update the srcpad caps with the new dimensions, thus
19792           also triggering a reset of the underlying bufferpool.
19793
19794 2015-01-15 00:00:16 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19795
19796         * ext/codecparsers:
19797           codecparsers: update to gst-vaapi-branch commit 191cb2f
19798           347605a: h264parse: expose compatible profiles to downstream
19799           d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
19800           24a3126: Revert "h264parse: expose compatible profiles to downstream"
19801           8661740: h264parse: expose compatible profiles to downstream
19802           8b7ef3f: codecparsers: fix some compiler warnings
19803
19804 2014-11-27 12:11:03 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19805
19806         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19807           encoder: h264: Fix the period between I/P frames
19808           If the key-frame period is set as one, then ip_period shuld be zero
19809           https://bugzilla.gnome.org/show_bug.cgi?id=734992
19810
19811 2014-11-27 11:21:03 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19812
19813         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19814           encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
19815           https://bugzilla.gnome.org/show_bug.cgi?id=734993
19816
19817 2014-11-27 11:14:50 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19818
19819         * gst/vaapi/gstvaapisink.c:
19820           vaapisink: Protect the X11 API invokations with proper locking
19821           https://bugzilla.gnome.org/show_bug.cgi?id=739808
19822
19823 2014-11-27 11:13:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19824
19825         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19826           encoder: h264: fix pixel-aspect-ratio in encoded stream.
19827           Really report sample aspect ratio (SAR) as present, and make it match
19828           what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
19829           really make sure VUI parameter aspect_ratio_info_present_flag is set
19830           to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
19831           This is a leftover from git commit a12662f.
19832           https://bugzilla.gnome.org/show_bug.cgi?id=740360
19833
19834 2014-11-25 11:46:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19835
19836         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19837           decoder: mpeg4: fix uninitialized variables.
19838           Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
19839           GST_MPEG4_USER_DATA so that a parse error would result in skipping
19840           that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
19841           initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
19842
19843 2014-11-25 11:41:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19844
19845         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19846           encoder: h264: fix profile limits.
19847           Fix ensure_profile_limits() to lower profile to the desired limits,
19848           only if the latter are actually known and the profile needed to be
19849           changed to fit.
19850
19851 2014-11-24 15:14:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19852
19853         * gst/vaapi/gstvaapipostproc.c:
19854           vaapipostproc: fix out caps for GLMemory.
19855           If the best downstream capsfeature turns out to be GLMemory, then make
19856           sure to propagate RGBA video format in caps to that element. This fixes
19857           the following pipeline: ... ! vaapipostproc ! glimagesink.
19858
19859 2014-11-24 14:25:33 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19860
19861         * gst/vaapi/gstvaapipostproc.c:
19862           vaapipostproc: fix check for compatible src pad capsfilters.
19863           When an explicit output video format is selected, from an src pad
19864           capsfilter, make sure that the downstream element actually supports
19865           that format. In particular, fix crash with the following pipelines:
19866           ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
19867           XXX is a format not supported by xvimagesink.
19868           While doing so, also reduce the set of src pad filter caps to the
19869           actual set of allowed src pad caps.
19870
19871 2014-11-24 14:10:11 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19872
19873         * gst/vaapi/gstvaapipostproc.c:
19874         * gst/vaapi/gstvaapipostproc.h:
19875         * gst/vaapi/gstvaapiuploader.c:
19876         * gst/vaapi/gstvaapiuploader.h:
19877           plugins: re-indent all video processing related source code.
19878
19879 2014-11-24 13:20:33 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19880
19881         * gst/vaapi/gstvaapivideomemory.c:
19882           plugins: further fixes to the new "current" storage tracker.
19883           The ensure_surface() and ensure_image() functions shall only relate
19884           to the underlying backing store. The actual current flags are to be
19885           updated only through ensure_{surface,image}_is_current() or very other
19886           particular cases in GstMemory hooks.
19887
19888 2014-11-21 15:43:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19889
19890         * gst/vaapi/gstvaapivideomemory.c:
19891           plugins: fix "current" video memory flags.
19892           If the surface proxy is updated into the GstVaapiVideoMemory, then
19893           it is assumed it is the most current representation of the current
19894           video frame. Likewise, make a few more arrangements to have the
19895           "current " flags set more consistently.
19896
19897 2014-11-21 15:23:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19898
19899         * gst/vaapi/gstvaapivideomemory.c:
19900         * gst/vaapi/gstvaapivideomemory.h:
19901         * gst/vaapi/gstvaapivideometa.c:
19902           plugins: ensure VA surface is current prior to using it.
19903           When interacting with SW elements, the buffers and underlying video
19904           memory could be mapped as read/write. However, we need to use those
19905           buffers again as plain VA surfaces, we have to make sure the VA image
19906           is thus committed back to VA surface memory.
19907           This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
19908
19909 2013-07-12 06:34:15 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19910
19911         * gst/vaapi/gstvaapivideomemory.c:
19912           plugins: enable memory maps for read & write.
19913           Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
19914           buffers can be further processed in-place, e.g. with a textoverlay.
19915           https://bugzilla.gnome.org/show_bug.cgi?id=704078
19916           [ported to current git master branch, amended commit message]
19917           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19918
19919 2014-11-18 14:57:02 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19920
19921         * gst/vaapi/gstvaapidecode.c:
19922         * gst/vaapi/gstvaapipluginutil.c:
19923         * gst/vaapi/gstvaapipluginutil.h:
19924         * gst/vaapi/gstvaapipostproc.c:
19925           plugins: preserve framerate when updating src caps video format.
19926           In the current implementation, gst_video_info_set_format() would reset
19927           the whole GstVideoInfo structure first, prior to setting video format
19928           and size. So, coleteral information like framerate or pixel-aspect-
19929           ratio are lost.
19930           Provide and use a unique gst_video_info_change_format() for overcome
19931           this issue, i.e. only have it change the format and video size, and
19932           copy over the rest of the fields.
19933           https://bugzilla.gnome.org/show_bug.cgi?id=734665
19934
19935 2014-11-18 14:07:57 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19936
19937         * gst/vaapi/gstvaapi.c:
19938           vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
19939           This is for helping decodebin to autoplug the vaapidecode element.
19940           Decodebin is selecting decoder elements only based on rank and caps.
19941           Without overriding the autoplug-* signals there is no way to autoplug
19942           HW decoders inside decodebin. An easier soulution is to raise the
19943           rank of vaapidecode, so that it gets selected first.
19944           https://bugzilla.gnome.org/show_bug.cgi?id=739332
19945
19946 2014-11-12 07:46:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19947
19948         * gst-libs/gst/vaapi/gstvaapiprofile.c:
19949         * gst/vaapi/gstvaapidecode.c:
19950           vaapidecode: only expose supported profiles when needed.
19951           JPEG and VP8 codecs do not really support the concept of "profile". So,
19952           don't try to expose any set that wouldn't be supported by jpegparse, or
19953           ivfparse for instance.
19954           https://bugzilla.gnome.org/show_bug.cgi?id=739713
19955           https://bugzilla.gnome.org/show_bug.cgi?id=739714
19956
19957 2014-11-13 15:13:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19958
19959         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19960         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19961         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
19962         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19963           decoder: h264: add initial support for repeat-first-field (RFF) flag.
19964           Use the SEI pic_timing() message to track and propagate down the repeat
19965           first field (RFF) flag. This is only initial support as there is one
19966           other condition that could induce the RFF flag, which is not handled
19967           yet.
19968
19969 2014-11-13 15:05:19 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19970
19971         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19972           decoder: h264: fix picture ordering count type 0 with previous MMCO5.
19973           Fix the decoding process for picture order count type 0 when the previous
19974           picture had a memory_management_control_operation = 5. In particular, fix
19975           the actual variable type for prev_pic_structure to hold the full bits of
19976           the picture structure.
19977           In practice, this used to work though, due to the underlying type used to
19978           express a gboolean.
19979
19980 2014-11-13 15:00:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19981
19982         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19983           decoder: h264: fix detection of top-field-first (TFF) flag.
19984           Use the SEI pic_timing() message to track the pic_struct variable when
19985           present, or infer it from the regular slice header flags field_pic_flag
19986           and bottom_field_flag. This fixes temporal sequence ordering when the
19987           output pictures are to be displayed.
19988           https://bugzilla.gnome.org/show_bug.cgi?id=739291
19989
19990 2014-11-14 09:54:02 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19991
19992         * ext/codecparsers:
19993           codecparsers: update to gst-vaapi-branch commit 3d05d9f.
19994           1241840 h264: fix derivation of MaxPicNum variable
19995           3bd718e h264: fix GstH264ParserResult documentation typo
19996           b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
19997           b08e4be h264parse: don't unnecesarily set src_caps
19998
19999 2014-11-03 19:20:43 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20000
20001         * gst/vaapi/gstvaapipostproc.c:
20002           vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
20003           Added the same Klass specifications used in other upstream
20004           video postprocessing elements like videoconvert, videoscale,
20005           videobalance and deinterlace.
20006           An example use case is for this is to help the playsink
20007           to autoplug the hardware accelerated deinterlacer.
20008
20009 2014-11-03 19:19:20 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20010
20011         * gst/vaapi/gstvaapipostproc.c:
20012           vaapipostproc: Tweak the output video format setting to enable the autoplugging
20013           This is a workaround until auto-plugging is fixed when
20014           format=ENCODED + memory:VASurface caps feature are provided.
20015           Use the downstream negotiated video format as the output video format
20016           if the user didn't ask for the colorspace conversion explicitly.
20017           Usecase: This will help to connect elements like videoscale, videorate etc
20018           to vaapipostproc.
20019           https://bugzilla.gnome.org/show_bug.cgi?id=739443
20020
20021 2014-10-29 17:30:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20022
20023         * gst/vaapi/gstvaapipostproc.c:
20024         * gst/vaapi/gstvaapipostproc.h:
20025           vaapipostproc: allow user defined scaling mode.
20026           Add new "scale-method" property to expose the scaling mode to use during
20027           video processing. Note that this is only a hint, and the actual behaviour
20028           may differ from implementation (VA driver) to implementation.
20029
20030 2014-10-29 16:57:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20031
20032         * gst-libs/gst/vaapi/gstvaapifilter.c:
20033         * gst-libs/gst/vaapi/gstvaapifilter.h:
20034         * gst-libs/gst/vaapi/gstvaapiutils.c:
20035         * gst-libs/gst/vaapi/gstvaapiutils.h:
20036           filter: add initial support for high quality scaling.
20037           Add support for video scaling options in VPP pipelines. Only the
20038           DEFAULT mode is bound to exist. Others might be folded into that
20039           mode.
20040
20041 2014-10-29 16:35:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20042
20043         * gst-libs/gst/vaapi/gstvaapifilter.c:
20044         * gst-libs/gst/vaapi/gstvaapifilter.h:
20045           filter: re-indent all GstVaapiFilter related source code.
20046
20047 2014-10-29 15:45:50 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20048
20049         * ext/codecparsers:
20050           codecparsers: update to gst-vaapi-branch commit f9d3bde.
20051           2218b02 h264parse: expose parsed profile and level to downstream
20052           3dbfab4 h264parse: return flushing if we get chained while being set to READY
20053           d40fa8b h264: fix frame packing SEI parsing
20054           32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
20055           b3e022e h264: initialize some fields of pic_timing structure
20056           a70661d vc1: fix expected level in sequence-layer parsing unit test
20057           6cee88d vc1: fix level values for simple/main profile
20058           356c189 vc1: add unit test for sequence-layer parsing
20059           ab9f641 vc1: take care of endianness when parsing sequence-layer
20060           8dc8e35 mpeg4: fix vlc table used for sprite trajectory
20061
20062 2014-10-29 15:46:47 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20063
20064         * gst/vaapi/gstvaapidecode.c:
20065           vaapidecode: Expose the supported profiles as caps to upstream
20066           This will allows the playbin to fallback to Software Decoder
20067           if the Hardware Decoder does not support a particular profile.
20068           https://bugzilla.gnome.org/show_bug.cgi?id=730997
20069
20070 2014-10-29 15:46:12 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20071
20072         * gst/vaapi/gstvaapiencode.c:
20073         * gst/vaapi/gstvaapiencode.h:
20074         * gst/vaapi/gstvaapiencode_h264.c:
20075           encode: Attach the codec-data to out caps only based on negotiated caps
20076           Attach the codec_data to out_caps only if downstream needed.
20077           For eg: h264 encoder doesn't need to stuff codec_data to the
20078           src caps if the negotiated caps has a stream format of byte-stream.
20079           https://bugzilla.gnome.org/show_bug.cgi?id=734902
20080
20081 2014-10-29 15:45:44 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20082
20083         * configure.ac:
20084           configure: echoing installation prefix path
20085
20086 2014-09-24 10:14:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20087
20088         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
20089           display: add support for DRM Render-Nodes.
20090           Add support for DRM Render-Nodes. This is a new feature that appeared
20091           in kernel 3.12 for experimentation purposes, but was later declared
20092           stable enough in kernel 3.15 for getting enabled by default.
20093           This allows headless usages without authentication at all, i.e. usages
20094           through plain ssh connections is possible.
20095
20096 2014-09-24 13:44:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20097
20098         * gst/vaapi/gstvaapisink.c:
20099           vaapisink: clean-ups (indentation, drop unused variables).
20100
20101 2014-09-24 13:39:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20102
20103         * configure.ac:
20104         * gst/vaapi/gstvaapisink.c:
20105           vaapisink: fix GstNavigation "key-press" / "key-release" events.
20106           Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
20107           to a KeySym. In particular, there is no such Window argument. Also
20108           make sure to check for, and use, the correct <X11/XKBlib.h> header
20109           where that new function is defined. Otherwise, default to the older
20110           XKeycodeToKeysym() function.
20111
20112 2014-09-24 13:23:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20113
20114         * gst/vaapi/gstvaapisink.c:
20115           vaapisink: fix GstNavigation "mouse-move" event.
20116           Really use the motion event coordinates to propagate the "mouse-move"
20117           event to upper layer, instead of those from a button event. Those are
20118           technically the same though.
20119
20120 2014-09-16 14:25:40 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20121
20122         * gst/vaapi/gstvaapisink.c:
20123           vaapisink: implement the GstNavigation interface
20124           This is useful for things like DVD menus, where key/mouse events
20125           would need to be forwarded from the upstream sink element.
20126           https://bugzilla.gnome.org/show_bug.cgi?id=711479
20127
20128 2014-03-13 18:38:33 +0000  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20129
20130         * gst/vaapi/gstvaapipluginbase.c:
20131           vaapipostproc: fix deinterlacing from non VA memory buffers.
20132           When we copy a buffer because we're moving it into VA-API memory, we
20133           need to copy flags. Otherwise, interlaced YUV buffers from a capture
20134           source (e.g. V4L2) don't get flagged as interlaced.
20135           https://bugzilla.gnome.org/show_bug.cgi?id=726270
20136           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20137           [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
20138           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20139
20140 2014-08-22 15:22:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20141
20142         * gst/vaapi/gstvaapipostproc.c:
20143           vaapipostproc: add support for GLTextureUploadMeta output.
20144           This allows for vaapipostproc to be chained to the glimagesink element
20145           for instance.
20146           https://bugzilla.gnome.org/show_bug.cgi?id=735231
20147
20148 2014-08-22 15:22:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20149
20150         * gst/vaapi/gstvaapipluginutil.c:
20151         * gst/vaapi/gstvaapipluginutil.h:
20152         * gst/vaapi/gstvaapipostproc.c:
20153           vaapipostproc: add support for "download" capability.
20154           Allow implicit conversions to raw video formats, while still keeping
20155           VA surfaces underneath. This allows for chaining the vaapipostproc
20156           element to a software-only element that takes care of maps/unmaps.
20157           e.g. xvimagesink.
20158           https://bugzilla.gnome.org/show_bug.cgi?id=720174
20159
20160 2014-08-22 18:10:54 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20161
20162         * gst/vaapi/gstvaapipostproc.c:
20163         * gst/vaapi/gstvaapipostproc.h:
20164           vaapipostproc: use pooled vaapi video meta.
20165           Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
20166           video buffer allocation. Also optimize copy of additional metadata info
20167           into the resulting video buffer: only copy the video cropping info and
20168           the source surface proxy.
20169           https://bugzilla.gnome.org/show_bug.cgi?id=720311
20170           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20171           [fixed proxy leak, fixed double free on error, optimized meta copy]
20172           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20173
20174 2014-08-22 15:17:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20175
20176         * gst/vaapi/gstvaapipostproc.c:
20177           vaapipostproc: fix passthrough mode.
20178           If no explicit output surface format is supplied try to keep the one
20179           supplied through the sink pad caps. This avoids a useless copy, even
20180           if things are kept in GPU memory.
20181           This is a performance regression from git commit dfa70b9.
20182
20183 2014-07-05 21:00:34 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20184
20185         * gst/vaapi/gstvaapipostproc.c:
20186         * gst/vaapi/gstvaapipostproc.h:
20187           vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
20188           https://bugzilla.gnome.org/show_bug.cgi?id=720311
20189           [used new infrastructure through base decide_allocation() impl]
20190           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20191
20192 2014-08-22 11:13:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20193
20194         * gst/vaapi/gstvaapipostproc.c:
20195           vaapipostproc: enable advanced deinterlacing with same format.
20196           If only advanced deinterlacing is requested, i.e. deinterlacing is
20197           the only active algorithm to apply with source and output surface
20198           formats being the same, then make sure to enable VPP processing.
20199           Otherwise, allow fallback to bob-deinterlacing with simple rendering
20200           flags alteration.
20201
20202 2014-08-21 15:04:20 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20203
20204         * gst/vaapi/gstvaapivideomemory.c:
20205           vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
20206           https://bugzilla.gnome.org/show_bug.cgi?id=735156
20207
20208 2014-08-22 13:25:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20209
20210         * gst/vaapi/gstvaapipluginbase.c:
20211         * gst/vaapi/gstvaapipluginutil.c:
20212           plugins: fix memory leaks.
20213
20214 2014-08-21 14:10:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20215
20216         * gst/vaapi/gstvaapidecode.c:
20217         * gst/vaapi/gstvaapipluginbase.c:
20218         * gst/vaapi/gstvaapipluginbase.h:
20219           plugins: factor out decide_allocation() hook.
20220           Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
20221           feature argument can be used to force a bufferpool with a specific kind
20222           of memory.
20223
20224 2014-08-21 11:12:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20225
20226         * gst/vaapi/gstvaapivideobufferpool.c:
20227         * gst/vaapi/gstvaapivideobufferpool.h:
20228         * gst/vaapi/gstvaapivideomemory.c:
20229           plugins: allow bufferpool to not allocate vaapi video meta.
20230           Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
20231           can be used to disable early allocations of vaapi video metas on buffers,
20232           thus delagating that to the bufferpool user.
20233
20234 2014-08-21 10:45:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20235
20236         * gst/vaapi/gstvaapivideobuffer.c:
20237         * gst/vaapi/gstvaapivideobuffer.h:
20238         * gst/vaapi/gstvaapivideobufferpool.c:
20239         * gst/vaapi/gstvaapivideobufferpool.h:
20240         * gst/vaapi/gstvaapivideocontext.c:
20241         * gst/vaapi/gstvaapivideocontext.h:
20242         * gst/vaapi/gstvaapivideoconverter_glx.c:
20243         * gst/vaapi/gstvaapivideoconverter_glx.h:
20244         * gst/vaapi/gstvaapivideoconverter_x11.c:
20245         * gst/vaapi/gstvaapivideoconverter_x11.h:
20246         * gst/vaapi/gstvaapivideomemory.c:
20247         * gst/vaapi/gstvaapivideomemory.h:
20248         * gst/vaapi/gstvaapivideometa.c:
20249         * gst/vaapi/gstvaapivideometa.h:
20250         * gst/vaapi/gstvaapivideometa_texture.c:
20251         * gst/vaapi/gstvaapivideometa_texture.h:
20252           plugins: re-indent all GstVaapiVideo* related source code.
20253
20254 2014-08-22 15:12:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20255
20256         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20257           surfaceproxy: fix copy to propagate view_id.
20258           Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
20259           fixing random frames skipped when vaapipostproc element is used in
20260           passthrough mode. In that mode, GstMemory is copied, thus including
20261           the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
20262
20263 2014-08-20 16:38:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20264
20265         * gst/vaapi/gstvaapipostproc.c:
20266           vaapipostproc: fix detection of output surface format changes.
20267           Default to I420 format for output surfaces so that to match the usual
20268           GStreamer pipelines. Though, internally, we could still opt for NV12
20269           surface formats, i.e. default format=ENCODED is a hint for that, thus
20270           delegating the decision to the VA driver.
20271
20272 2014-08-20 10:59:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20273
20274         * gst/vaapi/gstvaapipostproc.c:
20275           vaapipostproc: fix construction of allowed sink pad caps.
20276           Fix construction of the set of caps allowed on the sink pad to filter
20277           out unsupported raw video caps with GStreamer >= 1.2.
20278
20279 2014-08-20 10:37:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20280
20281         * gst/vaapi/gstvaapipostproc.c:
20282         * gst/vaapi/gstvaapipostproc.h:
20283           vaapipostproc: improve heuristics for detecting native VA surfaces.
20284           Use the new gst_caps_has_vaapi_surface() helper function to detect
20285           whether the sink pad caps contain native VA surfaces, or not, i.e.
20286           no raw video caps.
20287           Also rename is_raw_yuv to get_va_surfaces to make the variable more
20288           explicit as we just want a way to differentiate raw video caps from
20289           VA surfaces actually.
20290
20291 2014-08-12 18:33:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20292
20293         * gst/vaapi/gstvaapipostproc.c:
20294           vaapipostproc: disable discontinuity detection code.
20295           The "discontinuity" tracking code, whereby lost frames are tentatively
20296           detected, is inoperant if the sink pad buffer timestamps are not right
20297           to begin with.
20298           This is a temporary workaround until the following bug is fixed:
20299           https://bugzilla.gnome.org/show_bug.cgi?id=734386
20300
20301 2014-08-07 14:57:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20302
20303         * gst/vaapi/gstvaapipostproc.c:
20304           vaapipostproc: fix heuristic for detecting discontinuity.
20305           In order to make the discontinuity detection code useful, we need to
20306           detect the lost frames in the history as early as the previous frame.
20307           This is because some VA implementations only support one reference
20308           frame for advanced deinterlacing.
20309           In practice, turn the condition for detecting new frame that is beyond
20310           the previous frame from field_duration*2 to field_duration*3, i.e.
20311           nothing received for the past frame and a half because of possible
20312           rounding errors when calculating the field-duration either in this
20313           element (vaapipostproc), or from the upstream element (parser element).
20314           This is a regression introduced with commit faefd62.
20315           https://bugzilla.gnome.org/show_bug.cgi?id=734135
20316
20317 2014-08-20 11:43:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20318
20319         * gst/vaapi/gstvaapipluginbase.c:
20320         * gst/vaapi/gstvaapipluginbase.h:
20321           plugins: fix detection of raw video caps.
20322           Use the new gst_caps_has_vaapi_surface() helper function to better
20323           detect raw video caps, and in particular those from RGB colorspace.
20324           https://bugzilla.gnome.org/show_bug.cgi?id=734665
20325
20326 2014-08-20 11:30:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20327
20328         * gst/vaapi/gstvaapipluginutil.c:
20329         * gst/vaapi/gstvaapipluginutil.h:
20330           plugins: add helper for detecting VA surfaces in caps.
20331           Introduce new gst_caps_has_vaapi_surface() helper function to detect
20332           whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
20333           implies a check for memory:VASurface caps features, and format=ENCODED
20334           for earlier versions of GStreamer.
20335
20336 2014-08-12 13:01:57 +0300  Sebastian Dröge <sebastian@centricular.com>
20337
20338         * gst/vaapi/gstvaapidecode.c:
20339           vaapidecode: start the decoder task again after finishing
20340           This allows the element to accept data again after draining without
20341           a hard reset or caps change happening in between.
20342           https://bugzilla.gnome.org/show_bug.cgi?id=734616
20343
20344 2014-08-12 13:00:03 +0300  Sebastian Dröge <sebastian@centricular.com>
20345
20346         * gst/vaapi/gstvaapidecode.c:
20347           vaapidecode: unlock condition variables before shutting down the element
20348           Otherwise threads might wait for them, causing the shutdown of the element
20349           to deadlock on the streaming thread.
20350           https://bugzilla.gnome.org/show_bug.cgi?id=734616
20351
20352 2014-08-11 17:15:24 +0300  Sebastian Dröge <sebastian@centricular.com>
20353
20354         * gst/vaapi/gstvaapidecode.c:
20355           vaapidecode: reset decoder_finish variable after stopping the decoder thread
20356           Otherwise the element is not usable again after draining/EOS.
20357           https://bugzilla.gnome.org/show_bug.cgi?id=734616
20358
20359 2014-08-11 17:14:53 +0300  Sebastian Dröge <sebastian@centricular.com>
20360
20361         * gst/vaapi/gstvaapidecode.c:
20362           vaapidecode: don't try flushing the decoder instance if we didn't create one yet
20363           This otherwise results in unnecessary error messages.
20364           https://bugzilla.gnome.org/show_bug.cgi?id=734616
20365
20366 2014-08-01 06:32:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20367
20368         * gst-libs/gst/vaapi/Makefile.am:
20369         * gst/vaapi/Makefile.am:
20370           build: fix with --no-undefined linker flags.
20371           https://bugzilla.gnome.org/show_bug.cgi?id=729352
20372
20373 2014-01-23 15:44:09 +0000  Changzhi Wei <changzhix.wei@intel.com>
20374
20375         * gst/vaapi/gstvaapisink.c:
20376         * gst/vaapi/gstvaapisink.h:
20377           vaapisink: add support for GstColorBalance interface.
20378           https://bugzilla.gnome.org/show_bug.cgi?id=722390
20379           [fixed channel names, simplified range factor, fixed memory leak]
20380           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20381
20382 2014-01-23 15:23:00 +0000  Changzhi Wei <changzhix.wei@intel.com>
20383
20384         * gst/vaapi/gstvaapisink.c:
20385         * gst/vaapi/gstvaapisink.h:
20386           vaapisink: add support for colorbalance adjustment.
20387           https://bugzilla.gnome.org/show_bug.cgi?id=722390
20388           [fixed and simplified tracking of colorbalance value changes]
20389           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20390
20391 2014-07-31 13:18:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20392
20393         * gst/vaapi/gstvaapisink.c:
20394           vaapisink: improve installation of properties.
20395           Simplify the creation and installation process of properties, by first
20396           accumulating them into a g_properties[] array, and next calling into
20397           g_object_class_install_properties().
20398           Also add missing docs and flags to some properties.
20399
20400 2014-07-31 10:48:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20401
20402         * gst/vaapi/gstvaapisink.c:
20403         * gst/vaapi/gstvaapisink.h:
20404           vaapisink: code clean-ups.
20405           Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
20406           helper macro and use it wherever we know the object is a GstBaseSink or
20407           any base class. Drop explicit initializers for values that have defaults
20408           set to zero.
20409
20410 2014-07-31 10:37:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20411
20412         * gst/vaapi/gstvaapisink.c:
20413         * gst/vaapi/gstvaapisink.h:
20414           vaapisink: re-indent all GstVaapiSink related source code.
20415
20416 2014-07-30 17:27:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20417
20418         * gst/vaapi/gstvaapisink.c:
20419         * gst/vaapi/gstvaapisink.h:
20420           vaapisink: introduce separate backends.
20421           Introduce new backends vtable so that to have clean separation between
20422           display dependent code and common base code. That's a "soft" separation,
20423           we don't really need dedicated objects.
20424           https://bugzilla.gnome.org/show_bug.cgi?id=722248
20425
20426 2014-07-30 16:47:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20427
20428         * gst/vaapi/gstvaapisink.c:
20429         * gst/vaapi/gstvaapisink.h:
20430           vaapisink: drop unused "synchronous" mode.
20431           Support for X11 "synchronous" mode was never implemented, and was only
20432           to be useful for debugging. Drop that altogether, that's not going to
20433           be useful in practice.
20434           https://bugzilla.gnome.org/show_bug.cgi?id=733985
20435
20436 2014-07-30 17:32:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20437
20438         * gst/vaapi/gstvaapisink.c:
20439         * gst/vaapi/gstvaapisink.h:
20440           vaapisink: drop unused variables.
20441           Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
20442           variables. They got merged into the GstVaapiPluginBase object.
20443
20444 2014-07-30 16:35:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20445
20446         * gst/vaapi/gstvaapisink.c:
20447         * gst/vaapi/gstvaapisink.h:
20448           vaapisink: drop GLX rendering and fancy effects.
20449           Rendering with GLX in vaapisink is kind of useless nowadays, including
20450           OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
20451           deprecated in favor of EGL, or more direct buffer sharing with actual
20452           GL textures.
20453           Should testing of interop with GLX be needed, one could still be using
20454           the modern cluttersink or glimagesink elements.
20455           https://bugzilla.gnome.org/show_bug.cgi?id=733984
20456
20457 2013-11-05 14:01:11 +0100  Holger Kaelberer <hk@getslash.de>
20458
20459         * gst/vaapi/gstvaapisink.c:
20460         * gst/vaapi/gstvaapisink.h:
20461           vaapisink: listen to window size changes on X11.
20462           Allow dynamic changes to the window, e.g. performed by the user, and
20463           make sure to refresh its contents, while preserving aspect ratio.
20464           In practice, Expose and ConfigureNotify events are tracked in X11
20465           display mode by default. This occurs in a separte event thread, and
20466           this is similar to what xvimagesink does. Any of those events will
20467           trigger a reconfiguration of the window "soft" size, subsequently
20468           the render-rect when necessary, and finally _expose() the result.
20469           The default of handle_events=true can be changed programatically via
20470           gst_x_overlay_handle_events().
20471           Thanks to Fabrice Bellet for rebasing the patch.
20472           https://bugzilla.gnome.org/show_bug.cgi?id=711478
20473           [dropped XInitThreads(), cleaned up the code a little]
20474           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20475
20476 2014-07-29 15:47:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20477
20478         * gst/vaapi/gstvaapidecode.c:
20479           vaapidecode: decode and output all pending frames on normal EOS.
20480           The gst_vaapidecode_decode_loop() function is called within a separate
20481           task to fetch and output all frames that were decoded so far. So, if
20482           the decoder_loop_status is forcibly set to EOS when _finish() is called,
20483           then we are bound to exist the task without submitting the pending
20484           frames.
20485           If the downstream element error'ed out, then the gst_pad_push() would
20486           propagate up an error and so we will get it right for cutting off
20487           _finish() early in that case.
20488           This is a regression from 6003596.
20489           https://bugzilla.gnome.org/show_bug.cgi?id=733897
20490
20491 2014-07-29 13:24:52 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20492
20493         * configure.ac:
20494           Bump version for development.
20495
20496 2014-07-29 10:31:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20497
20498         * AUTHORS:
20499           AUTHORS: updates.
20500
20501 2014-07-29 10:31:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20502
20503         * NEWS:
20504           NEWS: updates.
20505
20506 2014-07-29 16:22:01 +1000  Matthew Waters <ystreet00@gmail.com>
20507
20508         * gst/vaapi/gstvaapidecode.c:
20509           vaapidecode: properly return from decode loop on downstream errors.
20510           Fixes a hang/race on shutdown where _decode_loop() had already completed
20511           its execution and _finish() was waiting on a GCond for decode_loop()
20512           to complete.  Also fixes the possible race where _finish() is called
20513           but _decode_loop() endlessly returns before signalling completion
20514           iff the decoder instance returns GST_FLOW_OK.
20515           Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
20516           https://bugzilla.gnome.org/show_bug.cgi?id=733897
20517           [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
20518           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20519
20520 2014-07-28 18:45:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20521
20522         * NEWS:
20523         * configure.ac:
20524           0.5.9.
20525
20526 2014-07-28 18:31:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20527
20528         * gst/vaapi/gstvaapisink.c:
20529           vaapisink: fix GstVideoOverlay::expose() implementation.
20530           Now that we always track the currently active video buffer, it is
20531           not necessary to automatically increase its reference since this is
20532           implicitly performed in ::show_frame() through the get_input_buffer()
20533           helper from GstVaapiPluginBase class.
20534           This is a regression from a26df80.
20535
20536 2014-07-28 18:00:19 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20537
20538         * gst/vaapi/gstvaapidecode.c:
20539         * gst/vaapi/gstvaapipluginutil.c:
20540           vaapidecode: simplify bufferpool configuration.
20541           Rework the logics behind the configuration of an adequate bufferpool,
20542           especially when OpenGL meta or additional capsfeatures are needed.
20543           Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
20544           and that is not system memory, is now selected by default.
20545
20546 2014-07-28 16:43:47 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20547
20548         * gst/vaapi/gstvaapidecode.c:
20549           vaapidecode: fix auto-plugging of vaapisink element.
20550           Make sure to propagate memory:VASurface capsfeature to srcpad caps
20551           only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
20552           core currently miss additional patches available in 1.5-git (1.6).
20553           This is a temporary workaround.
20554
20555 2014-07-28 15:54:46 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20556
20557         * configure.ac:
20558           configure: allow builds against GStreamer git (1.5.x).
20559           https://bugzilla.gnome.org/show_bug.cgi?id=733688
20560
20561 2014-07-28 14:20:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20562
20563         * configure.ac:
20564           configure: fix build with GStreamer 1.4.0 release.
20565
20566 2014-03-04 19:40:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20567
20568         * configure.ac:
20569         * debian.upstream/Makefile.am:
20570         * debian.upstream/control.in:
20571           debian: fix packaging for new naming scheme.
20572
20573 2014-07-28 11:52:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20574
20575         * NEWS:
20576           NEWS: updates.
20577
20578 2014-07-28 11:39:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20579
20580         * configure.ac:
20581           configure: mark support for GStreamer < 1.2 as deprecated.
20582           Supporting anything thing below GStreamer 1.2 is asking for trouble
20583           for keeping up with the required facilities to make efficient pipelines.
20584           Users are invited to upgrade to the very latest GStreamer 1.2.x release,
20585           at the minimum.
20586
20587 2014-07-28 11:35:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20588
20589         * configure.ac:
20590           configure: mark support for GStreamer 0.10 as obsolete.
20591           Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
20592           and may actually be removed altogether for a future release. There is
20593           no real point to maintain a build for such an ancient GStreamer version
20594           that is not even supported upstream.
20595
20596 2014-07-28 10:25:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20597
20598         * gst/vaapi/gstvaapisink.c:
20599         * gst/vaapi/gstvaapisink.h:
20600           vaapisink: allow a specific view component to be displayed.
20601           If a multiview stream is decoded, multiple view components are submitted
20602           as is downstream. It is the responsibility of the sink element to display
20603           the required view components. By default, always select the frame buffer
20604           that matches the view-id of the very first frame to be displayed.
20605           However, introduce a "view-id" property to allow the selection of a
20606           specific view component of interest to display.
20607
20608 2014-07-28 10:09:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20609
20610         * gst/vaapi/gstvaapisink.c:
20611           vaapisink: always keep the last displayed buffer around.
20612           Always record the VA surface that is currently being rendered, no matter
20613           the fact we are using texturedblit or overlay. That's because in some
20614           occasions, we need to refresh or resize the displayed contents based on
20615           new events. e.g. user-resized window.
20616           Besides, it's simpler to track the last video buffer in GstVaapiSink than
20617           through the base sink "last-sample".
20618
20619 2014-07-25 11:13:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20620
20621         * gst/vaapi/gstvaapipluginbase.c:
20622         * gst/vaapi/gstvaapipluginbase.h:
20623         * gst/vaapi/gstvaapipluginutil.c:
20624         * gst/vaapi/gstvaapisink.c:
20625           vaapisink: add support for "display-name" property.
20626           Add a "display-name" property to vaapisink so that the end user could
20627           select the desired output. Keep "display-name" in-line with the existing
20628           "display" (GstVaapiDisplayXXX type).
20629           So, for X11 or GLX, the "display-name" is the usual display name as we
20630           know for XOpenDisplay(); for Wayland, the "display-name" is the name used
20631           for wl_display_connect(); and for DRM, the "display-name" is actually the
20632           DRI device name.
20633           https://bugzilla.gnome.org/show_bug.cgi?id=722247
20634
20635 2014-07-25 17:29:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20636
20637         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20638           window: make gst_vaapi_window_reconfigure() thread-safe.
20639           Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
20640           thread-safe by default, so that upper layer users don't need to handle
20641           that explicitly.
20642
20643 2013-07-29 09:28:28 +0200  Holger Kaelberer <hk@getslash.de>
20644
20645         * gst-libs/gst/vaapi/gstvaapiwindow.c:
20646         * gst-libs/gst/vaapi/gstvaapiwindow.h:
20647           window: allow for updating size from current geometry.
20648           Add gst_vaapi_window_reconfigure() interface to force an update of
20649           the GstVaapiWindow "soft" size, based on the current geometry of the
20650           underlying native window.
20651           This can be useful for instance to synchronize the window size when
20652           the user changed it.
20653           Thanks to Fabrice Bellet for rebasing the patch.
20654           [changed interface to gst_vaapi_window_reconfigure()]
20655           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20656
20657 2014-07-25 16:53:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20658
20659         * gst-libs/gst/vaapi/gstvaapiwindow.c:
20660         * gst-libs/gst/vaapi/gstvaapiwindow.h:
20661         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
20662         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
20663         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20664         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
20665         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
20666         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20667         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
20668         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20669         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
20670         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
20671           window: re-indent all GstVaapiWindow related source code.
20672
20673 2014-07-25 11:24:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20674
20675         * gst-libs/gst/vaapi/gstvaapidisplay.c:
20676         * gst-libs/gst/vaapi/gstvaapidisplay.h:
20677         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20678           display: add interface to retrieve the display name.
20679           Add gst_vaapi_display_get_display_name() helper function to determine
20680           the name associated with the underlying native display. Note that for
20681           raw DRM backends, the display name is actually the device path.
20682
20683 2014-07-25 10:55:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20684
20685         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20686           display: fix comparison of X11 display names.
20687           Make sure to not only compare display host names, but also the actual
20688           display number. The screen number does not need to be checked at this
20689           time.
20690
20691 2014-07-25 15:52:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20692
20693         * gst/vaapi/gstvaapidecode.c:
20694         * gst/vaapi/gstvaapivideobufferpool.c:
20695           vaapidecode: add support for VideoAlignment bufferpool option.
20696           Always add VideoAlignment bufferpool option if the downstream element
20697           expects its own pool to be used but does not offer it through a proper
20698           propose_allocation() implementation for instance, and that the ALLOCATION
20699           query does not expose the availability of the Video Meta API.
20700           This fixes propagation of video buffer stride information to Firefox.
20701
20702 2014-07-25 15:44:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20703
20704         * gst/vaapi/gstvaapivideomemory.c:
20705           vaapivideomemory: always prefer native VA surface formats.
20706           Make sure to always prefer native internal formats for the VA surfaces
20707           that get allocated. Also disable "direct-rendering" mode in this case.
20708           This is needed so that to make sure that anything that gets out of the
20709           decoder, or anything that gets into the encoder, is in native format
20710           for the hardware, and thus the driver doesn't need to perform implicit
20711           conversions in there. Interop with SW elements is still available with
20712           fast implementations of VA imaging APIs.
20713
20714 2014-07-24 11:58:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20715
20716         * gst/vaapi/gstvaapivideomemory.c:
20717           vaapivideomemory: disallow memory shares across buffers, use a copy.
20718           Forbid shares of GstMemory instances, and rather make copy of it. This
20719           effectively copies the GstMemory structure and enclosed metadata, but
20720           this does not copy the VA surface contents itself. It should though.
20721           This fixes preroll and makes sure to not download garbage for the first
20722           frame when a SW rendering sink is used.
20723
20724 2014-07-24 06:46:22 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20725
20726         * gst/vaapi/gstvaapivideomemory.c:
20727         * gst/vaapi/gstvaapivideomemory.h:
20728           vaapivideomemory: use an image pool to cache objects.
20729           Use an image pool to hold VA images to be used for downloads/uploads
20730           of contents for the associated surface.
20731           This is an optmization for size. So, instead of creating as many VA
20732           images as there are buffers (then VA surfaces) allocated, we only
20733           maintain a minimal set of live VA images, thus preserving memory
20734           resources.
20735
20736 2014-07-24 00:14:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20737
20738         * gst/vaapi/gstvaapivideomemory.c:
20739           vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
20740           Disable read-write mappings if "direct-rendering" is not supported.
20741           Since the ordering of read and write operations is not specified,
20742           this would require to always download the VA surface on _map(), then
20743           commit the temporary VA image back to the VA surface on _unmap().
20744           Some SW decoding plug-in elements still use R/W mappings though.
20745           https://bugzilla.gnome.org/show_bug.cgi?id=733242
20746
20747 2014-07-23 23:49:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20748
20749         * gst/vaapi/gstvaapivideomemory.c:
20750           vaapivideomemory: minor code clean-ups.
20751           Fix error messages introduced in the previous commit for the _map()
20752           imaplementation. Also use the new get_image_data() helper function
20753           to determine the base pixels data buffer from a GstVaapiImage when
20754           updating the video info structure from it.
20755
20756 2014-07-23 18:54:13 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20757
20758         * gst/vaapi/gstvaapivideomemory.c:
20759         * gst/vaapi/gstvaapivideomemory.h:
20760           vaapivideomemory: add support for raw pixels mappings.
20761           Allow raw pixels of the whole frame to be mapped read-only. i.e. in
20762           cases where the buffer pool is allocated without VideoMeta API, thus
20763           individual planes cannot be mapped.
20764           This is initial support for Firefox >= 30.
20765           https://bugzilla.gnome.org/show_bug.cgi?id=731886
20766
20767 2014-07-03 18:41:11 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20768
20769         * gst/vaapi/gstvaapivideomemory.c:
20770           vaapivideomemory: fix determination of the surface pool format.
20771           While creating the vaapi video allocator, make sure the associated
20772           surface pool has correct format instead of defaulting to NV12 video
20773           format even though there is no direct rendering support.
20774           https://bugzilla.gnome.org/show_bug.cgi?id=732691
20775
20776 2014-07-23 18:01:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20777
20778         * gst/vaapi/gstvaapivideomemory.c:
20779           vaapivideomemory: fix association of surface to proxy.
20780           Make sure to always update the VA surface pointer whenever the proxy
20781           changes. This used to only work when the VA surface is written to, in
20782           interop with SW element ("upload" feature), and this now fixes cases
20783           when the VA surface is needed for reading, in interop with SW element
20784           ("download" feature).
20785
20786 2014-07-23 10:23:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20787
20788         * gst/vaapi/gstvaapidecode.c:
20789         * gst/vaapi/gstvaapipluginutil.c:
20790         * gst/vaapi/gstvaapivideomemory.c:
20791           plugins: expose I420 format for interop with SW elements.
20792           Always expose I420 format by default when the VA surface could be
20793           mapped for interoperability with non harware accelerated elements.
20794           However, the default behaviour remains the auto-plugging of vaapi
20795           elements, down to the sink.
20796           Side effect: "direct-rendering" mode is also disabled most of the
20797           times as plain memcpy() from uncached speculative write combining
20798           memory is not going to be efficient enough.
20799
20800 2014-07-22 18:54:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20801
20802         * gst/vaapi/gstvaapidecode.c:
20803         * gst/vaapi/gstvaapivideomemory.c:
20804           plugins: allow download capability to vaapidecode element.
20805           Fix support for VA surface download capability in vaapidecode element
20806           for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
20807           but also the libva-intel-driver while performing hardware accelerated
20808           conversions from the native VA surface format (NV12) to the desired
20809           output VA image format.
20810           For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
20811           https://bugzilla.gnome.org/show_bug.cgi?id=733243
20812
20813 2014-07-17 01:51:36 +0200  Fabrice Bellet <fabrice@bellet.info>
20814
20815         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20816           decoder: mpeg4: fix picture decoder return value for skipped frames.
20817           The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
20818           when a frame should be skipped, so the stream processing is not stalled.
20819           https://bugzilla.gnome.org/show_bug.cgi?id=733324
20820
20821 2014-07-04 15:13:32 +1000  Jan Schmidt <jan@centricular.com>
20822
20823         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20824           decoder: mpeg2: respect any input PTS provided for a frame.
20825           The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
20826           frame timestamps within a GOP, even when it's been fed input PTS for
20827           every frame.
20828           That leads to incorrect output timestamps in some situations - for example
20829           live playback where input timestamps have been scaled based on arrival time
20830           from the network and don't exactly match the framerate.
20831           https://bugzilla.gnome.org/show_bug.cgi?id=732719
20832
20833 2014-01-22 08:20:59 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20834
20835         * gst-libs/gst/vaapi/gstvaapiobject.c:
20836           GstVaapiObject: make gst_vaapi_object_new() more robust.
20837           Forbid GstVaapiObject to be created without an associated klass spec.
20838           It is mandatory that the subclass implements an adequate .finalize()
20839           hook, so it shall provide a valid GstVaapiObjectClass.
20840           https://bugzilla.gnome.org/show_bug.cgi?id=722757
20841           [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
20842           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20843
20844 2014-01-21 15:43:57 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20845
20846         * gst-libs/gst/vaapi/gstvaapiobject.c:
20847           GstVaapiObject: initialize the derived object data with init() hook.
20848           Call the subclass .init() function in gst_vaapi_object_new(), if
20849           needed. The default behaviour is to zero initialize the subclass
20850           object data, then the .init() function can be used to initialize
20851           fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
20852           Also fix the gst_vaapi_object_new() description, which was merely
20853           copied from GstVaapiMiniObject.
20854           https://bugzilla.gnome.org/show_bug.cgi?id=722757
20855           [changed to always zero initialize the subclass]
20856           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20857
20858 2014-06-13 21:45:04 +0100  Lionel Landwerlin <llandwerlin@gmail.com>
20859
20860         * gst/vaapi/gstvaapidecode.c:
20861           vaapidecode: make decoder work with playbin
20862           When playbin/decodebin builds the pipeline, it puts decoders and sinks
20863           into different bins and forwards the queries from bins to bins. So in
20864           the initials steps the pipeline is built iteratively by playbin and
20865           looks like this :
20866           [filesrc]
20867           [filesrc] -> [typefind]
20868           [filesrc] -> [typefind] -> [demuxer]
20869           [filesrc] -> [typefind] -> [demuxer] -> [decoder]
20870           At this point the decoder is asked for its SRC caps and it will make a
20871           choice based on what gst_pad_peer_query_caps() returns. The problem is
20872           that the caps returns at that point includes caps features like ANY,
20873           essentially because playbin can plug in additional elements like
20874           videoscale, videoconv or deinterlace.
20875           This patch adds a another call to
20876           gst_vaapi_find_preferred_caps_feature() when the decoder decides its
20877           allocation, to make sure we asks the downstream elements when the
20878           entire pipeline has been built.
20879           https://bugzilla.gnome.org/show_bug.cgi?id=731645
20880
20881 2014-06-27 11:57:11 +0100  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20882
20883         * gst/vaapi/gstvaapipostproc.c:
20884           vaapipostproc: don't let tmp_rect go out of scope.
20885           A compiler change showed me that tmp_rect went out of scope before
20886           it was used. Move it to the beginning of the function instead.
20887           https://bugzilla.gnome.org/show_bug.cgi?id=726363
20888           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20889           [added guards for GStreamer 0.10 builds]
20890           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20891
20892 2014-07-03 22:44:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20893
20894         * AUTHORS:
20895           AUTHORS: updates.
20896
20897 2014-07-03 22:34:35 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20898
20899         * README:
20900           README: updates.
20901           Drop references to deprecated plugins (vaapiupload, vaapidownload),
20902           mention that support for GStreamer 0.10 is deprecated, make overview
20903           more descriptive in certain aspects.
20904
20905 2014-07-03 22:21:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20906
20907         * NEWS:
20908           NEWS: updates.
20909
20910 2014-07-03 19:42:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20911
20912         * README:
20913         * configure.ac:
20914           build: mention that support for GStreamer 0.10 is deprecated.
20915
20916 2014-07-03 17:17:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20917
20918         * configure.ac:
20919         * gst/vaapi/gstvaapidecode.c:
20920           build: fix for GStreamer 0.10.
20921
20922 2014-07-03 18:01:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20923
20924         * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
20925         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
20926         * patches/videoparsers/series.frag:
20927           build: fix for GStreamer 1.0.x.
20928
20929 2014-07-03 13:48:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20930
20931         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20932           decoder: h264: detect incorrectly paired fields in frames.
20933           When a DPB flush is required, e.g. at a natural and of stream or issued
20934           explicitly through an IDR, try to detect any frame left in the DPB that
20935           is interlaced but does not contain two decoded fields. In that case, mark
20936           the picture as having a single field only.
20937           This avoids a hang while decoding tv_cut.mkv.
20938
20939 2014-07-03 11:13:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20940
20941         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20942           decoder: h264: simplify the DPB output process.
20943           Simplify the dpb_output() function to exclusively rely on the frame store
20944           buffer to output, since this is now always provided. Besides, also fix
20945           cases where split fields would not be displayed.
20946           This is a regression from f48b1e0.
20947
20948 2014-07-01 17:20:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20949
20950         * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
20951         * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
20952         * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
20953         * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
20954         * patches/videoparsers/series.frag:
20955           h264parse: drop patches merged upstream.
20956           0003-h264parse-fix-and-optimize-NAL-collection-function.patch
20957           0005-h264parse-introduce-new-state-tracking-variables.patch
20958           0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
20959           0007-h264parse-fix-collection-of-access-units-to-preserve.patch
20960
20961 2014-07-01 17:18:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20962
20963         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20964           decoder: h264: fix memory leak in PPS.
20965           Cope with latest changes from codecparsers/h264. It is now required
20966           to explicitly clear the GstH264PPS structure as it could contain
20967           additional allocations (slice_group_ids).
20968
20969 2014-07-01 17:13:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20970
20971         * ext/codecparsers:
20972           codecparsers: update to gst-vaapi-branch commit 2d53b69.
20973           c4ace00 h264parse: fix collection of access units to preserve config headers
20974           0f9f7c9 h264parse: improve conditions for skipping NAL units
20975           9ffb25c h264parse: introduce new state tracking variables
20976           64955d3 h264parse: fix and optimize NAL collection function
20977           13cd2a3 h264: clarifications and documentation fixes
20978           53e7dd1 h264: fix identification of EOSEQ and EOS NALs
20979           18f0de0 h264: fix memory leak in GstH264PPS
20980           fdcb54c h264: fix typo in GstH264VUIParams description
20981           fd4dae9 vp8: move up built-in range decoder private data
20982
20983 2014-06-30 19:01:35 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20984
20985         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20986         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20987         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
20988         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
20989           decoder: propagate MVC metadata ("view-id", head of multiview set).
20990           Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
20991           bundle", and really expresses the first view component of a multi
20992           view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
20993           set if VOIdx = 0.
20994           Likewise, new API is exposed to retrieve the associated "view-id".
20995
20996 2014-06-30 18:46:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20997
20998         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20999         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21000           decoder: propagate "one-field" flags.
21001           Allow decoders to set the "one-field" attribute when the decoded frame
21002           genuinely has a single field, or if the second field was mis-decoded but
21003           we still want to display the first field.
21004
21005 2014-06-30 18:34:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21006
21007         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21008           decoder: output decoded frames only once.
21009           Make sure to output the decoded picture, and push the associated
21010           GstVideoCodecFrame, only once. The frame fully represents what needs
21011           to be output, included for interlaced streams. Otherwise, the base
21012           GstVideoDecoder class would release the frame twice.
21013           Anyway, the general process is to output decoded frames only when
21014           they are complete. By complete, we mean a full frame was decoded or
21015           both fields of a frame were decoded.
21016
21017 2014-06-30 16:12:52 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21018
21019         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21020           decoder: h264: decode current picture earlier.
21021           Slightly optimize decoding process by submitting the current VA surface
21022           for decoding earlier to the hardware, and perform the reference picture
21023           marking process and DPB update process afterwards.
21024           This is a minor optimization to let the video decode engine kick in work
21025           earlier, thus improving parallel resources utilization.
21026
21027 2014-06-30 16:09:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21028
21029         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21030           decoder: h264: fix output of second field when first field is not in DPB.
21031           Fix decoding of interlaced streams where a first field (e.g. B-slice)
21032           was immediately output and the current decoded field is to be paired
21033           with that former frame, which is no longer in DPB.
21034           https://bugzilla.gnome.org/show_bug.cgi?id=701340
21035
21036 2014-06-30 11:06:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21037
21038         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21039           decoder: h264: slightly optimize the process to detect new pictures.
21040           Optimize the process to detect new pictures or start of new access
21041           units by checking if the previous NAL unit was the end of a picture,
21042           or the end of the previous access unit.
21043
21044 2014-06-13 15:42:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21045
21046         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21047           decoder: h264: handle access unit ("au") optimization.
21048           Optimize parsing when buffers are supplied with access unit alignment.
21049           This helps determining faster when the end of an access unit is reached.
21050
21051 2014-06-28 07:25:35 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21052
21053         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21054           decoder: h264: fix tracking of DPB size changes.
21055           Add support for MVC streams with multiple SPS and subset SPS headers
21056           emitted regularly, e.g. at around every I-frame. Track the maximum
21057           number of views in ensure_context() and really reset the DPB size to
21058           the expected value, always. i.e. even if it decreased. dpb_reset()
21059           only cares of ensuring the DPB allocation.
21060
21061 2014-06-27 20:44:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21062
21063         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21064           decoder: h264: fix the DPB compaction process.
21065           Fix the compaction process when the DPB is cleared for a specific
21066           view, i.e. fix the process of filling in the holes resulting from
21067           removing frame buffers matching the current picture.
21068
21069 2014-06-27 16:38:03 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21070
21071         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21072           encoder: h264: generate new SPS only when codec config changed.
21073           It is not necessary to periodically send SPS or subset SPS headers.
21074           This is up to the upper layer (e.g. transport layer) to decide on
21075           if/how to periodically submit those. For now, only generate new SPS
21076           or subset SPS headers when the codec config changed.
21077           Note: the upper layer could readily determine the config headers
21078           (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
21079           https://bugzilla.gnome.org/show_bug.cgi?id=732083
21080           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21081
21082 2014-06-27 18:43:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21083
21084         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21085           encoder: h264: track encoder config changes.
21086           Track and report when encoder configuration changed. For now, this covers
21087           resolution, profile/level and bitrate changes.
21088
21089 2014-06-27 13:15:13 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21090
21091         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21092           encoder: h264: add pixel-aspect-ratio to VUI parameters.
21093           Report sample aspect ratio (SAR) as present, and make it match what
21094           we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
21095           VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
21096
21097 2014-06-27 00:49:34 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21098
21099         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21100           encoder: h264: fix number of anchor and non-anchor reference pictures.
21101           Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
21102           and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
21103           supported.
21104
21105 2014-06-27 10:37:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21106
21107         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21108           encoder: h264: fix timing_info_present_flag value in subset SPS.
21109           When the seq_parameter_set_data() syntax structure is present in a subset
21110           sequence parameter set and vui_parameters_present_flag is equal to 1, then
21111           timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
21112
21113 2014-06-26 14:39:52 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21114
21115         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21116           encoder: h264: add cpbBrNalFactor values for MVC profiles.
21117
21118 2014-06-26 14:51:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21119
21120         * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21121           h264parse: fix detection of access unit boundaries for MVC.
21122           The gst_h264_parse_collect_nal() function is a misnomer. In reality,
21123           this function is used to determine access unit boundaries, i.e. that
21124           is the key function for alignment=au output format generation.
21125
21126 2014-06-26 14:49:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21127
21128         * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
21129         * patches/videoparsers/series.frag:
21130           h264parse: fix collection of access units to preserve config headers.
21131           Always use a GstAdapter when collecting access units (alignment="au")
21132           in either byte-stream or avcC format. This is required to properly
21133           preserve config headers like SPS and PPS when invalid or broken NAL
21134           units are subsequently parsed.
21135           More precisely, this fixes scenario like:
21136           <SPS> <PPS> <invalid-NAL> <slice>
21137           where we used to reset the output frame buffer when an invalid or
21138           broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
21139           preventing the next slice unit to be decoded, should this also
21140           represent any valid data.
21141           https://bugzilla.gnome.org/show_bug.cgi?id=732203
21142
21143 2014-06-26 14:48:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21144
21145         * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21146         * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
21147         * patches/videoparsers/series.frag:
21148           h264parse: improve conditions for skipping NAL units.
21149           Carefully track cases when skipping broken or invalid NAL units is
21150           necessary. In particular, always allow NAL units to be processed
21151           and let that gst_h264_parse_process_nal() function decide on whether
21152           the current NAL needs to be dropped or not.
21153           This fixes parsing of streams with SEI NAL buffering_period() message
21154           inserted between SPS and PPS, or SPS-Ext NAL following a traditional
21155           SPS NAL unit, among other cases too.
21156           Practical examples from the H.264 AVC conformance suite include
21157           alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
21158           when parsing in stream-format=byte-stream,alignment=au mode.
21159           https://bugzilla.gnome.org/show_bug.cgi?id=732203
21160
21161 2014-06-26 14:45:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21162
21163         * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21164         * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
21165         * patches/videoparsers/series.frag:
21166           h264parse: introduce new state tracking variables.
21167           Improve parser state tracking by introducing new flags reflecting
21168           it: "got-sps", "got-pps" and "got-slice". This is an addition for
21169           robustness purposes.
21170           Older have_sps and have_pps variables are kept because they have
21171           a different meaning. i.e. they are used for deciding on when to
21172           submit updated caps or not, and rather mean "have new SPS/PPS to
21173           be submitted?"
21174
21175 2014-06-26 14:39:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21176
21177         * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
21178         * patches/videoparsers/series.frag:
21179           h264parse: default to byte-stream/nalu format (Annex B).
21180           Always default to stream-format=byte-stream,alignment=nalu if avcC
21181           format was not detected. This is the natural stream format specified
21182           in the standard (Annex.B): a series of NAL units prefixed with the
21183           usual start code.
21184           https://bugzilla.gnome.org/show_bug.cgi?id=732167
21185
21186 2014-06-26 14:37:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21187
21188         * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
21189         * patches/videoparsers/series.frag:
21190           h264parse: fix and optimize NAL collection function.
21191           Use gst_h264_parser_identify_nalu_unchecked() to identify the next
21192           NAL unit. We don't want to parse the full NAL unit, but only the
21193           header bytes and possibly the first RBSP byte for identifying the
21194           first_mb_in_slice syntax element.
21195           Also fix check for failure when returning from that function. The
21196           only success condition for that is GST_H264_PARSER_OK, so use it.
21197           https://bugzilla.gnome.org/show_bug.cgi?id=732154
21198
21199 2014-06-26 11:39:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21200
21201         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21202           encoder: h264: fix NAL unit types in packed headers.
21203           Submit Prefix NAL headers (nal_unit_type = 14) before every packed
21204           slice header (nal_unit_type = 1 or 5) only for the base view. In non
21205           base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
21206           is required, with an appropriate nal_unit_header_mvc_extension() in
21207           the NAL header bytes.
21208           https://bugzilla.gnome.org/show_bug.cgi?id=732083
21209
21210 2014-06-25 22:05:52 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21211
21212         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21213           encoder: h264: add missing field in packed Subset SPS header.
21214           Write the missing num_level_values_signalled_minus1 syntax element
21215           into the packed header for subset sequence parameter set.
21216           https://bugzilla.gnome.org/show_bug.cgi?id=732083
21217
21218 2014-06-25 22:26:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21219
21220         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21221           decoder: h264: fix marking of non-reference picture into DPB.
21222           Fix search for a picture in the DPB that has a lower POC value than
21223           the current picture. The dpb_find_lowest_poc() function will return
21224           a picture with the lowest POC in DPB and that is marked as "needed
21225           for output", but an additional check against the actual POC value
21226           of the current picture is needed.
21227           This is a regression from 1c46990.
21228           https://bugzilla.gnome.org/show_bug.cgi?id=732130
21229
21230 2014-06-19 17:08:47 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21231
21232         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21233           decoder: h264: fix DPB clear when no decoding actually started.
21234           Fix dpb_clear() to clear previous frame buffers only if they actually
21235           exist to begin with. If the decoder bailed out early, e.g. when it
21236           does not support a specific profile, that array of previous frames
21237           might not be allocated beforehand.
21238
21239 2014-02-06 08:30:10 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21240
21241         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21242         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
21243         * gst/vaapi/gstvaapidecode.c:
21244           decoder: h264: add support for NALU "alignment" optimization.
21245           We can avoid scanning for start codes again if the bitstream is fed
21246           in NALU chunks. Currently, we always scan for start codes, and keep
21247           track of remaining bits in a GstAdapter, even if, in practice, we
21248           are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
21249           "nal" alignment.
21250           https://bugzilla.gnome.org/show_bug.cgi?id=723284
21251           [use gst_adapter_available_fast() to determine the top buffer size]
21252           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21253
21254 2014-06-18 18:53:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21255
21256         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21257           decoder: h264: fix caps to report interlace-mode accordingly.
21258           The `vaapipostproc' element could never determine if the H.264 stream
21259           was interlaced, and thus always assumed it to be progressive. Fix the
21260           H.264 decoder to report interlace-mode accordingly, thus allowing the
21261           vaapipostproc element to automatically enable deinterlacing.
21262
21263 2014-06-19 13:35:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21264
21265         * gst/vaapi/gstvaapipostproc.c:
21266           vaapipostproc: don't crash with dynamic framerate (0/1).
21267           Avoid reaching an assert if dynamic framerates (0/1) are used. One
21268           way to solve this problem is to just stick field_duration to zero.
21269           However, this means that, in presence of interlaced streams, the
21270           very first field will never be displayed if precise presentation
21271           timestamps are honoured.
21272           https://bugzilla.gnome.org/show_bug.cgi?id=729604
21273
21274 2014-02-07 12:27:50 +0000  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21275
21276         * gst/vaapi/gstvaapipostproc.c:
21277           vaapipostproc: create filter surface pool if it does not exist yet.
21278           ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
21279           recreating filter_pool. Unfortunately, this also meant it didn't create
21280           it if it did not exist.
21281           Fix it to always create the buffer pool if it does not exist.
21282           https://bugzilla.gnome.org/show_bug.cgi?id=723834
21283           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21284
21285 2013-12-12 10:01:13 +0800  Zhao, Halley <halley.zhao@intel.com>
21286
21287         * gst/vaapi/gstvaapipostproc.c:
21288           vaapipostproc: reset deinterlacer state when there is a discontinuity.
21289           Reset deinterlacer state, i.e. past reference frames used for advanced
21290           deinterlacing, when there is some discontinuity detected in the course
21291           of processing source buffers.
21292           This fixes support for advanced deinterlacing when a seek occurred.
21293           https://bugzilla.gnome.org/show_bug.cgi?id=720375
21294           [fixed type of pts_diff variable, fetch previous buffer PTS from the
21295           history buffer, reduce heuristic for detecting discontinuity]
21296           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21297
21298 2014-06-18 16:16:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21299
21300         * gst/vaapi/gstvaapipostproc.c:
21301           vaapipostproc: add support for crop regions in VPP mode.
21302           Apply video cropping regions stored in GstVideoCropMeta, or in older
21303           GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
21304           the crop meta are already propagated to the output buffers.
21305           https://bugzilla.gnome.org/show_bug.cgi?id=720730
21306
21307 2014-03-14 17:49:40 +0000  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21308
21309         * gst/vaapi/gstvaapipostproc.c:
21310           vaapipostproc: make deinterlace-mode behave as expected.
21311           deinterlace-mode didn't behave in the way you'd expect if you have
21312           past experience of the deinterlace element. There were two bugs:
21313           1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
21314           2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
21315           Fix these up, and add assertions and error messages to detect cases that
21316           aren't handled.
21317           https://bugzilla.gnome.org/show_bug.cgi?id=726361
21318           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21319           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21320
21321 2014-01-15 16:36:29 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
21322
21323         * gst/vaapi/gstvaapidecode.c:
21324           vaapidecode: do not discard video info props when the format changed.
21325           gst_video_info_set_format() does not preserve video info properties. In
21326           order to keep important information in the caps such as interlace mode,
21327           framerate, pixel aspect ratio, ... we need to manually copy back those
21328           properties after setting the new video format.
21329           https://bugzilla.gnome.org/show_bug.cgi?id=722276
21330
21331 2014-02-23 01:43:39 +1100  Matthew Waters <ystreet00@gmail.com>
21332
21333         * gst/vaapi/gstvaapidecode.c:
21334           vaapidecode: plug a memory leak.
21335           It can happen that there is a pool provided that does not advertise
21336           the vappivideometa. We should unref that pool before using our own.
21337           Discovered with vaapidecode ! {glimagesink,cluttersink}
21338           https://bugzilla.gnome.org/show_bug.cgi?id=724957
21339           [fixed compilation by adding the missing semi-colon]
21340           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21341
21342 2014-06-18 13:47:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21343
21344         * gst/vaapi/gstvaapidecode.c:
21345           vaapidecode: parse source data until a frame is obtained.
21346           Parse any pending data until a complete frame is obtained. This is a
21347           memory optimization to avoid expansion of video packets stuffed into
21348           the GstAdapter, and a fix to EOS condition to detect there is actually
21349           pending data that needs to be decoded, and subsequently output.
21350           https://bugzilla.gnome.org/show_bug.cgi?id=731831
21351
21352 2014-06-05 15:32:29 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21353
21354         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21355           encoder: h264: fix multiple slices support in packed headers mode.
21356           Handle packedi slice headers and packed raw data on a per-slice basis,
21357           which is necessary for multi slice encoding.
21358
21359 2014-06-05 15:30:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21360
21361         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21362         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
21363           encoder: add infrastructure for per-slice handling of packed headers.
21364           The packed slice header and packed raw data need to be paired with
21365           the submission of VAEncSliceHeaderParameterBuffer. So handle them
21366           on a per-slice basis insted of a per-picture basis.
21367           [removed useless initializer]
21368           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21369
21370 2014-03-07 17:40:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21371
21372         * gst/vaapi/gstvaapisink.c:
21373           vaapisink: fix initialization with "drm" display type.
21374           Force early initializatin of the GstVaapiDisplay so that to make sure
21375           that the sink element display object is presented first to upstream
21376           elements, as it will be correctly featuring the requested display type
21377           by the user.
21378           Otherwise, we might end up in situations where a VA/X11 display is
21379           initialized in vaapidecode, then we try VA/DRM display in vaapisink
21380           (as requested by the "display" property), but this would cause a failure
21381           because we cannot acquire a DRM display that was previously acquired
21382           through another backend (e.g. VA/X11).
21383
21384 2014-03-07 17:38:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21385
21386         * gst/vaapi/gstvaapipluginbase.c:
21387           plugins: fix initialization with foreign context.
21388           When a new display is settled through GstElement::set_context() (>= 1.2),
21389           or GstVideoContext::set_context() (<= 1.0), then we shall also update the
21390           associated display type.
21391
21392 2014-04-28 17:44:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21393
21394         * Makefile.am:
21395         * configure.ac:
21396         * ext/Makefile.am:
21397         * gst/vaapi/Makefile.am:
21398         * gst/vaapi/gstvaapiparse.c:
21399         * gst/vaapi/gstvaapiparse.h:
21400         * patches/Makefile.am:
21401         * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
21402         * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
21403         * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21404         * patches/videoparsers/Makefile.am:
21405         * patches/videoparsers/series.frag:
21406           plugins: add built-in video parsers as "vaapiparse" element.
21407           The built-in video parsers elements are built into a single DSO named
21408           libgstvaapi_parse.so. The various video parsers could be accessed as
21409           vaapiparse_CODEC.
21410           For now, this only includes a modified version of h264parse so that to
21411           support H.264 MVC encoded streams.
21412
21413 2014-06-13 11:36:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21414
21415         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21416           decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
21417           New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
21418           from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
21419
21420 2014-06-13 11:34:07 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21421
21422         * ext/codecparsers:
21423           codecparsers: update to gst-vaapi-branch commit d6325ac.
21424           7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
21425           d2f965a h264parse: set field_pic_flag when parsing a slice header
21426           24c15b8 Import h264parse
21427           a9283e5 bytereader: Use concistant derefence method
21428           a8252c6 bytereader: Use pointer instead of index access
21429           b1bebfc Import GstBitReader and GstByteReader
21430           2f58788 h264: recognize SVC NAL units
21431           4335da5 h264: fix SPS copy code for MVC
21432           cf9b6dc h264: fix quantization matrix conversion routine names
21433           b11ce2a h264: add gst_h264_video_calculate_framerate()
21434           126dc6f add C++ guards for MPEG-4 and VP8 parsers
21435
21436 2014-06-10 18:30:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21437
21438         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21439           decoder: h264: factor out DPB pruning for MVC.
21440           Factor out the removal process of unused inter-view only reference
21441           pictures from the DPB, prior to the possible insertion of the current
21442           picture.
21443           Ideally, the compiler could still opt for generating two loops. But
21444           at least, the code is now clearer for maintenance.
21445
21446 2014-06-10 17:42:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21447
21448         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21449           decoder: h264: clean-ups.
21450           Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
21451           the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
21452
21453 2014-06-10 16:07:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21454
21455         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21456           decoder: h264: improve pruning of unused MVC inter-view frames.
21457           Improve process for the removal of pictures from DPB before possible
21458           insertion of the current picture (C.4.4) for H.264 MVC inter-view only
21459           reference components. In particular, handle cases where picture to be
21460           inserted is not the last one of the access unit and if it was already
21461           output and is no longer marked as used for reference, including for
21462           decoding next view components within the same access unit.
21463
21464 2014-06-03 17:36:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21465
21466         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21467           decoder: h264: improve DPB bumping process for MVC.
21468           While invoking the DPB bumping process in presence of many views,
21469           it could be necessary to output previous pictures that are ready,
21470           in a whole. i.e. emitting all view components from the very first
21471           view order index zero to the very last one in its original access
21472           unit; and not starting from the view order index of the picture
21473           that caused the DPB bumping process to be invoked.
21474           As a reminder, the maximum number of frames in DPB for MultiView
21475           High profile with more than 2 views is not necessarily a multiple
21476           of the number of views.
21477           This fixes decoding of MVCNV-4.264.
21478
21479 2014-06-06 17:56:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21480
21481         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21482           decoder: h264: fix inter-view references array growth.
21483           Let the utility layer handle dynamic growth of the inter-view pictures
21484           array. By definition, setting a new size to the array will effectively
21485           grow the array, but would also fill in the newly created elements with
21486           empty entries (NULL), thus also increasing the reported length, which
21487           is not correct.
21488
21489 2014-06-03 17:36:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21490
21491         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21492           decoder: h264: reduce ReferenceFrames entries to the essential set.
21493           When decoding Multiview High profile streams with a large number of
21494           views, it is not possible to make the VAPictureParameterBufferH264.
21495           ReferenceFrames[] array hold the complete DPB, with all possibly
21496           active pictures to be used for inter-view prediction in the current
21497           access unit.
21498           So reduce the scope of the ReferenceFrames[] array to only include
21499           the set of reference pictures that are going to be used for decoding
21500           the current picture. Basically, this is a union of all RefPicListX[]
21501           array, for all slices constituting the decoded picture.
21502
21503 2014-06-04 19:10:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21504
21505         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21506           decoder: h264: fix MVC inter-view prediction process.
21507           The inter-view reference components and inter-view only reference
21508           components that are included in the reference picture lists shall
21509           be considered as not being marked as "used for short-term reference"
21510           or "used for long-term reference". This means that reference flags
21511           should all be removed from VAPictureH264.flags.
21512           This fixes decoding of MVCNV-2.264.
21513
21514 2014-06-04 19:03:18 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21515
21516         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21517           decoder: h264: fix detection of profile changes for MVC.
21518           If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
21519           be careful to detect profiles changes and not reset the underlying
21520           VA context erroneously. In MVC situations, we could indeed get a
21521           profile_idc change for every SPS that gets activated, alternatively
21522           (base-view -> non-base view -> base-view, etc.).
21523           An improved fix would be to characterize the exact profile to use
21524           once and for all when SPS NAL units are parsed. This would also
21525           allow for fallbacks to a base-view decoding only mode.
21526
21527 2014-06-03 14:30:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21528
21529         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21530           encoder: h264: drop extraneous definitions.
21531           Re-use definitions from the codecparser headers instead of duplicating
21532           them here again. That covers NALU definitions and slice types.
21533
21534 2014-04-01 11:26:04 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21535
21536         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21537           encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
21538           https://bugzilla.gnome.org/show_bug.cgi?id=727418
21539
21540 2014-04-01 14:23:56 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21541
21542         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21543           encoder: h264: don't allow CABAC with Extended profile.
21544           The H.264 specification does not support CABAC entropy coding for the
21545           Extended profile.
21546           https://bugzilla.gnome.org/show_bug.cgi?id=727418
21547
21548 2014-05-07 00:12:39 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21549
21550         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21551           encoder: h264: use packed headers mode for MVC encoding.
21552           Exclusively use VA drivers that support raw packed headers for encoding.
21553           i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
21554           provides for better compatibility accross the various VA drivers and HW
21555           generations since no particular API is needed beyond what readily exists.
21556
21557 2014-05-07 00:09:45 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21558
21559         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21560           encoder: h264: add support for packed slice headers.
21561           https://bugzilla.gnome.org/show_bug.cgi?id=722905
21562
21563 2014-05-07 00:09:19 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21564
21565         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21566           encoder: h264: store subset sps to generate the codec-data
21567           Store the SubsetSPS nal unit which we need for MVC specific
21568           codec_data generation.
21569
21570 2014-05-07 00:08:33 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21571
21572         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21573           encoder: h264: fix MVC pipeline hang while encoding with B-frames.
21574           Since we are encoding each view independently from each other, we
21575           need a higher number of pre-allocated surfaces to be used as the
21576           reconstructed frames. For Stereo High profile encoding, this means
21577           to effectively double the number of frames to be stored in the DPB.
21578
21579 2014-02-17 15:51:43 +0800  Li Xiaowei <xiaowei.a.li@intel.com>
21580
21581         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21582         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21583         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21584         * gst/vaapi/gstvaapiencode_h264.c:
21585           encoder: h264: add initial support for H.264 Stereo High profile.
21586           Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
21587           for non-base-view streams encoding, and the usual SPS, PPS and Slice
21588           NALs for base-view encoding.
21589           The H.264 Stereo High profile encoding mode will be turned on when the
21590           "num-views" parameter is set to 2. The source (raw) YUV frames will be
21591           considered as Left/Right view, alternatively.
21592           Each of the two views has its own frames reordering pool and reference
21593           frames list management system. Inter-view references are not supported
21594           yet, so the views are encoded independently from each other.
21595           Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21596           [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
21597           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21598
21599 2014-02-17 11:10:26 +0800  Li Xiaowei <xiaowei.a.li@intel.com>
21600
21601         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21602           encoder: h264: wrap pools for refs and frames reordering.
21603           Create structures to maintain the reference frames list (RefPool) and
21604           frames reordering (ReorderPool) logic.
21605           This is a prerequisite for H.264 MVC support.
21606           Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21607
21608 2014-02-14 15:33:15 +0800  Li Xiaowei <xiaowei.a.li@intel.com>
21609
21610         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21611           encoder: h264: add provisional support for subset SPS headers.
21612           Add provisions to write subset SPS headers to the bitstream in view
21613           to supporting the H.264 MVC specification.
21614           This assumes the libva "staging" branch is in use.
21615           Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21616
21617 2013-12-18 13:47:32 +0800  Li Xiaowei <xiaowei.a.li@intel.com>
21618
21619         * gst-libs/gst/vaapi/gstvaapiprofile.c:
21620         * gst-libs/gst/vaapi/gstvaapiutils.c:
21621           utils: add H.264 MVC profiles.
21622           Add "MultiView High" and "Stereo High" definitions.
21623           Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21624           [require VA-API >= 0.35.2 for MVC profiles]
21625           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21626
21627 2014-06-02 16:25:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21628
21629         * gst-libs/gst/vaapi/gstvaapiprofile.c:
21630         * gst-libs/gst/vaapi/gstvaapiutils.c:
21631           utils: only enable VP8 profiles for newer VA-API versions.
21632           VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
21633           involving VP8 codec on earlier versions of the API.
21634
21635 2014-05-22 10:04:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21636
21637         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21638           decoder: h264: compute view ids only once per slice.
21639           Optimize lookups of view ids / view order indices by caching the result
21640           of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
21641           terribly simplifies is_new_access_unit() and find_first_field() functions.
21642
21643 2014-05-21 17:57:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21644
21645         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21646           decoder: h264: add support for MVC interlaced streams.
21647           Fix support for MVC Stereo High profile streams with interlaced frames.
21648           Also improve the detection logic of the first field.
21649
21650 2014-05-20 18:08:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21651
21652         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21653           decoder: h264: add MVC profiles compatibility logic.
21654           Add safe fallbacks for MVC profiles:
21655           - all MultiView High profile streams with 2 views at most can be decoded
21656           with a Stereo High profile compliant decoder ;
21657           - all Stereo High profile streams with only progressive views can be
21658           decoded with a MultiView High profile compliant decoder ;
21659           - all drivers that support slice-level decoding could normally support
21660           MVC profiles when the DPB holds at most 16 frames.
21661
21662 2014-05-02 14:58:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21663
21664         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21665         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21666         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21667           decoder: h264: add initial support for MVC.
21668           https://bugzilla.gnome.org/show_bug.cgi?id=721772
21669
21670 2014-05-01 19:16:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21671
21672         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21673           decoder: h264: dynamically allocate the DPB.
21674           Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
21675           for supporting the MVC allocation requirements.
21676
21677 2014-05-01 19:33:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21678
21679         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21680           decoder: h264: fix detection of access unit boundaries.
21681           In order to have a stricter conforming implementation, we need to carefully
21682           detect access unit boundaries. Additional operations could be necessary to
21683           perform at those boundaries.
21684
21685 2013-03-13 11:44:38 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21686
21687         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21688           decoder: h264: detect the first VCL NAL unit of a picture for MVC.
21689           Detect the first VCL NAL unit of a picture for MVC, based on the
21690           view_id as per H.7.4.1.2.4. Note that we only need to detect new
21691           view components.
21692           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21693
21694 2013-10-31 19:32:55 +0800  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21695
21696         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21697           decoder: h264: properly handle Prefix NAL units.
21698           Always cache the previous NAL unit so that we could check whether
21699           there is a Prefix NAL unit immediately preceding the current slice
21700           or IDR NAL unit. In that case, the NAL unit metadata is copied into
21701           the current NAL unit. Otherwise, some default values are inferred,
21702           tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
21703           [infer default values for slice if previous NAL was not a Prefix]
21704           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21705
21706 2013-02-28 15:59:55 +0800  Xiaowei Li <xiaowei.a.li@intel.com>
21707
21708         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21709           decoder: h264: add support for MVC base views.
21710           Allow decoding for base views of MVC encoded streams. For now, just skip
21711           the slice extension and prefix NAL units, and skip non-base view frames.
21712           Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
21713           [fixed memory leak, improved check for MVC NAL units]
21714           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21715
21716 2014-05-04 14:49:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21717
21718         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21719           decoder: h264: simplify storage of decoded picture into DPB.
21720           Factor out process by which the decoded picture with the lowest POC
21721           is found, and possibly output. Likewise, the storage and marking of
21722           a reference decoded, or non-reference decoded picture, into the DPB
21723           could also be simplified as they mostly share the same operations.
21724
21725 2014-05-02 22:40:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21726
21727         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21728           decoder: h264: minor clean-ups.
21729           Make init_picture_ref_lists() more consistent with other functions
21730           related to the reference marking process by supplying the current
21731           picture as argument.
21732
21733 2014-05-20 11:36:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21734
21735         * gst-libs/gst/vaapi/gstvaapidisplay.c:
21736         * gst-libs/gst/vaapi/gstvaapidisplay.h:
21737         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21738           display: add utility function to query VA driver name.
21739           Add gst_vaapi_display_get_vendor_string() helper function to query
21740           the underlying VA driver name. The display object owns the resulting
21741           string, so it shall not be deallocated.
21742           That function is thread-safe. It could be used for debugging purposes,
21743           for instance.
21744
21745 2014-03-07 14:50:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21746
21747         * gst-libs/gst/vaapi/gstvaapidisplay.c:
21748         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
21749         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21750         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
21751         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
21752         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
21753         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
21754           display: make cache maintenance really MT-safe.
21755           Make sure to initialize one GstVaapiDisplay at a time, even in threaded
21756           environments. This makes sure the display cache is also consistent
21757           during the whole display creation process. In the former implementation,
21758           there were risks that display cache got updated in another thread.
21759
21760 2014-05-03 15:56:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21761
21762         * gst-libs/gst/vaapi/gstvaapicontext.c:
21763           context: allow dynamic growth of VA surfaces pool.
21764           Add support for dynamic growth of the VA surfaces pool. For decoding,
21765           this implies the recreation of the underlying VA context, as per the
21766           requirement from VA-API. Besides, only increases are supported, not
21767           shrinks.
21768
21769 2014-05-03 15:47:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21770
21771         * gst-libs/gst/vaapi/gstvaapicontext.c:
21772           context: reset VA context if VA surfaces set changed.
21773           It is a requirement from VA-API specification that the VA context got
21774           from vaCreateContext(), for decoding purposes, binds the supplied set
21775           of VA surfaces. This means that if the set of VA surfaces is to be
21776           changed for the current decode session, then the VA context needs to
21777           be recreated with the new set of VA surfaces.
21778
21779 2014-05-12 19:23:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21780
21781         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21782           decoder: h264: fix assignment of LongTermFrameIdx.
21783           Complement fix committed as e95a42e.
21784           The H.264 AVC standard has to say: if the field is part of a reference
21785           frame or a complementary reference field pair, and the other field of
21786           the same reference frame or complementary reference field pair is also
21787           marked as "used for long-term reference", the reference frame or
21788           complementary reference field pair is also marked as "used for long-term
21789           reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
21790           This fixes decoding of MR9_BT_B in strict mode.
21791           https://bugs.freedesktop.org/show_bug.cgi?id=64624
21792           https://bugzilla.gnome.org/show_bug.cgi?id=724518
21793
21794 2014-05-10 06:23:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21795
21796         * gst-libs/gst/vaapi/gstvaapicontext.c:
21797         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21798         * gst-libs/gst/vaapi/gstvaapiutils.c:
21799         * gst-libs/gst/vaapi/gstvaapiutils.h:
21800           decoder: h264: properly support grayscale formats.
21801           Request the correct chroma format for decoding grayscale streams.
21802           i.e. make lookups of the VA chroma format more generic, thus possibly
21803           supporting more formats in the future.
21804           This means that, if a VA driver doesn't support grayscale formats,
21805           it is now going to fail. We cannot safely assume that maybe grayscale
21806           was implemented on top of some YUV 4:2:0 with the chroma components
21807           all set to 0x80.
21808
21809 2014-02-06 11:14:09 +0000  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21810
21811         * gst-libs/gst/vaapi/gstvaapifilter.c:
21812         * gst-libs/gst/vaapi/gstvaapifilter.h:
21813         * tests/test-filter.c:
21814           build: fix source file modes.
21815           A few source files are marked executable in error - fix them
21816           https://bugzilla.gnome.org/show_bug.cgi?id=723748
21817           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21818
21819 2014-04-29 13:22:47 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21820
21821         * configure.ac:
21822         * gst-libs/gst/vaapi/Makefile.am:
21823         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21824         * gst/vaapi/gstvaapidecode.c:
21825           build: fix conditional compilation of VP8 decoder.
21826           https://bugzilla.gnome.org/show_bug.cgi?id=729170
21827           [added check for VASliceParameterBufferBase fields]
21828           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21829
21830 2014-04-27 08:55:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21831
21832         * gst-libs/gst/codecparsers/Makefile.am:
21833           build: fix make dist for codecparsers.
21834
21835 2014-04-28 09:42:13 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21836
21837         * ext/codecparsers:
21838           codecparsers: update to gst-vaapi-branch commit eaa3f7e.
21839           h264: fix parsing of slice groups for map type = 2
21840
21841 2014-04-26 22:35:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21842
21843         * ext/codecparsers:
21844           codecparsers: update to gst-vaapi branch commit f44edfc.
21845           h264: fix derivation of default scaling lists
21846
21847 2013-05-24 19:00:54 +0800  Cong Zhong <congx.zhong@intel.com>
21848
21849         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21850           decoder: h264: fix long-term reference picture marking process.
21851           Fix reference picture marking process with memory_management_control_op
21852           set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
21853           picture, or the current picture.
21854           This fixes decoding of FRExt_MMCO4_Sony_B.
21855           https://bugs.freedesktop.org/show_bug.cgi?id=64624
21856           https://bugzilla.gnome.org/show_bug.cgi?id=724518
21857           [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
21858           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21859
21860 2014-04-26 20:21:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21861
21862         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21863           decoder: h264: fix initialization of RefPicLists for multiple slices.
21864           The initialization of reference picture lists (8.2.4.2) applies to all
21865           slices. So, the RefPicList0/1 lists need to be constructed prior to
21866           each slice submission to the HW decoder.
21867           This fixes decoding of video sequences where frames are encoded with
21868           multiple slices of different types, e.g. 4 slices in this order I, P,
21869           I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
21870           https://bugzilla.gnome.org/show_bug.cgi?id=724518
21871
21872 2013-06-04 15:01:46 +0800  Zhong Cong <congx.zhong@intel.com>
21873
21874         * ext/codecparsers:
21875         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21876           decoder: h264: skip SPS extension and auxiliary slice NALs.
21877           When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
21878           are present in a video, decoders shall perform the (optional) decoding
21879           process specified for these NAL units or shall ignore them (7.4.1).
21880           Implement option 2 (skip) for now, as alpha composition is not
21881           supported yet during the decoding process.
21882           This fixes decoding of the primary coded video in alphaconformanceG.
21883           https://bugzilla.gnome.org/show_bug.cgi?id=703928
21884           https://bugzilla.gnome.org/show_bug.cgi?id=728869
21885           https://bugzilla.gnome.org/show_bug.cgi?id=724518
21886           [skip NAL units earlier, i.e. at parsing time]
21887           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21888
21889 2013-03-07 11:32:20 +0800  Li Xiaowei <xiaowei.a.li@intel.com>
21890
21891         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21892           decoder: h264: fix slice data bit offset with MVC NAL units.
21893           When MVC slice NAL units (coded slice extension and prefix NAL) are
21894           present, the number of NAL header bytes is 3, not 1 as usual.
21895           Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21896           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21897
21898 2014-04-25 19:11:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21899
21900         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21901           decoder: h264: fix activation of picture and sequence parameters.
21902           At the time the first VCL NAL unit of a primary coded picture is found,
21903           and if that NAL unit was parsed to be an SPS or PPS, then the entries
21904           in the parser may have been overriden. This means that, when the picture
21905           is to be decoded, slice_hdr->pps could point to an invalid (the next)
21906           PPS entry.
21907           So, one way to solve this problem is to not use the parser PPS and
21908           SPS info but rather maintain our own activation chain in the decoder.
21909           https://bugzilla.gnome.org/show_bug.cgi?id=724519
21910           https://bugzilla.gnome.org/show_bug.cgi?id=724518
21911
21912 2014-04-25 16:24:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21913
21914         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21915           decoder: h264: retain SEI messages until the end of frame.
21916           Retain the SEI messages that were parsed from the access unit until we
21917           have completely decoded the current frame. This is done so that we can
21918           peek at that data whenever necessary during decoding. e.g. for exposing
21919           3D stereoscopic information at a later stage.
21920
21921 2014-04-25 14:23:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21922
21923         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21924           decoder: h264: add support for grayscale encoded clips.
21925           Fix support for grayscale encoded video clips, and possibly others if
21926           the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
21927           the decision that a surface with the desired chroma format is not
21928           supported to the actual VA driver implementation.
21929           https://bugzilla.gnome.org/show_bug.cgi?id=728144
21930
21931 2014-04-25 14:16:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21932
21933         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21934         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21935         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21936         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21937         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21938         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21939           decoder: default to YUV 4:2:0 VA surfaces.
21940           Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
21941           make sure all codecs use YUV 4:2:0 output format for now, by default.
21942
21943 2014-04-25 13:57:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21944
21945         * gst-libs/gst/vaapi/gstvaapidecoder.c:
21946         * gst-libs/gst/vaapi/gstvaapidecoder.h:
21947         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21948           decoder: re-indent GstVaapiDecoder base object.
21949
21950 2014-04-25 13:47:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21951
21952         * gst-libs/gst/vaapi/gstvaapiencoder.c:
21953           encoder: derive chroma type from video format.
21954           Cope with previous VA context change to derive the correct surface chroma
21955           type from the input video format.
21956
21957 2014-04-25 13:45:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21958
21959         * gst-libs/gst/vaapi/gstvaapicontext.c:
21960         * gst-libs/gst/vaapi/gstvaapicontext.h:
21961           context: add support for non-YUV 4:2:0 formats.
21962           Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
21963           for the upper layer to specify the desired chroma type. If the chroma
21964           type field is not set (or yields zero), then YUV 4:2:0 format is used
21965           by default.
21966
21967 2014-04-22 19:53:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21968
21969         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21970           vp8: fix per-segment deblocking filter level in relative mode.
21971           Fix possible bug when a per-segment deblocking filter level value
21972           needs to be set in non-absolute mode, i.e. when the loop filter update
21973           value is negative in delta mode.
21974           Also clamp the resulting filter level value to 0..63 range.
21975
21976 2014-04-22 17:25:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21977
21978         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21979           vp8: fix check for disabling the loop filter (again).
21980           Improve condition to disable the loop filter. The previous heuristic
21981           used to check all filter levels, for all segments. It turns out that
21982           only the base filter_level value defined in the frame header needs
21983           to be checked.
21984           This fixes 00-comprehensive-013.
21985
21986 2014-04-21 18:02:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21987
21988         * gst-libs/gst/codecparsers/Makefile.am:
21989         * gst/vaapi/Makefile.am:
21990           build: fix make dist with certain conditionals not met.
21991           Fix generation of source tarballs when certain conditionals are not
21992           met. e.g. always include all buildable codecparsers sources in the
21993           distribution tarball, fix plug-in element sources set to include X11
21994           and encoder bits.
21995
21996 2014-04-21 17:34:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21997
21998         * ext/Makefile.am:
21999           build: add missing files for GStreamer 0.10.
22000           Add missing GstVideoEncoder implementation files to fix build with ancient
22001           GStreamer 0.10 stack.
22002           https://bugzilla.gnome.org/show_bug.cgi?id=723964
22003
22004 2014-04-19 10:17:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22005
22006         * ext/Makefile.am:
22007           build: add missing files for VP8 bitstream parser.
22008           Fix make dist for building the VP8 bitstream parser.
22009
22010 2014-04-21 17:49:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22011
22012         * configure.ac:
22013         * ext/libvpx/Makefile.am:
22014         * gst-libs/gst/codecparsers/Makefile.am:
22015           vp8: allow compilation without the built-in libvpx.
22016           The built-in libvpx serves multiple purposes, among which the most
22017           important ones could be: track the most up-to-date, and optimized,
22018           range decoder; allow for future hybrid implementations (non-VLD);
22019           and have a completely independent range decoder implementation.
22020
22021 2014-04-21 17:28:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22022
22023         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22024           vp8: propagate PTS from demux frame.
22025           gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
22026           or parser would already have determined the PTS from a previous stage.
22027
22028 2014-04-19 07:49:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22029
22030         * Makefile.am:
22031         * debian.upstream/libgstvaapi.install.in:
22032         * ext/libvpx/Makefile.am:
22033         * ext/libvpx/sources.frag:
22034         * gst-libs/gst/codecparsers/Makefile.am:
22035           vp8: fix compilation with built-in libvpx.
22036           Apply correct patch from fd.o #722760 to fix several issues: update the
22037           license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
22038           make dist.
22039
22040 2014-02-13 21:17:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22041
22042         * .gitmodules:
22043         * autogen.sh:
22044         * configure.ac:
22045         * ext/Makefile.am:
22046         * ext/libvpx/Makefile.am:
22047         * ext/libvpx/gstlibvpx.c:
22048         * ext/libvpx/gstlibvpx.h:
22049         * ext/libvpx/libgstcodecparsers_vpx.vers:
22050         * ext/libvpx/sources.frag:
22051         * ext/libvpx/upstream:
22052         * gst-libs/gst/codecparsers/Makefile.am:
22053         * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
22054           vp8: use range decoder from libvpx.
22055           Add libvpx submodule that tracks the upstream version 1.3.0. This is
22056           needed to build a libgstcodecparsers_vpx.so library with all symbols
22057           placed into the GSTREAMER namespace.
22058
22059 2014-04-04 19:17:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22060
22061         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22062           vp8: fix check for disabling the loop filter.
22063
22064 2013-12-27 07:18:24 +0800  Zhao, Halley <halley.zhao@intel.com>
22065
22066         * configure.ac:
22067         * ext/Makefile.am:
22068         * gst-libs/gst/codecparsers/Makefile.am:
22069         * gst-libs/gst/vaapi/Makefile.am:
22070         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22071         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22072         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22073         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22074         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
22075         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
22076         * gst-libs/gst/vaapi/gstvaapiprofile.c:
22077         * gst-libs/gst/vaapi/gstvaapiprofile.h:
22078         * gst/vaapi/gstvaapidecode.c:
22079           Add initial VP8 decoder.
22080           https://bugzilla.gnome.org/show_bug.cgi?id=722761
22081           [complete overhaul, fixed support for resolution changes]
22082           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22083
22084 2014-03-21 15:15:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22085
22086         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22087           decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
22088           The gst_h264_parse_parse_sei() function now returns an array of SEI
22089           messages, instead of a single SEI message. Reason: it is allowed to
22090           have several SEI messages packed into a single SEI NAL unit, instead
22091           of multiple NAL units.
22092
22093 2014-04-18 19:36:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22094
22095         * ext/codecparsers:
22096           codecparsers: update to gst-vaapi-branch commit a454f86.
22097           b2eb5f6 vp8: rename dboolhuff symbols
22098           b74a881 vp8: add GStreamer native utilities
22099           2940ac6 add VP8 bitstream parser
22100
22101 2014-04-18 19:16:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22102
22103         * ext/codecparsers:
22104           codecparsers: update to gst-vaapi-branch commit d459bc5.
22105           d459bc5 h264: set framerate even for interlaced videos
22106           c78b82c h264: add support for Recovery Point SEI message
22107           7693bac h264: add support for Frame Packing Arrangement SEI message
22108           31fafa7 h264: add support for Stereo Video Information SEI message
22109           8b113a6 h264: parse seq_parameter_set_mvc_extension()
22110           040f9b8 h264: parse MVC syntax elements
22111           cc18ef3 h264: add nal_reader_skip_long() helper
22112           7e76a48 h264: fix slice_header() parsing for MVC
22113           caf46d8 h264: add gst_h264_parse_nalu_header() helper
22114           f75074e h264: add gst_h264_parse_sps_data() helper
22115           798c397 h264: clean-up gst_h264_parser_parse_sei_message()
22116           4e36737 h264: fix skipping of unsupported SEI messages
22117           5300766 h264: fix SEI buffering_period() parsing
22118
22119 2014-03-21 15:09:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22120
22121         * ext/codecparsers:
22122         * gst-libs/gst/codecparsers/Makefile.am:
22123           codecparsers: update to gst-vaapi-branch commit 8fadf40.
22124           8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
22125           644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
22126           95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
22127           766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
22128           8ec5816 h265: Fix segfault when parsing HRD parameter
22129           5b1730f h265: Fix segfault when parsing VPS
22130           983b7f7 h265: prevent to overrun chroma_weight_l0_flag
22131           7ba641d h265: Fix debug output
22132           d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
22133
22134 2014-02-04 18:35:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22135
22136         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22137           decoder: h264: fix robustness patch for bytestream format.
22138           Fix parser and decoder state to sync at the right locations. This is
22139           because we could reset the parser state, while the decoder state was
22140           not copied yet, e.g. when parsing several NAL units from multiple frames
22141           whereas the current frame was not decoded yet.
22142           This is a regression brought in by commit 6fe5496.
22143
22144 2014-02-18 06:56:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22145
22146         * configure.ac:
22147         * pkgconfig/Makefile.am:
22148         * pkgconfig/gstreamer-vaapi-drm.pc.in:
22149         * pkgconfig/gstreamer-vaapi-glx.pc.in:
22150         * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22151         * pkgconfig/gstreamer-vaapi-x11.pc.in:
22152           build: fix pkgconfig file names (again).
22153           It turns out it is more convenient to have only pkgconfig files named
22154           after the installed GStreamer API version (1.0) instead of using all
22155           possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
22156           altogether anyway, so align pkgconfig file names to that.
22157
22158 2014-02-07 09:43:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22159
22160         * debian.upstream/libgstvaapi-dev.install.in:
22161         * gst-libs/gst/vaapi/Makefile.am:
22162         * pkgconfig/gstreamer-vaapi.pc.in:
22163           build: fix packaging for GStreamer 1.2.
22164           Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
22165           the pkgconfig version (1.0) instead of the intended API version (1.2).
22166           libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
22167           as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
22168
22169 2014-01-24 11:27:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22170
22171         * configure.ac:
22172           Bump version for development.
22173
22174 2014-01-24 10:55:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22175
22176         * debian.upstream/control.in:
22177           debian: fix trailing whitespace in description.
22178
22179 2014-01-23 23:24:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22180
22181         * debian.upstream/control.in:
22182         * debian.upstream/copyright:
22183           debian: fix package description.
22184           Try to improve package description for the compiled plug-in elements
22185           available in there. e.g. only display vaapidownload and vaapiupload
22186           for GStreamer 0.10 builds, display vaapiencode_* elements when VA
22187           encoding is enabled, etc.
22188           Also increase the copyright notice date.
22189
22190 2014-01-23 22:47:19 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22191
22192         * gst-libs/gst/vaapi/gstvaapidecoder.c:
22193           build: fix warnings on 64-bit platforms.
22194
22195 2014-01-23 22:44:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22196
22197         * gst-libs/gst/vaapi/gstvaapicontext.c:
22198         * gst-libs/gst/vaapi/gstvaapiutils.c:
22199           build: fix for older versions of VA-API (< 0.34.0).
22200           Fix build with older versions of VA-API (< 0.34.0), or versions without
22201           good enough headers for encoding support for instance.
22202
22203 2014-01-23 19:36:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22204
22205         * NEWS:
22206         * configure.ac:
22207           0.5.8.
22208
22209 2014-01-23 19:32:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22210
22211         * README:
22212           README: updates.
22213           VA-API up to 0.34.0 is actually supported. Mention new video encoding
22214           support. Update copyright years, list of supported Intel HD Graphics
22215           hardware.
22216
22217 2014-01-23 19:18:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22218
22219         * NEWS:
22220           NEWS: updates.
22221
22222 2014-01-20 14:16:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22223
22224         * tests/test-filter.c:
22225           tests: test-filter: fix "deinterlace" option parse.
22226           Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
22227           string was provided, i.e. if it remained set to NULL.
22228
22229 2014-01-23 18:41:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22230
22231         * gst-libs/gst/vaapi/Makefile.am:
22232         * gst-libs/gst/vaapi/gstvaapicontext.c:
22233         * gst-libs/gst/vaapi/gstvaapicontext.h:
22234         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22235         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
22236         * gst-libs/gst/vaapi/gstvaapiutils_core.h:
22237           libs: factor out usages of vaGetConfigAttributes().
22238           Add gst_vaapi_get_config_attribute() helper function that takes a
22239           GstVaapiDisplay and the rest of the arguments with VA types. The aim
22240           is to have thread-safe VA helpers by default.
22241
22242 2014-01-23 17:41:02 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22243
22244         * gst-libs/gst/vaapi/gstvaapiutils.c:
22245         * gst-libs/gst/vaapi/gstvaapiutils.h:
22246         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22247         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22248         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22249         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22250         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22251         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22252         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22253         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
22254         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22255           libs: re-indent all source code related to VA utilities.
22256
22257 2014-01-23 17:06:08 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22258
22259         * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
22260           libs: add missing file (libgstvaapi_priv_check.h).
22261
22262 2014-01-23 15:13:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22263
22264         * gst-libs/gst/vaapi/gstvaapicontext.c:
22265         * gst-libs/gst/vaapi/gstvaapicontext.h:
22266         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22267         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22268         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22269         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22270           encoder: notify the encoder of the submitted packed headers.
22271           Make sure to configure the encoder with the set of packed headers we
22272           intend to generate and submit. i.e. make selection of packed headers
22273           to submit more robust.
22274
22275 2014-01-23 15:10:11 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22276
22277         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22278         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22279         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22280         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22281           encoder: fix and factor out check for supported rate-control modes.
22282           Cache the first compatible GstVaapiProfile found if the encoder is not
22283           configured yet. Next, factor out the code to check for the supported
22284           rate-control modes by moving out vaGetConfigAttributes() to a separate
22285           function, while also making sure that the attribute type is actually
22286           supported by the encoder.
22287           Also fix the default set of supported rate control modes to not the
22288           "none" variant. It's totally useless to expose it at this point.
22289
22290 2014-01-23 14:01:33 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22291
22292         * gst-libs/gst/vaapi/gstvaapicontext.c:
22293         * gst-libs/gst/vaapi/gstvaapicontext.h:
22294         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22295           context: move rate-control mode to encoder specific config.
22296           Move usage-specific config out of the common GstVaapiContextInfo.
22297           Create a specialized config for encoding and move rate-control mode
22298           to there.
22299
22300 2014-01-23 13:30:41 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22301
22302         * gst-libs/gst/vaapi/gstvaapicontext.c:
22303         * gst-libs/gst/vaapi/gstvaapicontext.h:
22304         * gst-libs/gst/vaapi/gstvaapidecoder.c:
22305         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22306           context: introduce concept of usage.
22307           Introduce GstVaapiContextUsage so that to explicitly determine the
22308           usage of a VA context. This is useful in view to simplifying the
22309           creation of VA context for VPP too.
22310
22311 2014-01-23 11:44:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22312
22313         * gst-libs/gst/vaapi/gstvaapicontext.c:
22314           context: fix get_attribute() value result.
22315           Unknown attributes, or attributes that are not supported for the given
22316           profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
22317           So, return failure in this case.
22318
22319 2014-01-23 10:59:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22320
22321         * gst-libs/gst/vaapi/Makefile.am:
22322         * gst-libs/gst/vaapi/gstvaapicontext.c:
22323         * gst-libs/gst/vaapi/gstvaapicontext.h:
22324         * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
22325         * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
22326         * gst-libs/gst/vaapi/gstvaapisurface.c:
22327           context: move overlay composition to separate files.
22328           Move GstVideoOverlayComposition handling to separate source files.
22329           This helps keeing GstVaapiContext core implementation to the bare
22330           minimal, i.e. simpy helpers to create a VA context and handle pool
22331           of associated VA surfaces.
22332
22333 2014-01-23 09:41:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22334
22335         * gst-libs/gst/vaapi/gstvaapicontext.c:
22336         * gst-libs/gst/vaapi/gstvaapicontext.h:
22337         * gst-libs/gst/vaapi/gstvaapidecoder.c:
22338         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22339           context: clean-ups. Strip down APIs.
22340           Improve documentation and debug messages. Clean-up APIs, i.e. strip
22341           them down to the minimal set of interfaces. They are private, so no
22342           need expose getters for instance.
22343
22344 2014-01-23 09:27:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22345
22346         * gst-libs/gst/vaapi/gstvaapicontext.c:
22347         * gst-libs/gst/vaapi/gstvaapicontext.h:
22348           context: re-indent all GstVaapiContext related source code.
22349
22350 2014-01-23 10:20:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22351
22352         * gst-libs/gst/vaapi/Makefile.am:
22353         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
22354         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22355         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22356         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
22357         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
22358         * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
22359         * gst-libs/gst/vaapi/gstvaapiutils.h:
22360         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22361         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22362         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22363         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22364         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
22365           libs: check that private headers remain private.
22366           Make sure that libgstvaapi private headers remain internally used to
22367           build libgstvaapi libraries only. All header dependencies were reviewed
22368           and checks for IN_LIBGSTVAAPI definition were added accordingly.
22369           Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
22370           consistency.
22371
22372 2014-01-22 19:04:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22373
22374         * configure.ac:
22375           Bump library major version.
22376           Bump the library major version due to API/ABI changes that occurred in
22377           the imaging API. In particular, GstVaapiDisplay interfaces no longer
22378           expose any GstCaps but provide GArray based ones e.g. to determine the
22379           set of supported decode/encode profiles.
22380
22381 2014-01-22 18:54:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22382
22383         * gst-libs/gst/vaapi/glibcompat.h:
22384         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22385         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22386         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22387         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22388         * gst-libs/gst/vaapi/gstvaapicontext.c:
22389         * gst-libs/gst/vaapi/gstvaapicontext.h:
22390         * gst-libs/gst/vaapi/gstvaapidecoder.c:
22391         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22392         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22393         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22394         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22395         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22396         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22397         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22398         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22399         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22400         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22401         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22402         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22403         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22404         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22405         * gst-libs/gst/vaapi/gstvaapifilter.c:
22406         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
22407         * gst-libs/gst/vaapi/gstvaapisurface.c:
22408         * gst-libs/gst/vaapi/gstvaapisurface.h:
22409         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22410         * gst-libs/gst/vaapi/gstvaapitypes.h:
22411         * gst-libs/gst/vaapi/gstvaapiutils.c:
22412         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22413         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22414         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22415         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
22416         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22417         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22418         * gst-libs/gst/vaapi/gstvaapivalue.c:
22419         * gst-libs/gst/vaapi/gstvaapivalue.h:
22420         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22421         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22422         * gst/vaapi/gstvaapidecode.c:
22423         * gst/vaapi/gstvaapiencode.c:
22424         * gst/vaapi/gstvaapiencode.h:
22425         * gst/vaapi/gstvaapiencode_h264.c:
22426         * gst/vaapi/gstvaapiencode_h264.h:
22427         * gst/vaapi/gstvaapiencode_mpeg2.c:
22428         * gst/vaapi/gstvaapiencode_mpeg2.h:
22429         * gst/vaapi/gstvaapipluginbase.c:
22430         * gst/vaapi/gstvaapipluginutil.c:
22431         * gst/vaapi/gstvaapipluginutil.h:
22432         * gst/vaapi/gstvaapipostproc.c:
22433         * gst/vaapi/gstvaapipostproc.h:
22434         * gst/vaapi/gstvaapisink.c:
22435         * gst/vaapi/gstvaapisink.h:
22436         * gst/vaapi/gstvaapivideometa_texture.c:
22437         * tests/simple-decoder.c:
22438           legal: update copyright notice dates.
22439
22440 2014-01-22 18:49:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22441
22442         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22443         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22444         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22445         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22446         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22447         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22448         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22449         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22450         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22451         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22452         * gst/vaapi/gstvaapiencode.c:
22453         * gst/vaapi/gstvaapiencode.h:
22454         * gst/vaapi/gstvaapiencode_h264.c:
22455         * gst/vaapi/gstvaapiencode_h264.h:
22456         * gst/vaapi/gstvaapiencode_mpeg2.c:
22457         * gst/vaapi/gstvaapiencode_mpeg2.h:
22458           legal: add per-file authorship information.
22459
22460 2014-01-22 18:11:26 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22461
22462         * gst-libs/gst/vaapi/gstvaapidecoder.c:
22463         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22464           decoder: fix video codec frame number in standalone mode.
22465           Set a valid GstVideoCodecFrame.system_frame_number when decoding a
22466           stream in standalone mode. While we are at it, improve the debugging
22467           messages to also include that frame number.
22468
22469 2014-01-17 16:56:53 +0800  Wind Yuan <feng.yuan@intel.com>
22470
22471         * gst-libs/gst/vaapi/gstvaapidecoder.c:
22472         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22473           decoder: fix crash on invalid pointer for GST_DEBUG().
22474           When decoding failed, or that the frame was dropped, the associated
22475           surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
22476           message needs to check whether the proxy is actually present or not.
22477           https://bugzilla.gnome.org/show_bug.cgi?id=722403
22478           [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
22479           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22480
22481 2014-01-22 17:07:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22482
22483         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22484           encoder: h264: disable NAL HRD parameters for now.
22485           Don't emit NAL HRD parameters for now in the SPS headers because the
22486           SEI buffering_period() and picture_timing() messages are not handled
22487           yet. Some additional changes are necessary to get it right.
22488           https://bugzilla.gnome.org/show_bug.cgi?id=722734
22489
22490 2014-01-21 19:04:41 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22491
22492         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22493         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22494         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22495         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22496           encoder: h264: fix default CPB buffer size.
22497           Fix default CPB buffer size to something more reasonable (1500 ms)
22498           and that still fits the level limits. This is a non configurable
22499           property for now. The initial CPB removal delay is also fixed to
22500           750 ms.
22501           https://bugzilla.gnome.org/show_bug.cgi?id=722087
22502
22503 2014-01-22 14:43:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22504
22505         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22506           encoder: h264: fix bitrate encoding for HRD conformance.
22507           Round down the calculated, or supplied, bitrate (kbps) into a multiple
22508           of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
22509           that to have less losses in precision. Likewise, don't round up because
22510           that could be a strict constraint imposed by the user.
22511
22512 2014-01-22 11:25:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22513
22514         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22515           encoder: h264: fix level lookup constraints wrt. bitrate.
22516           Fix the level calculation involving bitrate limits. Since we are
22517           targetting NAL HRD conformance, the check against MaxBR from the
22518           Table A-1 limits shall involve cpbBrNalFactor depending on the
22519           active profile.
22520
22521 2014-01-21 18:01:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22522
22523         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22524           encoder: h264: submit sequence parameter only once.
22525           Submit sequence parameter buffers only once, or when the bitstream
22526           was reconfigured in a way that requires such. Always submit packed
22527           sequence parameter buffers at I-frame period, if the VA driver needs
22528           those.
22529           https://bugzilla.gnome.org/show_bug.cgi?id=722737
22530
22531 2014-01-21 18:35:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22532
22533         * gst-libs/gst/vaapi/gstvaapicontext.c:
22534         * gst-libs/gst/vaapi/gstvaapicontext.h:
22535         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22536         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22537         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22538           encoder: h264: only submit packed headers when required.
22539           Make sure to submit the packed headers only if the underlying VA driver
22540           requires those. Currently, only handle packed sequence and picture
22541           headers.
22542           https://bugzilla.gnome.org/show_bug.cgi?id=722737
22543
22544 2014-01-21 17:35:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22545
22546         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22547           encoder: h264: fix ip_period value in sequence parameter.
22548           The VAEncSequenceParameterBuffer.ip_period value reprents the distance
22549           between the I-frame and the next P-frame. So, this also accounts for
22550           any additional B-frame in the middle of it.
22551           This fixes rate control heuristics for certain VA drivers.
22552           https://bugzilla.gnome.org/show_bug.cgi?id=722735
22553
22554 2014-01-21 17:04:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22555
22556         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22557           encoder: h264: fix level when bitrate is automatically computed.
22558           Fix level characterisation when the bitrate is automatically computed
22559           from the active coding tools. i.e. ensure the bitrate once the profile
22560           is completely characterized but before the level calculation process.
22561
22562 2014-01-21 16:05:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22563
22564         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22565           encoder: h264: clean-ups.
22566           Document and rename a few functions here and there. Drop code that
22567           caps num_bframes variable in reset_properties() since they shall
22568           have been checked beforehand, during properties initialization.
22569
22570 2014-01-21 15:28:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22571
22572         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22573           encoder: h264: clean-up bitwriter related utilities.
22574           Clean-up GstBitWriter related utility functions and simplify notations.
22575           While we are at it, also make bitstream writing more robust should an
22576           overflow occur. We could later optimize for writing headers capped to
22577           their maximum possible size by using the _unchecked() helper variants.
22578
22579 2014-01-21 15:23:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22580
22581         * gst-libs/gst/vaapi/Makefile.am:
22582         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22583         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22584           encoder: h264: completely remove private headers.
22585           Drop private header since it was originally used to expose internals
22586           to the plugin element. The proper interface is now the properties API,
22587           thus rendering private headers totally obsolete.
22588
22589 2014-01-15 15:54:32 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22590
22591         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22592           encoder: h264: fix PPS header packing with profile < high.
22593           Fix PPS header packing when profile is below High since 8x8 transform
22594           mode and scaling lists are High Profile features.
22595
22596 2014-01-15 15:46:19 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22597
22598         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22599           encoder: h264: always emit VUI parameters for framerate.
22600           Always emit VUI parameters for timing_info, which includes framerate
22601           information.
22602
22603 2014-01-15 15:10:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22604
22605         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22606           encoder: h264: really fix frame cropping rectangle calculation.
22607           Make frame cropping rectangle calculation future proof, i.e. exactly
22608           follow the specification (7-18) to (7-21), and subsampling definitions
22609           from Table 6-1.
22610           https://bugzilla.gnome.org/show_bug.cgi?id=722089
22611           https://bugzilla.gnome.org/show_bug.cgi?id=722238
22612
22613 2014-01-15 12:09:14 +0100  Holger Kaelberer <hk@getslash.de>
22614
22615         * gst/vaapi/gstvaapisink.c:
22616         * gst/vaapi/gstvaapisink.h:
22617           vaapisink: set csc render flags from sinkpad caps.
22618           This maps GstVideoColorimetry information in vaapisink's sinkpad caps
22619           to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
22620           available.
22621           https://bugzilla.gnome.org/show_bug.cgi?id=722255
22622           [factored out code, added SMPTE240M, handle per-buffer flags]
22623           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22624
22625 2012-03-28 15:05:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22626
22627         * gst-libs/gst/vaapi/gstvaapisurface.h:
22628         * gst-libs/gst/vaapi/gstvaapiutils.c:
22629         * gst/vaapi/gstvaapipostproc.c:
22630           surface: rework render flags.
22631           Pack render flags per category and provide more flags into the color
22632           standard category. In particular, cover for SMPTE-240M.
22633
22634 2013-12-13 04:14:41 +0800  Zhao, Halley <halley.zhao@intel.com>
22635
22636         * gst-libs/gst/vaapi/gstvaapifilter.c:
22637         * gst/vaapi/gstvaapipostproc.c:
22638         * gst/vaapi/gstvaapipostproc.h:
22639           vaapipostproc: add support for colorbalance filters.
22640           Add support for hue, saturation, brightness and constrat adjustments.
22641           Also fix cap info local copy to match the really expected cap subtype
22642           of interest.
22643           https://bugzilla.gnome.org/show_bug.cgi?id=720376
22644           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22645
22646 2013-12-12 08:38:12 +0800  Zhao, Halley <halley.zhao@intel.com>
22647
22648         * gst/vaapi/gstvaapipostproc.c:
22649           vaapipostproc: fix support for "sharpen" filter.
22650           Fix copy/paste error when submitting the "sharpen" value to the
22651           GstVaapiFilter instance.
22652           https://bugzilla.gnome.org/show_bug.cgi?id=720375
22653           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22654
22655 2013-12-20 12:05:42 +0000  Lionel Landwerlin <llandwerlin@gmail.com>
22656
22657         * configure.ac:
22658         * pkgconfig/gstreamer-vaapi-drm.pc.in:
22659         * pkgconfig/gstreamer-vaapi-glx.pc.in:
22660         * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22661         * pkgconfig/gstreamer-vaapi-x11.pc.in:
22662         * pkgconfig/gstreamer-vaapi.pc.in:
22663           pkgconfig: plugin dir should use PKG version not API version.
22664           Fix the pluginsdir and includedir variables in the generated pkgconfig
22665           (.pc) files. The location needs to be built with the PKG version in
22666           mind instead of the API version.
22667           While we are at it, also fix the PKG version for GStreamer >= 1.3.
22668           https://bugzilla.gnome.org/show_bug.cgi?id=720820
22669           [additional fixes for includedir and pkg requirements]
22670           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22671
22672 2014-01-15 10:05:45 +0100  Holger Kaelberer <hk@getslash.de>
22673
22674         * gst/vaapi/gstvaapisink.c:
22675           vaapisink: fix display initialization in GstVideoOverlay implementation.
22676           When gst_vaapisink_video_overlay_set_window_handle() is called early,
22677           before the pipeline has been set to PLAYING, the display has not yet
22678           been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
22679           up-to-date. For this reason the foreign XID is not attached.
22680           Now _ensure_display() is called earlier.
22681           https://bugzilla.gnome.org/show_bug.cgi?id=722244
22682           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22683
22684 2013-10-09 13:47:54 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22685
22686         * gst/vaapi/gstvaapisink.c:
22687           vaapisink: expose the raw video formats in static caps template.
22688           Expose all raw video formats in the static caps template since the
22689           vaapisink is supporting raw data. We will get the exact set of formats
22690           supported by the driver dynamically through the _get_caps() routine.
22691           https://bugzilla.gnome.org/show_bug.cgi?id=703271
22692           https://bugzilla.gnome.org/show_bug.cgi?id=720737
22693           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22694
22695 2013-12-11 18:08:26 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
22696
22697         * gst/vaapi/gstvaapidecode.c:
22698           vaapidecode: query downstream caps features like GLTextureUploadMeta.
22699           Fix vaapidecode to correctly report caps features downstream, when
22700           a custom pipeline is built manually.
22701           https://bugzilla.gnome.org/show_bug.cgi?id=719372
22702           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22703
22704 2013-12-17 15:27:10 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
22705
22706         * gst/vaapi/gstvaapidecode.c:
22707           vaapidecode: add system memory caps to template caps.
22708           Since vaapidecode provides buffer that can be mapped as regular memory,
22709           those caps should be added to the template caps. That only applies to
22710           GStreamer >= 1.2.
22711           https://bugzilla.gnome.org/show_bug.cgi?id=720608
22712           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22713
22714 2013-12-17 10:26:03 +0800  Wind Yuan <feng.yuan@intel.com>
22715
22716         * gst/vaapi/gstvaapidecode.c:
22717           vaapidecode: fix hang on SIGINT.
22718           vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
22719           <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
22720           locked. This fixes a deadlock on state change from PAUSED to READY.
22721           https://bugzilla.gnome.org/show_bug.cgi?id=720584
22722           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22723
22724 2013-12-17 04:23:42 -0500  Wind Yuan <feng.yuan@intel.com>
22725
22726         * gst/vaapi/gstvaapiencode.c:
22727           vaapiencode: fix possible hang on SIGINT.
22728           vaapiencode might hang when the pipeline is stopped without any EOS,
22729           e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
22730           running and locked. This fixes a possible deadlock on state change
22731           from PAUSED to READY.
22732           https://bugzilla.gnome.org/show_bug.cgi?id=720584
22733           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22734
22735 2014-01-14 16:33:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22736
22737         * gst/vaapi/gstvaapiencode.c:
22738           vaapiencode: fix typo in error message.
22739           Fix incomplete error message in gst_vaapiencode_push_frame().
22740
22741 2014-01-14 19:08:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22742
22743         * gst/vaapi/gstvaapipluginutil.c:
22744         * gst/vaapi/gstvaapipluginutil.h:
22745           plugins: add helpers to create video caps with features.
22746           Add gst_vaapi_video_format_new_template_caps_with_features() helper
22747           function to add the supplied caps feature string on GStreamer >= 1.2.
22748           Add gst_vaapi_find_preferred_caps_feature() helper function to discover
22749           the "best" caps feature to use for the supplied pad. In practice, we
22750           will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
22751           and finally the system memory caps.
22752           https://bugzilla.gnome.org/show_bug.cgi?id=719372
22753
22754 2014-01-09 11:54:11 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
22755
22756         * gst/vaapi/gstvaapivideometa_texture.c:
22757           plugins: don't apply overlay composition in GLTextureUpload function.
22758           The GLTextureUpload function is not in charge of doing the overlay
22759           composition if any.
22760           https://bugzilla.gnome.org/show_bug.cgi?id=721859
22761           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22762
22763 2014-01-14 13:47:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22764
22765         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22766           encoder: re-order submission of VA objects.
22767           Change the submission order of VA objects so that to make that process
22768           more logical. i.e. submit sequence parameter first, if any; next the
22769           packed headers associated to sequece, picture or slices; and finally
22770           the actual picture and associated slices.
22771
22772 2014-01-14 12:01:11 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22773
22774         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22775         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22776         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22777         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22778         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22779           encoder: clean-up objects.
22780           Various clean-ups to improve consistency and readability: rename some
22781           variables, drop unused macro definitions, drop initialization of vars
22782           that are zero-initialized from the base class, drop un-necessary casts,
22783           allocate GPtrArrays with a destroy function.
22784
22785 2014-01-13 13:41:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22786
22787         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22788           encoder: h264: fix frame cropping rectangle calculation.
22789           Fix frame cropping rectangle calculation to handle horizontal resolutions
22790           that don't match a multiple of 16 pixels, but also the vertical resolution
22791           that was incorrectly computed for progressive sequences too.
22792           https://bugzilla.gnome.org/show_bug.cgi?id=722089
22793
22794 2014-01-13 11:49:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22795
22796         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22797           encoder: h264: improve automatic bitrate calculation.
22798           For non "Constant-QP" modes, we could provide more reasonable heuristics
22799           for the target bitrate. In general, 48 bits per macroblock with all the
22800           useful coding tools enable looks safe enough. Then, this rate is raised
22801           by +10% to +15% for each coding tool that is disabled.
22802           https://bugzilla.gnome.org/show_bug.cgi?id=719699
22803
22804 2014-01-13 11:11:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22805
22806         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22807           encoder: h264: support "high-compression" tuning option.
22808           Add support for "high-compression" tuning option. First, determine the
22809           largest supported profile by the hardware. Next, check any target limit
22810           set by the user. Then, enable each individual coding tool based on the
22811           resulting profile_idc value to use.
22812           https://bugzilla.gnome.org/show_bug.cgi?id=719696
22813
22814 2014-01-12 22:24:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22815
22816         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22817         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22818         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22819         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22820         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22821         * gst/vaapi/gstvaapiencode_h264.c:
22822           encoder: h264: allow target decoder constraints.
22823           Allow user to precise the largest profile to use for encoding due
22824           to target decoder constraints. For instance, if CABAC entropy coding
22825           mode is requested by "constrained-baseline" profile only is desired,
22826           then an error is returned during codec configuration.
22827           Also make sure that the suitable profile we derived actually matches
22828           what the HW can cope with.
22829           https://bugzilla.gnome.org/show_bug.cgi?id=719694
22830
22831 2014-01-12 22:14:11 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22832
22833         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22834           encoder: h264: refine size of coded buffer.
22835           Refine the heuristic to determine the maximum size of a coded buffer
22836           to account for the exact number of slices. set_context_info() is the
22837           last step during codec reconfiguration, no additional change is done
22838           afterwards, so re-using the num_slices field here is fine.
22839           https://bugzilla.gnome.org/show_bug.cgi?id=719953
22840
22841 2013-12-13 17:36:08 +0800  Wind Yuan <feng.yuan@intel.com>
22842
22843         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22844         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22845         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22846           encoder: h264: expose more coding tools.
22847           Add new H.264 coding tools to improve compression:
22848           - "cabac": enable CABAC entropy coding (default: FALSE);
22849           - "dct8x8": enable spatial transform 8x8 (default: FALSE).
22850           https://bugzilla.gnome.org/show_bug.cgi?id=719693
22851           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22852
22853 2014-01-10 18:18:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22854
22855         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22856         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22857         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22858           encoder: h264: derive profile and level from active coding tools.
22859           Automatically derive the minimum profile and level to be used for
22860           encoding, based on the activated coding tools. The encoder will
22861           be trying to generate a bitstream that has the best chances to be
22862           decoded on most platforms by default.
22863           Also change the default profile to "constrained-baseline" so that
22864           to ensure maximum compatibility when the stream is decoded.
22865           https://bugzilla.gnome.org/show_bug.cgi?id=719691
22866
22867 2014-01-10 17:02:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22868
22869         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22870         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22871         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22872           encoder: h264: fix hardware profile lookup.
22873           Fix lookup for a suitable HW profile, as to be used by the underlying
22874           hardware, based on heuristics that lead to characterize the SW profile,
22875           i.e. the one used by the SW level encoding logic.
22876           Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
22877           as they should respectively match the baseline and main profile.
22878           https://bugzilla.gnome.org/show_bug.cgi?id=719827
22879
22880 2014-01-10 14:46:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22881
22882         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22883         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22884         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22885           encoder: h264: support only the byte-stream format.
22886           The libgstvaapi core encoders are meant to support raw bitstreams only.
22887           Henceforth, we are always producing a stream in "byte-stream" format.
22888           However, the "codec-data" buffer which holds SPS and PPS headers is
22889           always available. The "lengthSizeMinusOne" field is always set to 3
22890           so that in-place "byte-stream" format to "avc" format conversion could
22891           be performed.
22892
22893 2014-01-10 14:05:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22894
22895         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22896         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22897         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22898         * gst/vaapi/gstvaapiencode_h264.c:
22899           encoder: h264: clean-ups.
22900           Various clean-ups to improve consistency and readability: rename some
22901           variables, drop unused macro definitions, drop initialization of vars
22902           that are zero-initialized from the base class, drop un-necessary casts.
22903
22904 2014-01-13 17:11:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22905
22906         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22907           encoder: mpeg2: fix hardware profile lookup.
22908           Fix lookup for a suitable HW profile, as to be used by the underlying
22909           hardware, based on heuristics that lead to characterize the SW profile,
22910           i.e. the one used by the SW level encoding logic.
22911
22912 2014-01-13 16:56:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22913
22914         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22915         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22916           encoder: mpeg2: derive profile and level from active coding tools.
22917           Automatically derive the minimum profile and level to be used for
22918           encoding, based on the activated coding tools. Improve lookup for
22919           the best suitable level with the new MPEG-2 helper functions.
22920           Also change the default profile to "simple" so that to ensure maximum
22921           compatibility when the stream is decoded.
22922           https://bugzilla.gnome.org/show_bug.cgi?id=719703
22923
22924 2014-01-13 14:41:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22925
22926         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22927         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22928         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22929           encoder: mpeg2: clean-ups.
22930           Various clean-ups to improve consistency and readability: drop unused
22931           macro definitions, drop initialization of vars that are zero-initialized
22932           from the base class, drop un-necessary casts.
22933
22934 2014-01-13 10:48:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22935
22936         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22937         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22938         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22939         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22940         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22941           encoder: add tuning options API.
22942           Add encoder "tune" option to override the default behaviour that is to
22943           favor maximum decoder compatibility at the expense of lower compression
22944           ratios.
22945           Expected tuning options to be developed are:
22946           - "high-compression": improve compression, target best-in-class decoders;
22947           - "low-latency": tune for low-latency decoding;
22948           - "low-power": tune for encoding in low power / resources conditions.
22949
22950 2014-01-12 23:17:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22951
22952         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22953         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22954           encoder: fix bitrate units to match kbps.
22955           Bitrate is expressed in kilobits per second (kbps). So, this exactly
22956           means in multiple of 1000 bits, not 1024 bits.
22957           https://bugzilla.gnome.org/show_bug.cgi?id=722086
22958
22959 2014-01-12 21:57:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22960
22961         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22962         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22963         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22964           encoder: clean-ups.
22965           Drop obsolete and unused macros. Add a few doc comments. Slightly
22966           improve indentation of a few leftovers.
22967
22968 2014-01-12 18:52:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22969
22970         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22971         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22972         * gst-libs/gst/vaapi/gstvaapivalue.c:
22973         * gst-libs/gst/vaapi/gstvaapivalue.h:
22974           encoder: filter out the supported set of rate-control properties.
22975           Only expose the exact static set of supported rate-control properties
22976           to the upper layer. For instance, if the GstVaapiEncoderXXX class does
22977           only support CQP rate control, then only add it the the exposed enum
22978           type.
22979           Add helper macros and functions to build a GType for an enum subset.
22980
22981 2014-01-10 13:23:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22982
22983         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22984         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22985         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22986         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22987         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22988         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22989         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22990         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22991         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22992           encoder: add keyframe period API.
22993           Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
22994           user control the maximum distance between two keyframes. This new
22995           property can only be set prior to gst_vaapi_encoder_set_codec_state().
22996           A value of zero for "keyframe-period" gets it re-evaluated to the
22997           actual framerate during encoder reconfiguration.
22998
22999 2014-01-10 12:01:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23000
23001         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23002         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23003         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23004         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23005           encoder: improve codec reconfiguration.
23006           Improve codec reconfiguration to be performed only through a single
23007           function. That is, remove the _set_context_info() hook as subclass
23008           should not alter the parent GstVaapiContextInfo itself. Besides, the
23009           VA context is constructed only at the final stages of reconfigure().
23010
23011 2014-01-10 11:30:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23012
23013         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
23014         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
23015         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23016           encoder: fix possible memory leak of coded buffer pools.
23017           Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
23018           buffer pool only if the coded buffer size actually changed.
23019
23020 2014-01-10 10:54:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23021
23022         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23023         * gst-libs/gst/vaapi/gstvaapiencoder.h:
23024         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23025         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23026         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23027         * gst/vaapi/gstvaapiencode.c:
23028         * gst/vaapi/gstvaapiencode.h:
23029           encoder: add video codec-state API.
23030           Add interface to communicate the encoder resolution and related info
23031           like framerate, interlaced vs. progressive, etc. This new interface
23032           supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
23033           but rather use GstVideoCodecState.
23034           Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
23035           point for codec config. This means that the encoder is reconfigured
23036           there to match the latest properties.
23037
23038 2014-01-13 17:18:42 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23039
23040         * gst/vaapi/gstvaapiencode.c:
23041           vaapiencode: don't crash on NULL encoder on _finish().
23042           Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
23043           if it was not created in the first place. Return "not-negotiated" error
23044           since this means we did not even reach GstVideoEncoder::set_format(),
23045           where the encoder could have been created.
23046           This fixes a crash when the vaapiencode_* plug-in elements get deallocated
23047           and that we failed to negotiate either pad.
23048           https://bugzilla.gnome.org/show_bug.cgi?id=719704
23049
23050 2014-01-09 18:20:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23051
23052         * gst/vaapi/gstvaapiencode.c:
23053         * gst/vaapi/gstvaapiencode.h:
23054         * gst/vaapi/gstvaapiencode_h264.c:
23055           vaapiencode: use more GstVaapiPluginBase facilities.
23056           Avoid duplication of pad references or query functions since they are
23057           provided through the GstVaapiPluginBase object.
23058
23059 2014-01-09 18:10:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23060
23061         * gst/vaapi/gstvaapiencode.c:
23062         * gst/vaapi/gstvaapiencode.h:
23063         * gst/vaapi/gstvaapiencode_h264.c:
23064         * gst/vaapi/gstvaapiencode_h264.h:
23065         * gst/vaapi/gstvaapiencode_mpeg2.c:
23066           vaapiencode: fix negotiation process of output caps.
23067           The specified caps in gst_video_encoder_set_output_state() function
23068           arguments should not contain any resolution, pixel-aspect-ratio,
23069           framerate, codec-data et al. Those rather should be set through the
23070           returned GstVideoCodecState. This means that output caps creation
23071           could be delayed until before gst_video_encoder_finish_frame() is
23072           called.
23073           This greatly simplifies the GstVideoEncoder::set_format() callback
23074           by the way.
23075
23076 2014-01-08 18:56:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23077
23078         * gst/vaapi/gstvaapiencode.c:
23079           vaapiencode: make GstVaapiEncode an abstract type.
23080           Make base GstVaapiEncode class an abstract type so that we cannot
23081           create an instance from it without going through any of the codec
23082           specific derived class.
23083
23084 2014-01-09 10:09:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23085
23086         * gst/vaapi/gstvaapiencode.c:
23087         * gst/vaapi/gstvaapiencode.h:
23088         * gst/vaapi/gstvaapiencode_h264.c:
23089         * gst/vaapi/gstvaapiencode_mpeg2.c:
23090           vaapiencode: rename a few member functions.
23091           Rename a few member functions to make them more consistent:
23092           - alloc_encoder(): now reduced to allocate the encoder object only;
23093           - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
23094
23095 2014-01-08 18:36:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23096
23097         * gst/vaapi/gstvaapiencode.c:
23098         * gst/vaapi/gstvaapiencode.h:
23099         * gst/vaapi/gstvaapiencode_h264.c:
23100         * gst/vaapi/gstvaapiencode_h264.h:
23101         * gst/vaapi/gstvaapiencode_mpeg2.c:
23102           vaapiencode: update for new properties API.
23103           Update MPEG-2 and H.264 encode elements to cope with the new core
23104           libgstvaapi properties API. i.e. all configurable properties are now
23105           directly handled at the GstVaapiEncoder level.
23106           Besides, this also makes sure to not use or modify the GstVaapiEncoder
23107           private definitions directly. Private data need to remain private.
23108           https://bugzilla.gnome.org/show_bug.cgi?id=719529
23109
23110 2014-01-06 17:46:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23111
23112         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23113         * gst-libs/gst/vaapi/gstvaapiencoder.h:
23114         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23115         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23116         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23117         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23118         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23119           encoder: add properties API.
23120           Add interface to communicate configurable properties to the encoder.
23121           This covers both the common ones (rate-control, bitrate), and the
23122           codec specific properties.
23123           https://bugzilla.gnome.org/show_bug.cgi?id=719529
23124
23125 2014-01-06 18:01:33 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23126
23127         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23128         * gst-libs/gst/vaapi/gstvaapiencoder.h:
23129         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23130         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23131         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23132         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23133         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23134         * gst/vaapi/gstvaapiencode.c:
23135         * gst/vaapi/gstvaapiencode_h264.c:
23136         * gst/vaapi/gstvaapiencode_mpeg2.c:
23137           encoder: add bitrate API.
23138           Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
23139           the bitrate for encoding. Currently, changing this parameter is only
23140           valid before the first frame is encoded. Should the value be modified
23141           afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
23142           returned.
23143           https://bugzilla.gnome.org/show_bug.cgi?id=719529
23144
23145 2014-01-06 15:10:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23146
23147         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23148         * gst-libs/gst/vaapi/gstvaapiencoder.h:
23149         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23150         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23151         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23152         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23153         * gst-libs/gst/vaapi/gstvaapitypes.h:
23154         * gst/vaapi/gstvaapiencode.c:
23155         * gst/vaapi/gstvaapiencode.h:
23156         * gst/vaapi/gstvaapiencode_h264.c:
23157         * gst/vaapi/gstvaapiencode_mpeg2.c:
23158           encoder: add rate control API.
23159           Add gst_vaapi_encoder_set_rate_control() interface to request a new
23160           rate control mode for encoding. Changing the rate control mode is
23161           only valid prior to encoding the very first frame. Afterwards, an
23162           error ("operation-failed") is issued.
23163           https://bugzilla.gnome.org/show_bug.cgi?id=719529
23164
23165 2014-01-03 16:57:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23166
23167         * gst/vaapi/gstvaapiencode.c:
23168         * gst/vaapi/gstvaapiencode_h264.c:
23169         * gst/vaapi/gstvaapiencode_mpeg2.c:
23170           vaapiencode: fix indentation.
23171
23172 2014-01-03 16:57:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23173
23174         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23175         * gst-libs/gst/vaapi/gstvaapiencoder.h:
23176         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23177         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23178         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23179         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23180         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23181         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23182         * gst/vaapi/gstvaapiencode.h:
23183           encoder: fix indentation.
23184
23185 2014-01-13 16:20:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23186
23187         * gst-libs/gst/vaapi/Makefile.am:
23188         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
23189         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
23190         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
23191           utils: add new MPEG-2 helper functions.
23192           Add various helper functions to convert profile, level, chroma formats
23193           from gstreamer-vaapi world and the MPEG-2 specification world.
23194
23195 2014-01-10 19:49:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23196
23197         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23198           utils: h264: don't use fatal asserts.
23199           Replace g_assert() with a g_debug() so that to not make the program
23200           abort when an unsupported value is supplied.
23201
23202 2014-01-10 19:37:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23203
23204         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23205         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23206           utils: h264: add helpers for profile and level string mappings.
23207           Add profile and level helper functions to convert to/from strings.
23208
23209 2014-01-10 18:27:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23210
23211         * gst-libs/gst/vaapi/Makefile.am:
23212         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23213         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23214         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23215         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
23216           utils: h264: expose levels in public header.
23217           Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
23218           H.264 levels in there. The additional helper functions are meant
23219           to be private for now.
23220
23221 2014-01-09 09:27:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23222
23223         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23224         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23225         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23226         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23227           codec: add helper macros to maintain object refcount.
23228           Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
23229           to avoid explicit casts to GstVaapiMiniObject in all caller sites.
23230
23231 2014-01-09 09:30:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23232
23233         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23234         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23235           codec: re-indent decoder objects.
23236
23237 2014-01-09 09:10:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23238
23239         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23240         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23241           codec: re-indent base codec objects.
23242
23243 2014-01-03 12:49:05 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
23244
23245         * gst/vaapi/gstvaapipluginbase.c:
23246           plugins: do not free debug category in finalize method.
23247           Fixes a crash when multiple vaapidecode elements are finalized since
23248           the debug category is created once in the class init method.
23249           This is a regression from git commit 7e58d60.
23250           https://bugzilla.gnome.org/show_bug.cgi?id=721390
23251           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23252
23253 2014-01-02 11:35:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23254
23255         * gst-libs/gst/vaapi/glibcompat.h:
23256         * tests/simple-decoder.c:
23257           tests: simple-decoder: don't use deprecated g_thread_create().
23258           Use g_thread_try_new() instead of the deprecated g_thread_create()
23259           function. Provide compatibility glue for any GLib version < 2.31.2.
23260
23261 2014-01-02 11:17:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23262
23263         * gst-libs/gst/vaapi/gstvaapidecoder.c:
23264         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
23265         * gst-libs/gst/vaapi/gstvaapisurface.c:
23266         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
23267         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
23268         * gst/vaapi/gstvaapiencode.c:
23269           Fix printf()-like formats.
23270           Fix formts for various GST_DEBUG et al. invocations. More precisely,
23271           make size_t arguments use the %zu format specifier accordingly; force
23272           XID formats to be a 32-bit unsigned integer; and fix the format used
23273           for gst_vaapi_create_surface_with_format() error cases since we have
23274           been using strings nowadays.
23275
23276 2013-12-21 07:38:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23277
23278         * gst-libs/gst/vaapi/video-format.c:
23279         * gst-libs/gst/vaapi/video-format.h:
23280           utils: format: drop unused helper functions.
23281           The following helper functions are no longer used, thus are removed:
23282           - gst_vaapi_video_format_from_structure()
23283           - gst_vaapi_video_format_from_caps()
23284           - gst_vaapi_video_format_to_caps()
23285
23286 2013-12-21 07:29:50 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23287
23288         * gst-libs/gst/vaapi/video-format.c:
23289         * gst-libs/gst/vaapi/video-format.h:
23290           utils: re-indent GstVideoFormat related helpers.
23291
23292 2013-12-21 08:27:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23293
23294         * gst/vaapi/gstvaapidownload.c:
23295           download: use GstVideoInfo facilities to build output caps.
23296           Use standard GstVideoInfo related functions to build the output caps,
23297           thus directly preserving additional fields as needed, instead of
23298           manually copying them over through gst_vaapi_append_surface_caps().
23299           Also ensure that the input caps are fixated first.
23300
23301 2013-12-21 10:41:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23302
23303         * gst/vaapi/gstvaapidownload.c:
23304         * gst/vaapi/gstvaapipluginutil.c:
23305         * gst/vaapi/gstvaapipluginutil.h:
23306         * gst/vaapi/gstvaapiuploader.c:
23307           plugins: factor out construction of template caps.
23308           Add new helper functions to build video template caps.
23309           - gst_vaapi_video_format_new_template_caps():
23310           create GstCaps with size, frame rate and PAR to full range
23311           - gst_vaapi_video_format_new_template_caps_from_list():
23312           try to create a "simplified" list from the supplied formats
23313
23314 2013-12-21 06:41:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23315
23316         * gst/vaapi/gstvaapipluginutil.c:
23317         * gst/vaapi/gstvaapipluginutil.h:
23318         * gst/vaapi/gstvaapipostproc.c:
23319           plugins: factor out construction of GValue from GstVideoFormat.
23320           Add new helper functions to build GValues from GstVideoFormat:
23321           - gst_vaapi_value_set_format():
23322           build a GValue from the supplied video format
23323           - gst_vaapi_value_set_format_list():
23324           build a GValue list from the supplied array of video formats
23325
23326 2013-12-21 06:22:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23327
23328         * gst/vaapi/gstvaapipluginutil.c:
23329         * gst/vaapi/gstvaapipluginutil.h:
23330         * gst/vaapi/gstvaapivideocontext.c:
23331         * gst/vaapi/gstvaapivideocontext.h:
23332           plugins: re-indent common and video context creation utils.
23333
23334 2013-12-20 15:31:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23335
23336         * gst-libs/gst/vaapi/gstvaapidisplay.c:
23337         * gst-libs/gst/vaapi/gstvaapidisplay.h:
23338         * gst/vaapi/gstvaapidecode.c:
23339         * tests/test-display.c:
23340           display: don't use GstCaps for decode or encode profiles list.
23341           Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
23342           more convenient APIs that return an array of GstVaapiProfile instead
23343           of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
23344
23345 2013-12-20 15:15:05 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23346
23347         * gst-libs/gst/vaapi/gstvaapidisplay.c:
23348         * gst-libs/gst/vaapi/gstvaapidisplay.h:
23349         * gst/vaapi/gstvaapidownload.c:
23350         * gst/vaapi/gstvaapiuploader.c:
23351         * tests/test-display.c:
23352           display: don't use GstCaps for image or subpicture formats list.
23353           Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
23354           returned GstCaps, with more convenient APIs that return an array of
23355           GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
23356
23357 2013-12-20 14:01:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23358
23359         * gst-libs/gst/vaapi/gstvaapidisplay.c:
23360         * gst-libs/gst/vaapi/gstvaapidisplay.h:
23361         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23362           display: allocate queried resources on-demand.
23363           Allocate the set of decoders or encoders on-demand, when they are
23364           queried. Likewise for VA display attributes, image and subpicture
23365           formats.
23366
23367 2013-12-20 13:27:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23368
23369         * gst-libs/gst/vaapi/gstvaapidisplay.c:
23370         * gst-libs/gst/vaapi/gstvaapidisplay.h:
23371         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
23372         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
23373         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
23374         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
23375         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
23376         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
23377         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23378         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23379         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
23380         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23381         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23382         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23383         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
23384         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
23385         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
23386           display: re-indent all GstVaapiDisplay related source code.
23387
23388 2013-12-20 16:04:19 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23389
23390         * gst-libs/gst/vaapi/gstvaapiprofile.c:
23391         * gst-libs/gst/vaapi/gstvaapiprofile.h:
23392           utils: add helper functions to get codec or profile name.
23393
23394 2013-12-20 17:08:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23395
23396         * gst/vaapi/gstvaapipostproc.c:
23397         * gst/vaapi/gstvaapipostproc.h:
23398         * gst/vaapi/gstvaapiuploader.c:
23399           plugins: fix permissions for certain files.
23400           Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
23401           files.
23402
23403 2013-12-12 17:01:29 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
23404
23405         * gst/vaapi/gstvaapivideometa_texture.c:
23406           plugins: implement GLTextureUploadMeta user data copy.
23407           Makes the copies of a buffer reference their own GLTextureUploadMeta
23408           user data and prevent the original buffer accessing already freed
23409           memory if its copies has been released and freed.
23410           https://bugzilla.gnome.org/show_bug.cgi?id=720336
23411           [Propagate the original meta texture to the copy too]
23412           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23413
23414 2013-12-17 18:52:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23415
23416         * gst/vaapi/gstvaapiencode.c:
23417         * gst/vaapi/gstvaapiencode.h:
23418         * gst/vaapi/gstvaapipluginbase.c:
23419         * gst/vaapi/gstvaapipluginbase.h:
23420         * gst/vaapi/gstvaapipostproc.c:
23421         * gst/vaapi/gstvaapipostproc.h:
23422         * gst/vaapi/gstvaapisink.c:
23423         * gst/vaapi/gstvaapisink.h:
23424           plugins: factor out support for raw YUV buffers on sink pads.
23425           Factor out propose_allocation() hooks, creation of video buffer pool
23426           for the sink pad, conversion from raw YUV buffers to VA surface backed
23427           buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
23428           with the new GstVaapiPluginBase abilities.
23429
23430 2013-12-17 18:46:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23431
23432         * gst-libs/gst/vaapi/gstcompat.h:
23433         * gst/vaapi/gstvaapidecode.c:
23434         * gst/vaapi/gstvaapidecode.h:
23435         * gst/vaapi/gstvaapidownload.c:
23436         * gst/vaapi/gstvaapipluginbase.c:
23437         * gst/vaapi/gstvaapipluginbase.h:
23438         * gst/vaapi/gstvaapipostproc.c:
23439         * gst/vaapi/gstvaapipostproc.h:
23440         * gst/vaapi/gstvaapisink.c:
23441         * gst/vaapi/gstvaapiupload.c:
23442           plugins: factor out pad caps.
23443
23444 2013-12-13 16:03:08 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23445
23446         * gst/vaapi/gstvaapidecode.c:
23447         * gst/vaapi/gstvaapidownload.c:
23448         * gst/vaapi/gstvaapiencode.c:
23449         * gst/vaapi/gstvaapipluginbase.c:
23450         * gst/vaapi/gstvaapipostproc.c:
23451         * gst/vaapi/gstvaapisink.c:
23452         * gst/vaapi/gstvaapiupload.c:
23453           plugins: factor out video context sharing code.
23454
23455 2013-12-13 13:24:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23456
23457         * gst/vaapi/gstvaapidecode.c:
23458         * gst/vaapi/gstvaapidownload.c:
23459         * gst/vaapi/gstvaapiencode.c:
23460         * gst/vaapi/gstvaapipluginbase.c:
23461         * gst/vaapi/gstvaapipluginbase.h:
23462         * gst/vaapi/gstvaapipostproc.c:
23463         * gst/vaapi/gstvaapisink.c:
23464         * gst/vaapi/gstvaapiupload.c:
23465           plugins: factor out GstImplementsInterface.
23466
23467 2013-12-13 12:00:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23468
23469         * gst-libs/gst/vaapi/gstvaapidisplay.c:
23470         * gst-libs/gst/vaapi/gstvaapidisplay.h:
23471         * gst/vaapi/gstvaapipluginbase.c:
23472         * gst/vaapi/gstvaapipluginutil.c:
23473           plugins: check type of display obtained from neighbours.
23474           Fix display creation code to check that any display obtained from a
23475           neighbour actually has the type we expect. Note: if display type is
23476           set to "any", we can then accept any VA display type.
23477
23478 2013-12-13 11:52:47 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23479
23480         * gst/vaapi/gstvaapidecode.c:
23481         * gst/vaapi/gstvaapidownload.c:
23482         * gst/vaapi/gstvaapiencode.c:
23483         * gst/vaapi/gstvaapipluginbase.c:
23484         * gst/vaapi/gstvaapipluginbase.h:
23485         * gst/vaapi/gstvaapipluginutil.c:
23486         * gst/vaapi/gstvaapipluginutil.h:
23487         * gst/vaapi/gstvaapipostproc.c:
23488         * gst/vaapi/gstvaapisink.c:
23489         * gst/vaapi/gstvaapisink.h:
23490         * gst/vaapi/gstvaapiupload.c:
23491           plugins: factor out display creation process.
23492           Move common VA display creation code to GstVaapiPluginBase, with the
23493           default display type remaining "any". Also add a "display-changed"
23494           hook so that subclasses could perform additional tasks when/if the
23495           VA display changed, due to a new display type request for instance.
23496           All plug-ins are updated to cope with the new internal APIs.
23497
23498 2013-12-13 10:24:26 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23499
23500         * gst/vaapi/Makefile.am:
23501         * gst/vaapi/gstvaapidecode.c:
23502         * gst/vaapi/gstvaapidecode.h:
23503         * gst/vaapi/gstvaapidownload.c:
23504         * gst/vaapi/gstvaapidownload.h:
23505         * gst/vaapi/gstvaapiencode.c:
23506         * gst/vaapi/gstvaapiencode.h:
23507         * gst/vaapi/gstvaapipluginbase.c:
23508         * gst/vaapi/gstvaapipluginbase.h:
23509         * gst/vaapi/gstvaapipostproc.c:
23510         * gst/vaapi/gstvaapipostproc.h:
23511         * gst/vaapi/gstvaapisink.c:
23512         * gst/vaapi/gstvaapisink.h:
23513         * gst/vaapi/gstvaapiupload.c:
23514         * gst/vaapi/gstvaapiupload.h:
23515           plugins: add new base object, store display in there.
23516           Introduce a new GstVaapiPluginBase object that will contain all common
23517           data structures and perform all common tasks. First step is to have a
23518           single place to hold VA displays.
23519           While we are at it, also make sure to store and subsequently release
23520           the appropriate debug category for the subclasses.
23521
23522 2013-12-11 14:04:27 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23523
23524         * gst-libs/gst/vaapi/gstvaapiobject.h:
23525         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
23526         * gst/vaapi/gstvaapivideometa_texture.c:
23527         * gst/vaapi/gstvaapivideometa_texture.h:
23528           plugins: fix GLTextureUploadMeta to work with different texture ids.
23529           The GLTextureUploadMeta implementation assumed that for each upload()
23530           sequence, the supplied texture id is always the same as the one that
23531           was previously cached into the underlying GstVaapiTexture. Cope with
23532           any texture id change the expense to recreate the underlying VA/GLX
23533           resources.
23534           https://bugzilla.gnome.org/show_bug.cgi?id=719643
23535
23536 2013-12-11 13:25:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23537
23538         * gst/vaapi/gstvaapidecode.c:
23539         * gst/vaapi/gstvaapivideobufferpool.c:
23540         * gst/vaapi/gstvaapivideometa_texture.c:
23541           plugins: allow builds without GLX enabled for GStreamer 1.2.
23542           Don't try to build GLTextureUploadMeta related code if GLX is not
23543           enabled during GStreamer >= 1.2 builds.
23544
23545 2013-11-20 17:20:07 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
23546
23547         * gst/vaapi/gstvaapidecode.c:
23548         * gst/vaapi/gstvaapivideobufferpool.c:
23549         * gst/vaapi/gstvaapivideobufferpool.h:
23550         * gst/vaapi/gstvaapivideometa_texture.c:
23551         * gst/vaapi/gstvaapivideometa_texture.h:
23552           plugins: request GLTextureUpload meta on buffers in the buffer pool.
23553           Requesting the GLTextureUpload meta on buffers in the bufferpool
23554           prevents such metas from being de-allocated when buffers are released
23555           in the sink.
23556           This is particulary useful in terms of performance when using the
23557           GLTextureUploadMeta API since the GstVaapiTexture associated with
23558           the target texture is stored in the meta.
23559           https://bugzilla.gnome.org/show_bug.cgi?id=712558
23560           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23561
23562 2013-12-11 10:51:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23563
23564         * gst/vaapi/gstvaapivideometa_texture.c:
23565           plugins: robustify GstVideoGLTextureUploadMeta implementation.
23566           Make GstVideoGLTextureUploadMeta::upload() implementation more robust
23567           when the GstVaapiTexture associated with the supplied texture id could
23568           not be created.
23569
23570 2013-12-10 16:14:27 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23571
23572         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23573           h264: improve robustness when packets are missing.
23574           Improve robustness when some expected packets where not received yet
23575           or that were not correctly decoded. For example, don't try to decode
23576           a picture if there was no valid frame headers parsed so far.
23577           https://bugs.freedesktop.org/show_bug.cgi?id=57902
23578
23579 2013-12-10 14:20:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23580
23581         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23582           decoder: h264: fix decoding of BA3_SVA_C.264.
23583           Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
23584           extended profile specifications. However, the SPS header has the
23585           constraint_set1_flag syntax element set to 1. This means that, if
23586           a Main profile compliant decoder is available, then it should be
23587           able to decode this stream.
23588           This changes makes it possible to fall-back from Extended profile
23589           to Main profile if constraint_set1_flag is set to 1.
23590           https://bugzilla.gnome.org/show_bug.cgi?id=720190
23591
23592 2013-12-10 11:13:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23593
23594         * gst-libs/gst/vaapi/gstvaapiprofile.h:
23595         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23596           utils: h264: add more profiles.
23597           Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
23598           profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
23599           multiview profiles (H.10.1.1, H.10.1.2).
23600           Document "Constrained Baseline" and "High 10" profiles.
23601
23602 2013-12-10 15:21:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23603
23604         * ext/codecparsers:
23605           codecparsers: update to gst-vaapi-branch commit e7d0e18.
23606           e7d0e18 h264: complete set of NAL unit types
23607
23608 2013-12-06 15:08:26 +0800  Wind Yuan <feng.yuan@intel.com>
23609
23610         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23611         * gst-libs/gst/vaapi/gstvaapiprofile.c:
23612           decoder: h264: add support for constrained baseline profile.
23613           Recognize streams marked as conforming to the "Constrained Baseline
23614           Profile". If VA driver supports that as is, fine. Otherwise, fallback
23615           to baseline, main or high profile.
23616           Constrained Baseline Profile conveys coding tools that are common
23617           to baseline profile and main profile.
23618           https://bugzilla.gnome.org/show_bug.cgi?id=719947
23619           [Added fallbacks to main and high profiles]
23620           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23621
23622 2013-12-09 12:46:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23623
23624         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23625           decoder: h264: fix decoding of scaling lists.
23626           The GStreamer codecparser layer now parses the scaling lists in zigzag
23627           scan order, as expected, so that to match the original bitstream layout
23628           and specification. However, further convert the scaling lists into
23629           raster scan order to fit the existing practice in most VA drivers.
23630           https://bugzilla.gnome.org/show_bug.cgi?id=706406
23631
23632 2013-12-09 12:07:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23633
23634         * ext/codecparsers:
23635           codecparsers: update to gst-vaapi-branch commit 177c73b.
23636           a7e3255 add H.265 (HEVC) bitstream parser
23637           177c73b h264: fix picture level scaling lists derivation (rule B)
23638           14733f1 h264: fix parsing of VCL HRD parameters
23639           59a0b47 h264: store quantization matrices in zig-zag order
23640           ffb6e26 h264: add helpers to convert quantization matrices
23641           c78a504 mpeg2: also initialize debug category in parse_sequence_header()
23642           719d1b0 mpeg2: turn internal consistency check into a g_assert()
23643           5241d8e all: remove some unused functions
23644           18eb312 all: fix for GST_DISABLE_GST_DEBUG
23645           963c04a all: make warnings more meaningful
23646
23647 2013-12-06 19:05:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23648
23649         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23650         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23651         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23652           utils: add helpers for H.264 levels.
23653           - gst_vaapi_utils_h264_get_level():
23654           Returns GstVaapiLevelH264 from H.264 level_idc value
23655           - gst_vaapi_utils_h264_get_level_idc():
23656           Returns H.264 level_idc value from GstVaapiLevelH264
23657           - gst_vaapi_utils_h264_get_level_limits():
23658           Returns level limits as specified in Table A-1 of the H.264 standard
23659           - gst_vaapi_utils_h264_get_level_limits_table():
23660           Returns the Table A-1 specification
23661
23662 2013-12-06 17:34:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23663
23664         * gst-libs/gst/vaapi/gstvaapiprofile.c:
23665         * gst-libs/gst/vaapi/gstvaapiprofile.h:
23666         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23667           utils: add new H.264 profiles.
23668           Add "Constrained Baseline Profile" and "High 10 Profile" definitions
23669           and helper functiions.
23670
23671 2013-12-06 17:21:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23672
23673           utils: add new H.264 helper functions.
23674           * Profiles:
23675           - gst_vaapi_utils_h264_get_profile():
23676           Returns GstVaapiProfile from H.264 profile_idc value
23677           - gst_vaapi_utils_h264_get_profile_idc():
23678           Returns H.264 profile_idc value from GstVaapiProfile
23679           * Chroma formats:
23680           - gst_vaapi_utils_h264_get_chroma_type():
23681           Returns GstVaapiChromaType from H.264 chroma_format_idc value
23682           - gst_vaapi_utils_h264_get_chroma_format_idc():
23683           Returns H.264 chroma_format_idc value from GstVaapiChromaType
23684
23685 2013-12-03 11:05:17 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
23686
23687         * gst-libs/gst/base/Makefile.am:
23688         * gst-libs/gst/vaapi/Makefile.am:
23689           Fix missing files in distribution tarball.
23690           https://bugzilla.gnome.org/show_bug.cgi?id=719776
23691           [Additional fixes and clean-ups]
23692           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23693
23694 2013-12-05 18:13:54 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23695
23696         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23697         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23698           encoder: fix computation of max coded buffer size (again).
23699           The previous fix was only valid to express the maximum size of the
23700           macroblock layer, i.e. without any headers. Now, also account for
23701           the slice headers and top picture header, but also any other header
23702           we might stuff into the VA coded buffer, e.g. sequence headers.
23703
23704 2013-12-04 19:10:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23705
23706         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23707         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23708         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23709           encoder: fix computation of max coded buffer size.
23710           Fix coded buffer size for each codec. A generic issue was that the
23711           number of macroblocks was incorrectly computed. The second issue was
23712           specific to MPEG-2 were the max number of bits per macroblock, and
23713           as defined by the standard, was incorrectly mapped to the (lower)
23714           H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
23715
23716 2013-12-04 18:48:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23717
23718         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23719         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23720         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23721         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23722           encoder: simplify VA context initialization process.
23723           Change get_context_info() into a set_context_info() function that
23724           initializes common defaults into the base class, thus allowing the
23725           subclasses to specialize the context info further on.
23726           The set_context_info() hook is also the location where additional
23727           context specific data could be initialized. At this point, we are
23728           guaranteed to have valid video resolution size and framerate. i.e.
23729           gst_vaapi_encoder_set_format() was called beforehand.
23730
23731 2013-11-26 14:38:23 +0800  Wind Yuan <feng.yuan@intel.com>
23732
23733         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23734           encoder: fix mpeg2 compilation error.
23735           https://bugzilla.gnome.org/show_bug.cgi?id=719746
23736           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23737
23738 2013-12-04 17:55:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23739
23740         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23741         * gst-libs/gst/vaapi/gstvaapiencoder.h:
23742         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23743         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23744         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23745         * gst/vaapi/gstvaapiencode.c:
23746           encoder: clean-ups and document public APIs.
23747           Clean public APIs up so that to better align with the decoder APIs.
23748           Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
23749           return the VA coded buffer proxy. Also provide useful documentation
23750           for the public APIs.
23751
23752 2013-12-04 17:05:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23753
23754         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23755         * gst-libs/gst/vaapi/gstvaapiencoder.h:
23756         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23757           encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
23758           Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
23759           allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
23760           through GstVaapiCodedBufferProxy user-data facility.
23761           Besides, use a GAsyncQueue to maintain a thread-safe queue object of
23762           coded buffers.
23763           Partial fix for the following report:
23764           https://bugzilla.gnome.org/show_bug.cgi?id=719530
23765
23766 2013-12-03 17:04:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23767
23768         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23769         * gst-libs/gst/vaapi/gstvaapiencoder.h:
23770         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23771         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23772         * gst/vaapi/gstvaapiencode.c:
23773           encoder: refactor status codes.
23774           Drop obsolete or unused status codes. Align some status codes with the
23775           decoder counterparts.
23776
23777 2013-12-04 11:54:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23778
23779         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23780         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23781         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23782         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23783         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23784         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23785           encoder: fix subclassing process.
23786           Fix the GstVaapiEncoderClass parent class type. Make sure to validate
23787           subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
23788           thus avoiding useless run-time checks. Also simplify the subclass
23789           initialization process to be less error prone.
23790
23791 2013-12-03 16:11:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23792
23793           encoder: rework GstVaapiCodedBuffer and related proxy.
23794           Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
23795           public and private interfaces. Besides, the map/unmap APIs should not
23796           be exposed as is but appropriate accessors should be provided instead.
23797           * GstVaapiCodedBuffer: VA coded buffer abstraction
23798           - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
23799           - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
23800           * GstVaapiCodedBufferPool: pool of VA coded buffer objects
23801           - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
23802           the specified max size, and bound to the supplied encoder
23803           * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
23804           - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
23805           - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
23806           - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
23807           Rationale: more optimized transfer functions might be provided in the
23808           future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
23809           https://bugzilla.gnome.org/show_bug.cgi?id=719775
23810
23811 2013-11-29 14:02:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23812
23813         * gst/vaapi/gstvaapidecode.c:
23814         * gst/vaapi/gstvaapiencode.c:
23815         * gst/vaapi/gstvaapipostproc.c:
23816         * gst/vaapi/gstvaapisink.c:
23817           plugins: fix reference leaks of VA display objects.
23818           Fix GstElement::set_context() implementation for all plug-in elements
23819           to avoid leaking an extra reference to the VA display, thus preventing
23820           correct cleanup of VA resources in GStreamer 1.2 builds.
23821
23822 2013-11-29 13:56:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23823
23824         * gst/vaapi/gstvaapipluginutil.c:
23825         * gst/vaapi/gstvaapivideocontext.c:
23826           plugins: simplify gst_vaapi_ensure_display().
23827           Return earlier if the creation of a VA display failed. Likewise, simplify
23828           gst_vaapi_video_context_propagate() now that we are guaranteed to have a
23829           valid VA display.
23830
23831 2013-11-28 19:08:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23832
23833         * gst/vaapi/gstvaapivideomemory.c:
23834           plugins: fix memory leaks through GstVideoMeta maps.
23835           When GstVideoMeta maps were used, the supporting functions incorrectly
23836           used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
23837           always increasing the associated GstMemory reference count and giving
23838           zero chance to actually release that, and subsequently the VA display.
23839
23840 2013-11-28 14:15:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23841
23842         * gst-libs/gst/vaapi/gstvaapifilter.c:
23843         * gst/vaapi/gstvaapiencode_h264.c:
23844         * gst/vaapi/gstvaapiencode_mpeg2.c:
23845         * gst/vaapi/gstvaapipostproc.c:
23846         * gst/vaapi/gstvaapisink.c:
23847         * gst/vaapi/gstvaapiuploader.c:
23848           plugins: use G_PARAM_STATIC_STRINGS.
23849           This avoids a few string copies during initialization.
23850
23851 2013-11-28 17:28:11 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23852
23853         * gst/vaapi/gstvaapivideometa.c:
23854           plugins: simplify VA video meta to only reference surface proxies.
23855           Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
23856           now allocated from a surface pool. This also means that the local
23857           reference to the VA surface is also gone, as it could be extracted
23858           from the associated surface proxy.
23859
23860 2013-11-28 16:51:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23861
23862         * gst/vaapi/gstvaapivideobuffer.c:
23863         * gst/vaapi/gstvaapivideobuffer.h:
23864         * gst/vaapi/gstvaapivideometa.c:
23865         * gst/vaapi/gstvaapivideometa.h:
23866           plugins: drop obsolete functions.
23867           Drop the following functions that are not longer used:
23868           - gst_vaapi_video_buffer_new_with_surface()
23869           - gst_vaapi_video_meta_new_with_surface()
23870           - gst_vaapi_video_meta_set_surface()
23871           - gst_vaapi_video_meta_set_surface_from_pool()
23872
23873 2013-11-28 16:37:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23874
23875         * gst/vaapi/gstvaapivideometa.c:
23876           plugins: allow VA video meta to be allocated from surface proxy pools.
23877           Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
23878           from surface pools instead of plain VA surfaces. This is to simplify
23879           allocations now that surface proxies are created from a surface pool.
23880
23881 2013-11-28 17:25:05 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23882
23883         * docs/reference/libs/libs-sections.txt:
23884         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
23885         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
23886         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
23887           surfaceproxy: add copy function.
23888           Add gst_vaapi_surface_proxy_copy() function that creates a new surface
23889           proxy with the same information from the parent proxy, except that the
23890           user-defined destroy notify function is not copied over.
23891           The underlying VA surface is pushed back to the video pool only when
23892           the last reference to the parent surface proxy is released.
23893
23894 2013-11-28 15:56:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23895
23896         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23897         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23898         * gst/vaapi/gstvaapiencode.c:
23899           vaapiencode: optimize _handle_frame() to avoid extra allocation.
23900           Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
23901           and in particular the GstVaapiEncObjUserData object. i.e. directly use
23902           the VA surface proxy from the source buffer. This also makes the user
23903           data attached to the GstVideoCodecFrame more consistent between both
23904           the decoder and encoder plug-in elements.
23905
23906 2013-11-28 15:14:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23907
23908         * gst/vaapi/gstvaapiencode.c:
23909           vaapiencode: fix memory leaks in _push_frame() on error.
23910           Simplify gst_vaapiencode_push_frame(), while also removing the call
23911           to gst_video_encoder_negotiate() since this is implicit in _finish()
23912           if caps changed. Also fixed memory leaks that occured on error.
23913
23914 2013-11-28 13:57:54 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23915
23916         * gst/vaapi/gstvaapiencode.c:
23917         * gst/vaapi/gstvaapiencode.h:
23918         * gst/vaapi/gstvaapiencode_h264.c:
23919         * gst/vaapi/gstvaapiencode_h264.h:
23920         * gst/vaapi/gstvaapiencode_mpeg2.c:
23921           vaapiencode: additional clean-ups.
23922           Constify pointers wherever possible. Drop unused variables, and use
23923           consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
23924           to correctly report errors, especially when in-place conversion from
23925           bytestream to avcC format failed.
23926
23927 2013-11-28 13:26:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23928
23929         * gst/vaapi/gstvaapiencode.c:
23930         * gst/vaapi/gstvaapiencode.h:
23931         * gst/vaapi/gstvaapiencode_h264.c:
23932         * gst/vaapi/gstvaapiencode_h264.h:
23933         * gst/vaapi/gstvaapiencode_mpeg2.c:
23934         * gst/vaapi/gstvaapiencode_mpeg2.h:
23935           vaapiencode: move common properties to base class.
23936           Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
23937           base class. The actual range of supported rate control modes is currently
23938           implemented as a plug-in element hook. This ought to be determined from
23939           the GstVaapiEncoder object instead, i.e. from libgstvaapi.
23940
23941 2013-11-28 10:54:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23942
23943         * gst/vaapi/gstvaapiencode_h264.c:
23944         * gst/vaapi/gstvaapiencode_mpeg2.c:
23945           vaapiencode: fix plugin description and debug name.
23946           Align the plug-in debug category to its actual name. i.e. enable debug
23947           logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
23948           the plug-in element description to make it more consistent with other
23949           VA-API plug-ins.
23950
23951 2013-11-27 16:27:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23952
23953         * configure.ac:
23954         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23955         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23956         * gst-libs/gst/video/Makefile.am:
23957         * gst/vaapi/gstvaapiencode.c:
23958         * gst/vaapi/gstvaapiencode.h:
23959         * gst/vaapi/gstvaapiencode_h264.c:
23960         * gst/vaapi/gstvaapiencode_mpeg2.c:
23961           vaapiencode: add initial support for GStreamer 0.10.
23962
23963 2013-11-27 16:25:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23964
23965         * gst-libs/gst/vaapi/gstcompat.h:
23966           libs: add more GstBuffer compat glue for GStreamer 0.10.
23967           Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
23968           Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
23969           notify function.
23970
23971 2013-11-27 15:56:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23972
23973         * configure.ac:
23974         * gst-libs/gst/video/Makefile.am:
23975           libs: always use built-in videoutils for GStreamer 0.10.
23976           GStreamer 0.10.36 is the latest and ultimate version to be released
23977           from the GStreamer 0.10 branch. i.e. no further releases are to be
23978           made. So, we can safely enable the built-in videoutils replacement
23979           now that they are in sync with the 0.10 branch.
23980
23981 2013-11-27 15:47:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23982
23983         * ext/videoutils:
23984           videoutils: update to master commit d4a15a5.
23985           d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
23986           86096cc videodecoder: minor cosmetic changes to align a bit more with master
23987           b4b8b52 videodecoder: allow parse function to not use all data on adapter
23988           2145495 videodecoder: warn if frame list gets long
23989           36c3753 videodecoder: Also use the object lock to protect the output_state
23990           518c93d videodecoder: fix seeking again
23991           185fb63 video: Correct usage of the base class stream lock
23992           170e944 videodecoder: Expose _negotiate function
23993
23994 2013-11-26 12:06:07 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
23995
23996         * configure.ac:
23997         * gst-libs/gst/vaapi/Makefile.am:
23998         * tests/Makefile.am:
23999           Fix build with GStreamer >= 1.3.
24000           http://bugzilla.gnome.org/show_bug.cgi?id=715183
24001           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24002
24003 2013-11-26 17:56:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24004
24005         * configure.ac:
24006           configure: disable encoders with GStreamer 0.10.
24007           Don't try to build video encoders for GStreamer 0.10. Support code is
24008           not there yet, and probably will never for such an ancient version.
24009
24010 2013-11-26 17:26:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24011
24012         * gst/vaapi/gstvaapiencode.c:
24013           vaapiencode: fix error handling while allocating output buffers.
24014           Fix default GstVideoEncoder::allocate_buffer() implementation to properly
24015           unmap the coded buffer prior to returning an error.
24016
24017 2013-11-26 17:11:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24018
24019         * gst/vaapi/gstvaapiencode.c:
24020           vaapiencode: fix error handling in _finish() hook.
24021           Fix GstVideoEncoder::finish() implementation to really return possible
24022           errors instead of GST_FLOW_OK. That is, fix check for timeout status.
24023
24024 2013-11-26 16:34:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24025
24026         * gst/vaapi/gstvaapiencode.c:
24027         * gst/vaapi/gstvaapiencode.h:
24028         * gst/vaapi/gstvaapiencode_h264.c:
24029         * gst/vaapi/gstvaapiencode_h264.h:
24030         * gst/vaapi/gstvaapiencode_mpeg2.c:
24031         * gst/vaapi/gstvaapiencode_mpeg2.h:
24032           vaapiencode: minor clean-ups.
24033           Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
24034           the GObject type system. We are guaranteed to only deal with the same
24035           plug-in element object.
24036
24037 2013-11-26 15:31:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24038
24039         * gst/vaapi/gstvaapiencode.c:
24040         * gst/vaapi/gstvaapiencode_h264.c:
24041         * gst/vaapi/gstvaapiencode_mpeg2.c:
24042           vaapiencode: fix support for raw YUV sink buffers.
24043           Allow vaapiencode plug-in elements to encode from raw YUV buffers.
24044           The most efficient way to do so is to let the vaapiencode elements
24045           allocate a buffer pool, and subsequently buffers from it. This means
24046           that upstream elements are expected to honour downstream pools.
24047           If upstream elements insist on providing their own allocated buffers
24048           to the vaapiencode elements, then it possibly would be more efficient
24049           to insert a vaapipostproc element before the vaapiencode element.
24050           This is because vaapipostproc currently has better support than other
24051           elements for "foreign" raw YUV buffers.
24052
24053 2013-11-26 15:12:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24054
24055         * gst/vaapi/gstvaapiencode.c:
24056           vaapiencode: fix support for GStreamer 1.2.
24057
24058 2013-11-07 17:42:21 +0800  Wind Yuan <feng.yuan@intel.com>
24059
24060         * gst/vaapi/gstvaapiencode.c:
24061         * gst/vaapi/gstvaapiencode_h264.c:
24062         * gst/vaapi/gstvaapiencode_mpeg2.c:
24063           vaapiencode: initial port to GStreamer 1.2.
24064           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24065
24066 2013-11-20 16:21:32 +0800  XuGuangxin <guangxin.xu@intel.com>
24067
24068         * gst/vaapi/Makefile.am:
24069         * gst/vaapi/gstvaapi.c:
24070         * gst/vaapi/gstvaapiencode_mpeg2.c:
24071         * gst/vaapi/gstvaapiencode_mpeg2.h:
24072           plugins: add mpeg2 encoder element.
24073           Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
24074           is called "vaapiencode_mpeg2".
24075           Valid properties:
24076           - rate-control: rate control mode (default: cqp - constant QP)
24077           - bitrate: desired bitrate in kbps (default: auto-calculated)
24078           - key-period: maximal distance between two key frames (default: 30)
24079           - max-bframes: number of B-frames between I and P (default: 2)
24080           - quantizer: constant quantizer (default: 8)
24081           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24082
24083 2013-07-29 16:02:56 +0800  Wind Yuan <feng.yuan@intel.com>
24084
24085         * gst/vaapi/Makefile.am:
24086         * gst/vaapi/gstvaapi.c:
24087         * gst/vaapi/gstvaapiencode_h264.c:
24088         * gst/vaapi/gstvaapiencode_h264.h:
24089           plugins: add h264 encoder element.
24090           Add GstVaapiEncodeH264 element object. The actual plug-in element
24091           is called "vaapiencode_h264".
24092           Valid properties:
24093           - rate-control: rate control mode (default: none)
24094           - bitrate: desired bitrate in kbps (default: auto-calculated)
24095           - key-period: maximal distance between two key frames (default: 30)
24096           - num-slices: number of slices per frame (default: 1)
24097           - max-bframes: number of B-frames between I and P (default: 0)
24098           - min-qp: minimal quantizer (default: 1)
24099           - init-qp: initial quantizer (default: 26)
24100           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24101
24102 2013-07-29 13:44:48 +0800  Wind Yuan <feng.yuan@intel.com>
24103
24104         * gst/vaapi/Makefile.am:
24105         * gst/vaapi/gstvaapiencode.c:
24106         * gst/vaapi/gstvaapiencode.h:
24107           plugins: add base encoder element.
24108           vaapiencode element is based on GstVideoEncoder APIs.
24109           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24110
24111 2013-11-20 16:20:15 +0800  XuGuangxin <guangxin.xu@intel.com>
24112
24113         * gst-libs/gst/vaapi/Makefile.am:
24114         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
24115         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
24116         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
24117           encoder: add mpeg2 encoder.
24118           Add initial support for MPEG-2 encoding. I/P/B frames are supported.
24119           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24120
24121 2013-07-29 15:46:11 +0800  Wind Yuan <feng.yuan@intel.com>
24122
24123         * gst-libs/gst/vaapi/Makefile.am:
24124         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
24125         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
24126         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
24127           encoder: add h264 encoder.
24128           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24129
24130 2013-07-29 13:34:06 +0800  Wind Yuan <feng.yuan@intel.com>
24131
24132         * configure.ac:
24133         * gst-libs/gst/vaapi/Makefile.am:
24134         * gst-libs/gst/vaapi/gstvaapiencoder.c:
24135         * gst-libs/gst/vaapi/gstvaapiencoder.h:
24136         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
24137         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
24138         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24139           Add initial infrastructure for video encoding.
24140           Add initial API for video encoding: only basic interfaces and small
24141           encoder objects are implemented so far.
24142           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24143
24144 2013-07-29 15:41:23 +0800  Wind Yuan <feng.yuan@intel.com>
24145
24146         * configure.ac:
24147         * gst-libs/gst/Makefile.am:
24148         * gst-libs/gst/base/Makefile.am:
24149         * gst-libs/gst/base/gstbitwriter.c:
24150         * gst-libs/gst/base/gstbitwriter.h:
24151         * gst-libs/gst/vaapi/Makefile.am:
24152           libs: add generic bitstream writer.
24153           GstBitWriter provides a bit writer that can write any number of bits
24154           to a pre-allocated memory buffer. Helper functions are also provided
24155           to write any number of bits from 8, 16, 32 and 64 bit variables.
24156           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24157
24158 2013-07-12 22:07:59 +0800  Wind Yuan <feng.yuan@intel.com>
24159
24160         * gst-libs/gst/vaapi/gstvaapicontext.c:
24161         * gst-libs/gst/vaapi/gstvaapicontext.h:
24162           libs: add support for rate-control to GstVaapiContext.
24163           Extend GstVaapiContextInfo structure to hold the desired rate control
24164           mode for encoding purposes. For decoding purposes, this field is not
24165           used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
24166           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24167
24168 2013-07-12 21:33:32 +0800  Wind Yuan <feng.yuan@intel.com>
24169
24170         * gst-libs/gst/vaapi/gstvaapitypes.h:
24171         * gst-libs/gst/vaapi/gstvaapiutils.c:
24172         * gst-libs/gst/vaapi/gstvaapiutils.h:
24173         * gst-libs/gst/vaapi/gstvaapivalue.c:
24174         * gst-libs/gst/vaapi/gstvaapivalue.h:
24175           libs: add rate-control attributes.
24176           Add GstVaapiRateControl types and GType values in view to supporting
24177           rate controls for encoding. This is meant to be used for instance in
24178           GstVaapiContext.
24179           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24180
24181 2013-11-22 11:56:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24182
24183         * configure.ac:
24184           Bump version for development.
24185
24186 2013-11-22 11:28:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24187
24188         * gst/vaapi/Makefile.am:
24189           build: fix for Wayland headers not in standard include dirs.
24190           Fix build when Wayland headers don't live in plain system include dirs
24191           like /usr/include but rather in /usr/include/wayland for instance.
24192           Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
24193           https://bugzilla.gnome.org/show_bug.cgi?id=712282
24194
24195 2013-11-14 10:58:37 +0000  Ross Burton <ross.burton@intel.com>
24196
24197         * gst-libs/gst/vaapi/Makefile.am:
24198           build: link libgstvaapi-wayland against videoutils.
24199           This library is using symbols that don't exist in GStreamer 0.10 so
24200           it needs to link to built-in implementation (libgstvaapi-videoutils).
24201           https://bugzilla.gnome.org/show_bug.cgi?id=712282
24202           Signed-off-by: Ross Burton <ross.burton@intel.com>
24203           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24204
24205 2013-11-22 11:15:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24206
24207         * gst-libs/gst/vaapi/gstvaapifilter.c:
24208         * gst/vaapi/gstvaapipostproc.c:
24209           vaapostproc: fix memory leaks.
24210           Destroy VPP output surface pool on exit. Also avoid a possible crash
24211           in double-free situation caused by insufficiently reference counted
24212           array of formats returned during initialization.
24213
24214 2013-11-22 10:19:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24215
24216         * gst/vaapi/gstvaapipostproc.c:
24217         * gst/vaapi/gstvaapipostproc.h:
24218           vaapipostproc: fix and optimize advanced deinterlacing mode.
24219           Fix advanced deinterlacing modes with VPP to track only up to 2 past
24220           reference buffers. This used to be 3 past reference buffers but this
24221           doesn't fit with the existing decode pipeline that only has 4 extra
24222           scratch surfaces.
24223           Also optimize references tracking to be only enabled when needed, i.e.
24224           when advanced deinterlacing mode is used. This means that we don't
24225           need to track past references for basic bob or weave deinterlacing.
24226
24227 2013-11-22 10:04:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24228
24229         * gst/vaapi/gstvaapipostproc.c:
24230           vaapipostproc: fix "mixed" mode deinterlacing.
24231           In "mixed" interlaced streams, the buffer contains additional flags that
24232           specify whether the frame contained herein is interlaced or not. This means
24233           that we can alternatively get progressive or interlaced frames. Make sure
24234           to disable deinterlacing at the VPP level when the source buffer is no longer
24235           interlaced.
24236
24237 2013-11-22 09:49:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24238
24239         * gst/vaapi/gstvaapipostproc.c:
24240           vaapipostproc: fix memory leaks with advanced deinterlacing.
24241           Fix memory leaks with advanced deinterlacing, i.e. when we keep track
24242           of past buffers. Completely reset the deinterlace state, thus destroying
24243           any buffer currently held, on _start(), _stop() and _destroy().
24244
24245 2013-11-22 06:59:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24246
24247         * README:
24248           README: updates.
24249           - GStreamer 1.2 APIs are supported ;
24250           - Video Processing (VA/VPP) features.
24251
24252 2013-11-22 06:45:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24253
24254         * README:
24255           README: update for GStreamer >= 1.0.x and VPP features.
24256
24257 2013-11-22 06:37:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24258
24259         * gst-libs/gst/vaapi/glibcompat.h:
24260         * gst-libs/gst/vaapi/gstvaapicontext.h:
24261         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24262         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24263         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24264         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24265         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24266         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24267         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24268         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24269         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24270         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24271         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24272         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24273         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24274         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24275         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24276         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24277         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24278         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24279         * gst-libs/gst/vaapi/gstvaapiimage.c:
24280         * gst-libs/gst/vaapi/gstvaapiimage.h:
24281         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24282         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24283         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24284         * gst-libs/gst/vaapi/gstvaapiobject.c:
24285         * gst-libs/gst/vaapi/gstvaapiobject.h:
24286         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24287         * gst-libs/gst/vaapi/gstvaapiprofile.c:
24288         * gst-libs/gst/vaapi/gstvaapisurface.h:
24289         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24290         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24291         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24292         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24293         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24294         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24295         * gst-libs/gst/vaapi/gstvaapitexture.c:
24296         * gst-libs/gst/vaapi/gstvaapitexture.h:
24297         * gst-libs/gst/vaapi/gstvaapitypes.h:
24298         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24299         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24300         * gst-libs/gst/vaapi/gstvaapivalue.c:
24301         * gst-libs/gst/vaapi/gstvaapivalue.h:
24302         * gst-libs/gst/vaapi/gstvaapivideopool.c:
24303         * gst-libs/gst/vaapi/gstvaapivideopool.h:
24304         * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24305         * gst-libs/gst/vaapi/gstvaapiwindow.c:
24306         * gst-libs/gst/vaapi/gstvaapiwindow.h:
24307         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24308         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24309         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24310         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24311         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24312         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24313         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24314         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24315         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24316         * gst/vaapi/gstvaapi.c:
24317         * gst/vaapi/gstvaapidecode.h:
24318         * gst/vaapi/gstvaapidownload.h:
24319         * gst/vaapi/gstvaapipluginutil.c:
24320         * gst/vaapi/gstvaapipluginutil.h:
24321         * gst/vaapi/gstvaapipostproc.h:
24322         * gst/vaapi/gstvaapisink.h:
24323         * gst/vaapi/gstvaapivideoconverter_glx.h:
24324         * tests/image.c:
24325         * tests/image.h:
24326         * tests/output.h:
24327         * tests/test-display.c:
24328         * tests/test-jpeg.c:
24329         * tests/test-jpeg.h:
24330         * tests/test-mpeg4.c:
24331         * tests/test-mpeg4.h:
24332         * tests/test-surfaces.c:
24333         * tests/test-windows.c:
24334           legal: update copyright notice dates.
24335
24336 2013-11-22 05:57:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24337
24338         * gst-libs/gst/vaapi/glibcompat.h:
24339         * gst-libs/gst/vaapi/gstcompat.h:
24340         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24341         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24342         * gst-libs/gst/vaapi/gstvaapicompat.h:
24343         * gst-libs/gst/vaapi/gstvaapicontext.c:
24344         * gst-libs/gst/vaapi/gstvaapicontext.h:
24345         * gst-libs/gst/vaapi/gstvaapidebug.h:
24346         * gst-libs/gst/vaapi/gstvaapidecoder.c:
24347         * gst-libs/gst/vaapi/gstvaapidecoder.h:
24348         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
24349         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
24350         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24351         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24352         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24353         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24354         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24355         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24356         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24357         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24358         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24359         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24360         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24361         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
24362         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
24363         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24364         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24365         * gst-libs/gst/vaapi/gstvaapidisplay.c:
24366         * gst-libs/gst/vaapi/gstvaapidisplay.h:
24367         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24368         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24369         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24370         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24371         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24372         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24373         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24374         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24375         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24376         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24377         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24378         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24379         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24380         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24381         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24382         * gst-libs/gst/vaapi/gstvaapifilter.c:
24383         * gst-libs/gst/vaapi/gstvaapifilter.h:
24384         * gst-libs/gst/vaapi/gstvaapiimage.c:
24385         * gst-libs/gst/vaapi/gstvaapiimage.h:
24386         * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
24387         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24388         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24389         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
24390         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24391         * gst-libs/gst/vaapi/gstvaapiobject.c:
24392         * gst-libs/gst/vaapi/gstvaapiobject.h:
24393         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24394         * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
24395         * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
24396         * gst-libs/gst/vaapi/gstvaapipixmap.c:
24397         * gst-libs/gst/vaapi/gstvaapipixmap.h:
24398         * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
24399         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
24400         * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
24401         * gst-libs/gst/vaapi/gstvaapiprofile.c:
24402         * gst-libs/gst/vaapi/gstvaapiprofile.h:
24403         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24404         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24405         * gst-libs/gst/vaapi/gstvaapisurface.c:
24406         * gst-libs/gst/vaapi/gstvaapisurface.h:
24407         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24408         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24409         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24410         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24411         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24412         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24413         * gst-libs/gst/vaapi/gstvaapitexture.c:
24414         * gst-libs/gst/vaapi/gstvaapitexture.h:
24415         * gst-libs/gst/vaapi/gstvaapitypes.h:
24416         * gst-libs/gst/vaapi/gstvaapiutils.c:
24417         * gst-libs/gst/vaapi/gstvaapiutils.h:
24418         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24419         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24420         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24421         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24422         * gst-libs/gst/vaapi/gstvaapivalue.c:
24423         * gst-libs/gst/vaapi/gstvaapivalue.h:
24424         * gst-libs/gst/vaapi/gstvaapivideopool.c:
24425         * gst-libs/gst/vaapi/gstvaapivideopool.h:
24426         * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24427         * gst-libs/gst/vaapi/gstvaapiwindow.c:
24428         * gst-libs/gst/vaapi/gstvaapiwindow.h:
24429         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24430         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24431         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24432         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24433         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24434         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24435         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24436         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24437         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24438         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24439         * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24440         * gst-libs/gst/vaapi/sysdeps.h:
24441         * gst-libs/gst/vaapi/video-format.c:
24442         * gst-libs/gst/vaapi/video-format.h:
24443         * gst/vaapi/gstvaapi.c:
24444         * gst/vaapi/gstvaapidecode.c:
24445         * gst/vaapi/gstvaapidecode.h:
24446         * gst/vaapi/gstvaapidownload.c:
24447         * gst/vaapi/gstvaapidownload.h:
24448         * gst/vaapi/gstvaapipluginutil.c:
24449         * gst/vaapi/gstvaapipluginutil.h:
24450         * gst/vaapi/gstvaapipostproc.c:
24451         * gst/vaapi/gstvaapipostproc.h:
24452         * gst/vaapi/gstvaapisink.c:
24453         * gst/vaapi/gstvaapisink.h:
24454         * gst/vaapi/gstvaapiupload.c:
24455         * gst/vaapi/gstvaapiupload.h:
24456         * gst/vaapi/gstvaapiuploader.c:
24457         * gst/vaapi/gstvaapiuploader.h:
24458         * gst/vaapi/gstvaapivideobuffer.c:
24459         * gst/vaapi/gstvaapivideobuffer.h:
24460         * gst/vaapi/gstvaapivideobufferpool.c:
24461         * gst/vaapi/gstvaapivideobufferpool.h:
24462         * gst/vaapi/gstvaapivideocontext.c:
24463         * gst/vaapi/gstvaapivideocontext.h:
24464         * gst/vaapi/gstvaapivideoconverter_glx.c:
24465         * gst/vaapi/gstvaapivideoconverter_glx.h:
24466         * gst/vaapi/gstvaapivideoconverter_x11.c:
24467         * gst/vaapi/gstvaapivideoconverter_x11.h:
24468         * gst/vaapi/gstvaapivideomemory.c:
24469         * gst/vaapi/gstvaapivideomemory.h:
24470         * gst/vaapi/gstvaapivideometa.c:
24471         * gst/vaapi/gstvaapivideometa.h:
24472         * gst/vaapi/gstvaapivideometa_texture.c:
24473         * gst/vaapi/gstvaapivideometa_texture.h:
24474         * tests/codec.c:
24475         * tests/codec.h:
24476         * tests/decoder.c:
24477         * tests/decoder.h:
24478         * tests/image.c:
24479         * tests/image.h:
24480         * tests/output.c:
24481         * tests/output.h:
24482         * tests/simple-decoder.c:
24483         * tests/test-decode.c:
24484         * tests/test-decode.h:
24485         * tests/test-display.c:
24486         * tests/test-filter.c:
24487         * tests/test-h264.c:
24488         * tests/test-h264.h:
24489         * tests/test-jpeg.c:
24490         * tests/test-jpeg.h:
24491         * tests/test-mpeg2.c:
24492         * tests/test-mpeg2.h:
24493         * tests/test-mpeg4.c:
24494         * tests/test-mpeg4.h:
24495         * tests/test-surfaces.c:
24496         * tests/test-textures.c:
24497         * tests/test-vc1.c:
24498         * tests/test-vc1.h:
24499         * tests/test-windows.c:
24500           legal: add per-file authorship information.
24501           Credit original authors on a per-file basis as we cannot expect people
24502           to know all country-specific rules, or bother browsing through the git
24503           history.
24504
24505 2013-11-21 23:52:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24506
24507         * NEWS:
24508         * configure.ac:
24509           0.5.7.
24510
24511 2013-11-21 23:51:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24512
24513         * NEWS:
24514           NEWS: updates.
24515
24516 2013-11-21 23:17:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24517
24518         * gst-libs/gst/vaapi/gstvaapidecoder.h:
24519           decoder: don't include obsolete headers.
24520           The <gst/vaapi/gstvaapicontext.h> header was removed from the public
24521           set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
24522           on private files.
24523
24524 2013-11-18 16:20:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24525
24526         * gst/vaapi/Makefile.am:
24527         * gst/vaapi/gstvaapi.c:
24528         * gst/vaapi/gstvaapipostproc.c:
24529           vaapipostproc: add initial support for GStreamer 1.2.
24530           Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
24531           right now so that to cope with auto-plugging issues/regressions. e.g.
24532           this happens when the correct set of expected caps are being exposed.
24533           This means that, currently, the proposed caps are not fully accurate.
24534
24535 2013-11-01 10:22:17 +0800  Halley Zhao <halley.zhao@intel.com>
24536
24537         * gst/vaapi/gstvaapipostproc.c:
24538         * gst/vaapi/gstvaapipostproc.h:
24539           vaapipostproc: add support for denoise and sharpen filters.
24540           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24541
24542 2013-11-21 19:52:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24543
24544         * gst/vaapi/gstvaapipostproc.c:
24545         * gst/vaapi/gstvaapipostproc.h:
24546           vaapipostproc: add support for advanced deinterlacing.
24547           Add initial support for advanced deinterlacing. The history buffer
24548           size is arbitrarily set to 3 references for now.
24549
24550 2013-11-21 22:32:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24551
24552         * gst/vaapi/gstvaapipostproc.c:
24553           vaapipostproc: fix deinterlacing with VPP.
24554           Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
24555           for the first field. Render flags were supplied instead of the actual
24556           deinterlacing flags (deint_flags).
24557
24558 2013-11-21 15:08:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24559
24560         * gst/vaapi/gstvaapipostproc.c:
24561           vaapipostproc: fix transform caps.
24562           Fix GstBaseTransform::transform_caps() implementation to always return
24563           the complete set of allowed sink pad caps (unfixated) even if the src
24564           pad caps we are getting are fixated. Rationale: there are just so many
24565           possible combinations, and it was wrong to provide a unique set anyway.
24566           As a side effect, this greatly simplifies the ability to derive src pad
24567           caps from fixated sink pad caps.
24568
24569 2013-11-01 10:31:13 +0800  Halley Zhao <halley.zhao@intel.com>
24570
24571         * docs/reference/libs/libs-sections.txt:
24572         * gst-libs/gst/vaapi/gstvaapifilter.c:
24573         * gst-libs/gst/vaapi/gstvaapifilter.h:
24574           filter: add helper to specify references for deinterlacing.
24575           Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
24576           list of surfaces used for forward or backward reference in advanced
24577           deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
24578           The list of surfaces used as deinterlacing references shall be live
24579           until the next call to gst_vaapi_filter_process().
24580           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24581
24582 2013-11-21 18:44:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24583
24584         * gst-libs/gst/vaapi/gstvaapifilter.c:
24585         * gst-libs/gst/vaapi/gstvaapifilter.h:
24586         * gst-libs/gst/vaapi/gstvaapiutils.c:
24587         * gst/vaapi/gstvaapipostproc.c:
24588         * tests/test-filter.c:
24589           filter: fix semantics of deinterlacing flags.
24590           Fix deinterlacing flags to make more sense. The TFF (top-field-first)
24591           flag is meant to specify the organization of reference frames used in
24592           advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
24593           to specify that the top-field of the supplied input surface is to be
24594           used for deinterlacing. Conversely, if not set, this means that the
24595           bottom field of the supplied input surface will be used instead.
24596
24597 2013-11-21 17:20:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24598
24599         * docs/reference/libs/libs-sections.txt:
24600         * gst-libs/gst/vaapi/gstvaapifilter.c:
24601         * gst-libs/gst/vaapi/gstvaapifilter.h:
24602           filter: add helpers to check for supported/active operation.
24603           Add a couple of helper functions:
24604           - gst_vaapi_filter_has_operation(): checks whether the VA driver
24605           advertises support for the supplied operation ;
24606           - gst_vaapi_filter_use_operation(): checks whether the supplied
24607           operation was already enabled to its non-default value.
24608
24609 2013-11-20 15:10:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24610
24611         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24612           libs: fix GstVaapiSurfaceProxy destroy notify call site.
24613           The user-defined destroy notify function is meant to be called only when
24614           the surface proxy was fully released, i.e. once it actually released the
24615           VA surface back to the underlying pool.
24616
24617 2013-08-29 13:44:22 +0800  XuGuangxin <guangxin.xu@intel.com>
24618
24619         * gst-libs/gst/vaapi/gstvaapivideopool.c:
24620         * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24621           libs: make GstVaapiVideoPool thread-safe.
24622           https://bugzilla.gnome.org/show_bug.cgi?id=707108
24623           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24624
24625 2013-08-29 14:04:06 +0800  XuGuangxin <guangxin.xu@intel.com>
24626
24627         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24628         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24629           libs: robustify decoder objects and surface proxy initialization.
24630           Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
24631           sequences to have the expected default values set beforehand in case of an
24632           error raising up further during creation. i.e. make it possible to cleanly
24633           destroy those partially initialized objects.
24634           https://bugzilla.gnome.org/show_bug.cgi?id=707108
24635           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24636
24637 2013-11-21 11:01:41 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24638
24639         * gst/vaapi/gstvaapidecode.c:
24640           vaapidecode: fix decoder flush.
24641           There are situations where gst_video_decoder_flush() is called, and
24642           this subsequently produces a gst_video_decoder_reset() that kills the
24643           currently active GstVideoCodecFrame. This means that it no longer
24644           exists by the time we reach GstVideoDecoder::finish() callback, thus
24645           possibly resulting in a crash if we assumed spare data was still
24646           available for decode (current_frame_size > 0).
24647           Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
24648           that means a flush, thus performing the actual operations there like
24649           calling gst_video_decoder_have_frame() if pending data is available.
24650
24651 2013-11-20 19:21:05 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24652
24653         * gst/vaapi/gstvaapidecode.c:
24654         * gst/vaapi/gstvaapidecode.h:
24655           vaapidecode: fix dead-locks with decoder task.
24656           Review all interactions between the main video decoder stream thread
24657           and the decode task to derive a correct sequence of operations for
24658           decoding. Also avoid extra atomic operations that become implicit under
24659           the GstVideoDecoder stream lock.
24660
24661 2013-08-29 14:12:10 +0800  XuGuangxin <guangxin.xu@intel.com>
24662
24663         * gst/vaapi/gstvaapidecode.c:
24664           vaapidecode: fix hard reset for seek cases.
24665           Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
24666           and completely purge any decoded output frame that may come out from
24667           it. At this stage, the GstVaapiDecoder shall be in a complete clean
24668           state to start decoding over new buffers.
24669           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24670
24671 2013-08-29 14:12:10 +0800  XuGuangxin <guangxin.xu@intel.com>
24672
24673         * gst/vaapi/gstvaapidecode.c:
24674         * gst/vaapi/gstvaapidecode.h:
24675           vaapidecode: drop decode timeout, always wait for a free surface.
24676           vaapidecode used to wait up to one second past the expected time of
24677           presentation for the last decoded frame. This is not realistic in
24678           practice when it comes to video pause/resume. Changed behaviour to
24679           unconditionnally wait for a free VA surface prior to continuing the
24680           decoding. The decode task will continue pushing the output frames to
24681           the downstream element while also reporting errors at the same time
24682           to the main thread.
24683           https://bugzilla.gnome.org/show_bug.cgi?id=707108
24684           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24685
24686 2013-11-20 10:56:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24687
24688         * gst/vaapi/gstvaapidecode.c:
24689           vaapidecode: fix srcpad caps for GStreamer 1.2.
24690           The srcpad caps exposed for GStreamer 1.2 were missing any useful info
24691           like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
24692           that it relied on possibly un-initialized data. Fix srcpad caps to be
24693           initialized from a sanitized copy of GstVideoDecoder output state caps.
24694           Note: the correct way to expose the srcpad caps triggers an additional
24695           issue in core GStreamer auto-plugging capabilities as the correct caps
24696           to be exposed should be format=ENCODED with memory:VASurface caps feature
24697           at the minimum. In some situations, we could determine the underlying
24698           VA surface format, but this is not always possible. e.g. cases where it
24699           is not allowed to expose the underlying VA surface data, or when the
24700           VA driver implementation cannot actually provide such information.
24701
24702 2013-11-20 10:45:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24703
24704         * gst/vaapi/gstvaapidecode.c:
24705         * gst/vaapi/gstvaapisink.c:
24706           plugins: streamline VA formats exposed in caps to a realistic set.
24707           Currently, the decoder only supports YUV 4:2:0 output. So, expose the
24708           output formats for GStreamer 1.2 in caps to a realistic subset. This
24709           means NV12, I420 or YV12 but also ENCODED if we cannot determine the
24710           underlying VA surface format, or if it is actually not allowed to get
24711           access to the surface contents.
24712
24713 2013-11-20 10:37:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24714
24715         * gst/vaapi/gstvaapidecode.c:
24716         * gst/vaapi/gstvaapisink.c:
24717           plugins: expose the expected format for GstVideoGLTextureUploadMeta.
24718           Fix vaapidecode srcpad caps to only expose RGBA video format for the
24719           meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
24720           so far. Besides, drop this meta from the vaapisink sinkpad caps since
24721           we really don't support that for rendering.
24722           https://bugzilla.gnome.org/show_bug.cgi?id=711828
24723
24724 2013-11-18 18:25:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24725
24726         * configure.ac:
24727           configure: automatically detect GStreamer API version.
24728           Automatically detect GStreamer API version. The --with-gstreamer-api
24729           configure option now defaults to "autodetect" and configure then tries
24730           to derive the GStreamer API version from the highest version based on
24731           what pkg-config --modversion would report.
24732           https://bugzilla.gnome.org/show_bug.cgi?id=711657
24733
24734 2013-11-01 13:43:11 +0800  Wind Yuan <feng.yuan@intel.com>
24735
24736         * gst/vaapi/gstvaapipostproc.c:
24737           vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
24738           Fix raw YUV data uploaded as in the following pipeline:
24739           $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
24740           The main reason why it failed was that the videoparse element simply
24741           allocates GstBuffer with raw data chunk'ed off the sink pad without
24742           any prior knowledge of the actual frame info. i.e. it basically just
24743           calls gst_adapter_take_buffer().
24744           We could avoid the extra copy performed in vaapipostproc if the videoparse
24745           element was aware of the downstream pool and bothers copying line by
24746           line, for each plane. This means that, for a single frame per buffer,
24747           the optimizatin will be to allocate the video buffer downstream, map
24748           it, and copy each line that is coming through until we need to fills
24749           in the successive planes.
24750           Still, optimized raw YUV uploads already worked with the following:
24751           $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
24752           https://bugzilla.gnome.org/show_bug.cgi?id=711250
24753           [clean-ups, fixed error cases to unmap and unref outbuf]
24754           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24755
24756 2013-11-16 07:02:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24757
24758         * gst/vaapi/gstvaapipostproc.c:
24759           vaapipostproc: try to downgrade deinterlace-method when needed.
24760           If the currently selected deinterlacing method is not supported by the
24761           underlying hardware, then try to downgrade the method to a supported one.
24762           At the minimum, basic bob-deinterlacing shall always be supported.
24763
24764 2013-11-15 19:04:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24765
24766         * gst/vaapi/gstvaapipostproc.c:
24767           vaapipostproc: add initial support for deinterlacing with VPP.
24768           Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
24769           this only covers bob-deinterlacing when the output pixel format is
24770           explicitly set.
24771
24772 2013-11-15 17:14:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24773
24774         * gst/vaapi/gstvaapipostproc.c:
24775           vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
24776           The size argument for GstBaseTransform::transform_size() hook is a
24777           guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
24778
24779 2013-10-18 18:08:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24780
24781         * gst/vaapi/gstvaapipostproc.c:
24782         * gst/vaapi/gstvaapipostproc.h:
24783           vaapipostproc: add initial support for scaling.
24784           Add initial support for basic scaling with size specified through the
24785           "width" and "height" properties. If either user-provided dimension is
24786           zero and "force-aspect-ratio" is set to true (the default), then the
24787           other dimension is scaled to preserve the aspect ratio.
24788
24789 2013-10-18 18:08:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24790
24791         * gst/vaapi/gstvaapipostproc.c:
24792         * gst/vaapi/gstvaapipostproc.h:
24793           vaapipostproc: add initial support for color conversion.
24794           If VPP is available, we always try to implicitly convert the source
24795           buffer to the "native" surface format for the underlying accelerator.
24796           This means that no optimization is performed yet to propagate raw YUV
24797           buffers to the downstream element as is, if VPP is available. i.e. it
24798           will always cause a color conversion.
24799
24800 2013-10-16 11:23:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24801
24802         * gst/vaapi/gstvaapipostproc.c:
24803           vaapipostproc: fix bug when user disabled deinterlacing.
24804           Fix pipeline error / hang when the user disabled deinterlacing through
24805           the deinterlace-mode=disabled property setting.
24806
24807 2013-10-16 11:20:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24808
24809         * gst/vaapi/gstvaapipostproc.c:
24810         * gst/vaapi/gstvaapipostproc.h:
24811           vaapipostproc: factor out operations to be applied into flags.
24812           Even if we only support deinterlacing for now, use flags to specify
24813           which filters are to be applied to each frame we receive in transform().
24814           This is preparatory work for integrating new filters.
24815
24816 2013-10-04 15:37:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24817
24818         * gst/vaapi/gstvaapipostproc.c:
24819         * gst/vaapi/gstvaapipostproc.h:
24820           vaapipostproc: add support for raw YUV video source buffers.
24821           Allow video processing from raw YUV buffers coming from the sink pad,
24822           while still producing a VA surface for the downstream elements.
24823
24824 2013-10-04 16:00:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24825
24826         * gst/vaapi/gstvaapipluginutil.c:
24827         * gst/vaapi/gstvaapipluginutil.h:
24828         * gst/vaapi/gstvaapipostproc.c:
24829           vaapipostproc: add support for "mixed" interlace mode.
24830           Add support for "mixed" interlace-mode, whereby the video frame buffer
24831           shall be deinterlaced only if its flags mention that's actually an
24832           interlaced frame buffer.
24833
24834 2013-10-03 19:04:07 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24835
24836         * gst-libs/gst/vaapi/gstcompat.h:
24837         * gst/vaapi/gstvaapipostproc.c:
24838         * gst/vaapi/gstvaapipostproc.h:
24839         * gst/vaapi/gstvaapivideobuffer.c:
24840         * gst/vaapi/gstvaapivideobuffer.h:
24841           vaapipostproc: rework plug-in element.
24842           Rewrite the vaapipostproc plug-in element so that it derives from
24843           GstBaseTransform, thus simplifying the caps negotiation process.
24844
24845 2013-10-09 17:25:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24846
24847         * gst/vaapi/gstvaapivideobufferpool.c:
24848         * gst/vaapi/gstvaapivideomemory.c:
24849         * gst/vaapi/gstvaapivideomemory.h:
24850           plugins: fix and optimize check for buffer pool allocator params.
24851           Reset the buffer pool allocator only if the config caps changed in a
24852           sensible way: format or resolution change. i.e. don't bother with
24853           other caps like colorimetry et al. as this doesn't affect the way to
24854           allocate VA surfaces or images.
24855
24856 2013-10-09 10:33:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24857
24858         * gst/vaapi/gstvaapivideomemory.c:
24859           plugins: enable memory maps for read & write with direct-rendering.
24860           Enable read and write mappings only if direct-rendering is supported.
24861           Otherwise, this means that we may need to download data from the VA
24862           surface first for correctness, even if the VA surface doesn't need to
24863           be read at all. i.e. sometimes, READWRITE mappings are meant for
24864           surfaces that are written to first, and read afterwards for further
24865           processing.
24866           https://bugzilla.gnome.org/show_bug.cgi?id=704078
24867
24868 2013-10-09 10:06:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24869
24870         * gst/vaapi/gstvaapivideomemory.c:
24871           plugins: fix check for direct-rendering support.
24872           Fix check for direct-rendering if the creation of VA surfaces with
24873           an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
24874           that we tried to allocate a VA surface based on the corresponding
24875           chroma type. i.e. in that particular case, we have to make sure that
24876           the derived image has actually the expected format.
24877
24878 2013-10-09 09:47:18 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24879
24880         * gst/vaapi/gstvaapivideobufferpool.c:
24881         * gst/vaapi/gstvaapivideomemory.c:
24882         * gst/vaapi/gstvaapivideomemory.h:
24883           plugins: fix buffer pool reset_buffer() to reset memory resources.
24884           Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
24885           memory resources, and more particularly the VA surface proxy. Most
24886           importantly, the GstVaapiVideoMeta is retained. Cached surface in
24887           memory are released, thus triggering a new allocation the next time
24888           we need to map the buffer.
24889
24890 2013-10-09 09:33:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24891
24892         * gst/vaapi/gstvaapivideomemory.c:
24893         * gst/vaapi/gstvaapivideomemory.h:
24894           plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
24895           Make sure GstVaapiVideoMemory allocates VA surface proxies from a
24896           pool stored in the parent VA memory allocator.
24897           This fixes the following scenario:
24898           - VA video buffer 1 is allocated from a buffer pool
24899           - Another video buffer is created, and inherits info from buffer 1
24900           - Buffer 1 is released, thus pushing it back to the buffer pool
24901           - New buffer alloc request comes it, this yields buffer 1 back
24902           - At this stage, buffers 1 and 2 still share the same underlying VA
24903           surface, but buffer 2 was already submitted downstream for further
24904           processing, thus conflicting with additional processing we were
24905           about to perform on buffer 1.
24906           Maybe the core GstBufferPool implementation should have been fixed
24907           instead to actually make sure that the returned GstBuffer memory we
24908           found from the pool is writable?
24909
24910 2013-10-04 19:34:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24911
24912         * gst/vaapi/gstvaapiuploader.c:
24913           plugins: create a proxy for GstVaapiUploader allocated buffers.
24914           Always make sure to allocate a VA surface proxy for GstVaapiUploader
24915           allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
24916           a proxy surface.
24917           This fixes cases where we want to retain the underlying surface longer,
24918           instead of releasing it back to the surface pool right away.
24919
24920 2013-10-04 19:30:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24921
24922         * gst/vaapi/gstvaapidecode.c:
24923         * gst/vaapi/gstvaapipluginutil.c:
24924         * gst/vaapi/gstvaapipluginutil.h:
24925         * gst/vaapi/gstvaapipostproc.c:
24926           plugins: add helper function to disable deinterlacing in caps.
24927           Add gst_caps_set_interlaced() helper function that would reset the
24928           interlace-mode field to "progressive" for GStreamer >= 1.0, or the
24929           interlaced field to "false" for GStreamer 0.10.
24930
24931 2013-10-01 18:26:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24932
24933         * gst-libs/gst/vaapi/gstvaapifilter.c:
24934           filter: fix memory leak of VPP operations.
24935           Fix ensure_operations() to release the VPP operations array if non
24936           NULL, prior to returning to the caller. The former function was also
24937           renamed to a more meaningful get_operations() since the caller owns
24938           the returned array that needs to be released.
24939
24940 2013-09-04 13:53:25 +0800  Zhao Halley <halley.zhao@intel.com>
24941
24942         * gst-libs/gst/vaapi/gstvaapifilter.c:
24943           filter: fix first-time operation lookup.
24944           Fix first-time operation lookup through find_operation() if the set
24945           of supported operations was not initially determined through the
24946           gst_vaapi_filter_get_operations() helper function.
24947           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24948
24949 2013-09-04 13:53:25 +0800  Zhao Halley <halley.zhao@intel.com>
24950
24951         * gst-libs/gst/vaapi/gstvaapifilter.c:
24952           filter: fix colorbalance related subtypes.
24953           Fix intiialization of GstVaapiFilterOpData for colorbalance related
24954           operations. In particular, fill in the va_subtype field accordingly.
24955           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24956
24957 2013-09-30 17:08:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24958
24959         * gst-libs/gst/vaapi/gstvaapifilter.c:
24960           filter: fix VA-API 0.34.0 symbol guards.
24961           VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
24962           that need to be guarded for libva 0.34 and 0.33, respectively.
24963           https://bugzilla.gnome.org/show_bug.cgi?id=709102
24964           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24965
24966 2013-10-01 17:57:11 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24967
24968         * gst/vaapi/gstvaapidecode.c:
24969         * gst/vaapi/gstvaapipluginutil.c:
24970         * gst/vaapi/gstvaapisink.c:
24971           plugins: hanle the context query in any pad.
24972           Also this patch simplifies the code, since now the query is common for the
24973           decoder and the sink.
24974           https://bugzilla.gnome.org/show_bug.cgi?id=709200
24975
24976 2013-10-01 12:09:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24977
24978         * gst/vaapi/gstvaapivideocontext.c:
24979           plugins: query upstream element for a GstContext.
24980           Fix gst_vaapi_video_context_prepare() to also query upstream elements
24981           for a valid GstContext. Improve comments regarding the steps used to
24982           lookup or build that context, thus conforming to the GstContext API
24983           recommendations.
24984           https://bugzilla.gnome.org/show_bug.cgi?id=709112
24985           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24986
24987 2013-09-26 15:21:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24988
24989         * configure.ac:
24990         * debian.upstream/control.in:
24991           Fix detection and packaging of GStreamer 1.2.x builds.
24992           The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
24993           packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
24994           purposes, update the versioning to -1.2 suffix instead.
24995
24996 2013-07-15 13:41:00 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24997
24998         * gst/vaapi/Makefile.am:
24999         * gst/vaapi/gstvaapidecode.c:
25000         * gst/vaapi/gstvaapidecode.h:
25001         * gst/vaapi/gstvaapisink.c:
25002         * gst/vaapi/gstvaapivideometa_texture.c:
25003         * gst/vaapi/gstvaapivideometa_texture.h:
25004           plugins: add support for GstVideoGLTextureUploadMeta.
25005           If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
25006           requested, and more specifically under a GLX configuration, then add
25007           the GstVideoGLTextureUploadMeta to the output buffer.
25008           https://bugzilla.gnome.org/show_bug.cgi?id=703236
25009           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25010
25011 2013-07-04 11:03:52 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25012
25013         * gst/vaapi/gstvaapidecode.c:
25014         * gst/vaapi/gstvaapisink.c:
25015         * gst/vaapi/gstvaapivideomemory.h:
25016           plugins: add support for GstCaps features.
25017           Move VA video buffer memory from "video/x-surface,type=vaapi" format,
25018           as expressed in caps, to the more standard use of caps features. i.e.
25019           add "memory:VASurface" feature attribute to the associated caps.
25020           https://bugzilla.gnome.org/show_bug.cgi?id=703271
25021           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25022
25023 2013-07-12 12:58:57 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25024
25025         * gst/vaapi/gstvaapidecode.c:
25026         * gst/vaapi/gstvaapisink.c:
25027           plugins: improve ::query() debugging messages.
25028           Fix gst_vaapidecode_query() to correctly display the query type name,
25029           instead of randomly displaying that we shared the underlying display.
25030           Also add debug info for the GstVaapiSink::query() handler, i.e. the
25031           supplied query type name actually.
25032           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25033
25034 2013-07-12 12:58:57 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25035
25036         * gst/vaapi/gstvaapidecode.c:
25037         * gst/vaapi/gstvaapisink.c:
25038           plugins: add support for GstContext API.
25039           Add support for the new GstContext API from GStreamer 1.2.x.
25040           - implement the GstElement::set_context() hook ;
25041           - reply to the `context' query from downstream elements.
25042           https://bugzilla.gnome.org/show_bug.cgi?id=703235
25043           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25044
25045 2013-05-22 12:07:52 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25046
25047         * gst/vaapi/Makefile.am:
25048         * gst/vaapi/gstvaapipluginutil.c:
25049         * gst/vaapi/gstvaapivideocontext.c:
25050         * gst/vaapi/gstvaapivideocontext.h:
25051           plugins: add compat layer for GstVideoContext.
25052           Add thin compatibility layer for the deprecated GstVideoContext API.
25053           For GStreamer API >= 1.2, this involves the following two functions:
25054           - gst_vaapi_video_context_prepare(): queries if a context is already
25055           set in the pipeline ;
25056           - gst_vaapi_video_context_propagate(): propagates the newly-created
25057           context to the rest of the pipeline.
25058           https://bugzilla.gnome.org/show_bug.cgi?id=703235
25059           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25060
25061 2013-05-21 12:42:39 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25062
25063         * configure.ac:
25064         * gst/vaapi/Makefile.am:
25065         * gst/vaapi/gstvaapi.c:
25066         * gst/vaapi/gstvaapidecode.c:
25067         * gst/vaapi/gstvaapipluginutil.c:
25068         * gst/vaapi/gstvaapisink.c:
25069         * gst/vaapi/gstvaapivideobuffer.c:
25070           plugins: initial port to GStreamer 1.2.
25071           Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
25072           is rather minimalistic so that to test the basic functionality.
25073           Disable vaapipostproc plugin for now as further polishing is needed.
25074           Also disable GstVideoContext interface support since this API is now
25075           gone in 1.2.x. This is preparatory work for GstContext support.
25076           https://bugzilla.gnome.org/show_bug.cgi?id=703235
25077           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25078
25079 2013-09-24 16:21:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25080
25081         * tests/simple-decoder.c:
25082           tests: simple-decoder: fix for non-X11 backends.
25083           Don't try to create pixmaps if we have not requested that feature. This
25084           fixes execution for non-X11 backends, and most specifically DRM video
25085           output mode.
25086
25087 2013-09-24 16:22:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25088
25089         * ext/codecparsers:
25090           codecparsers: update to gst-vaapi-branch commit b33bd32.
25091           b33bd32 jpeg: fix and optimize scan for next marker code
25092
25093 2013-09-23 19:14:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25094
25095         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25096           jpeg: fix calculation of MCU count.
25097           Fix calculation of MCU count for image sizes that are not a multiple
25098           of 8 pixels in either dimension, but also for non-common sampling
25099           factors like 4:2:2 in non-interleaved mode.
25100
25101 2013-09-23 16:49:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25102
25103         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25104         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25105         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25106           jpeg: add support for multiscan images.
25107           Add support for images with multiple scans per frame. The Huffman table
25108           can be updated before SOS, and thus possibly requiring multiple uploads
25109           of Huffman tables to the VA driver. So, the latter must be able to cope
25110           with multiple VA buffers of type 'huffman-table' and with the correct
25111           sequential order.
25112
25113 2013-09-23 11:41:52 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25114
25115         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25116           jpeg: improve robustness when packets are missing.
25117           Improve robustness when some expected packets where not received yet
25118           or that were not correctly decoded. For example, don't try to decode
25119           a picture if there was no valid frame headers.
25120
25121 2013-09-20 16:46:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25122
25123         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25124           jpeg: minor clean-ups.
25125           Improve debugging and error messages. Rename a few variables to fit the
25126           existing naming conventions. Change some fatal asserts to non-fatal
25127           error codes.
25128
25129 2013-09-20 10:12:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25130
25131         * gst-libs/gst/vaapi/gstvaapidecoder.c:
25132         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25133         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
25134           jpeg: rework and optimize parser.
25135           Split the input buffer data into decoder units that represent a JPEG
25136           segment. Handle scan decoder unit specifically so that it can include
25137           both the scan header (SOS) but also any other ECS or RSTi segment.
25138           That way, we parse the input buffer stream only once at the gst-vaapi
25139           level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
25140           stream into frames SOI .. EOI and (ii) in decode_buffer() to further
25141           determine segment boundaries and decode them.
25142           In practice, this is a +15 to +25% performance improvement.
25143
25144 2013-09-17 14:29:54 +0800  Junfeng Xu <jun.feng.xu@intel.com>
25145
25146         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25147           jpeg: handle comment segments.
25148           Fix decode_buffer() function to gracefully skip comment (COM) segments.
25149           This fixes decoding of streams generated by certain cameras, e.g. like
25150           the Logitech Pro C920.
25151           https://bugzilla.gnome.org/show_bug.cgi?id=708208
25152           Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25153
25154 2013-09-18 17:59:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25155
25156         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25157           jpeg: fix determination of image bounds.
25158           Look for the exact image bounds characterised by the <SOI> and <EOI>
25159           markers. Use the gst_jpeg_parse() codec parser utility function to
25160           optimize the lookup for the next marker segment.
25161           https://bugzilla.gnome.org/show_bug.cgi?id=707447
25162
25163 2013-09-10 15:46:09 +0800  Junfeng Xu <jun.feng.xu@intel.com>
25164
25165         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25166           jpeg: fix calculation of offset to next marker segment.
25167           Fix calculation of the offset to the next marker segment since the
25168           correction of the codecparser part to match the API specification.
25169           i.e. the GstJpegMarkerSegment.size field represents the size in bytes
25170           of the segment minus any marker prefix.
25171           https://bugzilla.gnome.org/show_bug.cgi?id=707447
25172           Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25173
25174 2013-09-20 18:30:18 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25175
25176         * ext/codecparsers:
25177           codecparsers: update to gst-vaapi-branch commit 23c7dde.
25178           23c7dde jpeg: fix calculation of segment size
25179
25180 2013-08-31 16:00:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25181
25182         * configure.ac:
25183           Bump version for development.
25184
25185 2013-08-31 15:47:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25186
25187         * NEWS:
25188         * configure.ac:
25189           0.5.6.
25190
25191 2013-08-31 15:46:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25192
25193         * NEWS:
25194           NEWS: updates.
25195
25196 2013-08-15 17:59:37 +0800  Wind Yuan <feng.yuan@intel.com>
25197
25198         * configure.ac:
25199         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25200           configure: fix detection of VA/JPEG decoding API.
25201           Fix detection of VA/JPEG decoding API with non-standard libva packages.
25202           More precisely, some packages were shipping with a <va/va.h> header that
25203           did not include <va/va_dec_jpeg.h>.
25204           https://bugzilla.gnome.org/show_bug.cgi?id=706055
25205           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25206
25207 2013-04-18 19:49:42 +0800  Zhao Halley <halley.zhao@intel.com>
25208
25209         * gst/vaapi/gstvaapisink.c:
25210           vaapisink: ensure the uploader is setup for upstream allocated buffers.
25211           In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
25212           is setup in case upstream elements allocate buffers themselves without
25213           honouring our GstVaapiSink::bufer_alloc() hook.
25214           In particular, this fixes support for OGG video streams with WebKit.
25215           https://bugzilla.gnome.org/show_bug.cgi?id=703934
25216           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25217
25218 2013-08-29 19:07:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25219
25220         * gst/vaapi/gstvaapisink.c:
25221           vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
25222           Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
25223           builds as well.
25224
25225 2013-08-29 18:34:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25226
25227         * gst/vaapi/gstvaapisink.c:
25228         * gst/vaapi/gstvaapisink.h:
25229           vaapisink: handle raw buffers not created from VA video buffer pool.
25230           Handle raw video buffers that were not created from a VA video buffer
25231           pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
25232           builds instead of the GstVaapiUploader.
25233           https://bugs.freedesktop.org/show_bug.cgi?id=55818
25234
25235 2013-08-29 19:33:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25236
25237         * gst/vaapi/gstvaapidecode.c:
25238           vaapidecode: remove extraneous size information from allowed caps.
25239           Fix _getcaps() implementation to not report codecs with size information
25240           filled in the returned caps. That's totally useless nowadays. Ideally,
25241           this is a hint to insert a video parser element, thus allowing future
25242           optimizations, but this is not a strict requirement for gstreamer-vaapi,
25243           which is able to parse the elementary bitstreams itself.
25244           https://bugzilla.gnome.org/show_bug.cgi?id=704734
25245
25246 2013-07-30 14:05:39 +0800  Guangxin.Xu <Guangxin.Xu@intel.com>
25247
25248         * gst/vaapi/gstvaapidecode.c:
25249         * gst/vaapi/gstvaapidecode.h:
25250           vaapidecode: submit the last frame from output adapter to decoder.
25251           If there is no frame delimiter at the end of the stream, e.g. no
25252           end-of-stream or end-of-sequence marker, and that the current frame
25253           was fully parsed correctly, then assume that last frame is complete
25254           and submit it to the decoder.
25255           https://bugzilla.gnome.org/show_bug.cgi?id=705123
25256           Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25257           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25258
25259 2013-08-29 11:55:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25260
25261         * gst/vaapi/gstvaapidecode.c:
25262         * gst/vaapi/gstvaapidecode.h:
25263           vaapidecode: push all decoded frames from within the task.
25264           Make sure to push all decoded frames from the task so that the unlying
25265           VA surfaces could all be rendered from the same thread.
25266
25267 2013-08-27 18:24:12 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25268
25269         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25270           wayland: render the raw surface if VPP failed.
25271           As a last resort, if video processing capabilities (VPP) are not available,
25272           or they did not produce anything conclusive enough, then try to fallback to
25273           the original rendering code path whereby the whole VA surface is rendered
25274           as is, no matter of video cropping or deinterlacing requests.
25275           Note: under those conditions, the visual outcome won't be correct but at
25276           least, something gets displayed instead of bailing out.
25277
25278 2013-08-27 18:20:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25279
25280         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25281           wayland: add supporting for video processing.
25282           Try to use VA/VPP processing capabilities to handle video cropping and
25283           additional rendering flags that may not be directly supported by the
25284           underlying hardware when exposing a suitable Wayland buffer for the
25285           supplied VA surface. e.g. deinterlacing, different color primaries than
25286           BT.601, etc.
25287
25288 2013-08-27 16:26:22 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25289
25290         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25291           wayland: add new frame redraw infrastructure.
25292           Update the frame redraw infrastructure with a new FrameState stucture
25293           holds all the necessary information used to display the next pending
25294           surface.
25295           While we are at it, delay the sync operation down to when it is actually
25296           needed. That way, we keep performing additional tasks meanwhile.
25297
25298 2013-08-27 18:06:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25299
25300         * docs/reference/libs/libs-sections.txt:
25301         * gst-libs/gst/vaapi/gstvaapifilter.c:
25302         * gst-libs/gst/vaapi/gstvaapifilter.h:
25303           filter: allow specification of render target regions.
25304           Add support for rendering the source surface to a particular region within
25305           the supplied target surface. The default background color is black.
25306
25307 2013-08-26 17:14:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25308
25309         * gst/vaapi/gstvaapivideobuffer.c:
25310           decode: fix creation of GLX video buffers for GStreamer 0.10.
25311           Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
25312           and (ii) to correctly extract the GstSurfaceConverter from the video buffer
25313           object meta.
25314           This fixes support for cluttersink with GStreamer 0.10 builds.
25315
25316 2013-08-26 16:15:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25317
25318         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25319           mpeg2: disable video cropping as picture_display_extension() is missing.
25320           Disable video cropping in MPEG-2 codec because it is partially implemented
25321           and actually because nobody implements it that way, and the standard spec
25322           does not specify the display process either anyway.
25323           Most notably, there are two possible use cases for sequence_display_extension()
25324           horizontal_display_size & vertical_display_size: (i) guesstimating the
25325           pixel-aspect-ratio, or (ii) implement some kind of span & scan process
25326           in conjunction with picture_display_extension() information.
25327           https://bugzilla.gnome.org/show_bug.cgi?id=704848
25328
25329 2013-08-16 16:58:58 +0100  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
25330
25331         * gst/vaapi/gstvaapisink.c:
25332         * gst/vaapi/gstvaapisink.h:
25333           vaapisink: allow scaling to ignore aspect ratio.
25334           Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
25335           which allows you to say that you don't want the sink to respect aspect
25336           ratio. Add the same property to vaapisink.
25337           http://lists.freedesktop.org/archives/libva/2012-September/001298.html
25338           Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
25339
25340 2013-05-14 15:19:04 +0800  Wind Yuan <feng.yuan@intel.com>
25341
25342         * gst/vaapi/gstvaapisink.c:
25343           vaapisink: fix memory leak of GstVaapiUploader instance.
25344           Make sure gst_vaapisink_ensure_uploader() checks for the existence
25345           of a former GstVaapiUploader instance prior to forcibly creating a
25346           new one.
25347           https://bugzilla.gnome.org/show_bug.cgi?id=703980
25348
25349 2013-07-31 16:49:20 +0800  Guangxin.Xu <Guangxin.Xu@intel.com>
25350
25351         * gst/vaapi/gstvaapisink.c:
25352           vaapisink: fix get_caps() implementation for GStreamer 1.0.
25353           Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
25354           by honouring the filter caps argument. More precisely, this fixes the
25355           following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
25356           https://bugzilla.gnome.org/show_bug.cgi?id=705192
25357           Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25358           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25359
25360 2013-08-26 11:31:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25361
25362         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25363           mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
25364           This fixes the following issue:
25365           CC     libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
25366           gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
25367           'GstVaapiDecoderMpeg4Class'
25368           gstvaapidecoder_mpeg4.c:44: note: previous declaration of
25369           'GstVaapiDecoderMpeg4Class' was here
25370           make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
25371           make[5]: Leaving directory
25372           `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
25373           https://bugzilla.gnome.org/show_bug.cgi?id=705148
25374
25375 2013-07-30 15:59:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25376
25377         * tests/test-filter.c:
25378           tests: filter: add support for deinterlacing.
25379           Add --deinterlace option to enable deinterlacing through explicit VA/VPP
25380           deinterlacing filter. However, if --deinterlace option is not set but the
25381           --deinterlace-flags option is set with "top-field-first", then the very
25382           basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
25383
25384 2013-07-17 17:29:41 +0800  Zhao Halley <halley.zhao@intel.com>
25385
25386         * tests/test-filter.c:
25387           tests: filter: add support for denoising and sharpening.
25388           Add --denoise option to enable noise reduction with the level specified
25389           as the option value (float). Likewise, add --sharpen option to enable
25390           sharpening.
25391           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25392
25393 2013-07-24 14:31:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25394
25395         * tests/test-filter.c:
25396           tests: filter: add support for frame cropping.
25397           Add support for frame cropping through the --crop-rect|-c argument.
25398           The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
25399           or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
25400
25401 2013-07-23 18:00:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25402
25403         * tests/test-filter.c:
25404           tests: filter: dump supported operations and formats.
25405
25406 2013-07-08 16:54:55 +0800  Zhao Halley <halley.zhao@intel.com>
25407
25408         * tests/Makefile.am:
25409         * tests/test-filter.c:
25410           tests: add initial test for video processing.
25411           Add minimal test case for video processing: scaling and color format
25412           conversion.
25413           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25414
25415 2013-07-29 09:23:50 +0800  Zhao Halley <halley.zhao@intel.com>
25416
25417         * docs/reference/libs/libs-sections.txt:
25418         * gst-libs/gst/vaapi/gstvaapifilter.c:
25419         * gst-libs/gst/vaapi/gstvaapifilter.h:
25420         * gst-libs/gst/vaapi/gstvaapiutils.c:
25421         * gst-libs/gst/vaapi/gstvaapiutils.h:
25422         * gst/vaapi/gstvaapipostproc.c:
25423         * gst/vaapi/gstvaapipostproc.h:
25424           filter: add initial support for deinterlacing.
25425           Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
25426           the selected field from the input surface is kept for the target surface.
25427           Setting gst_vaapi_filter_set_deinterlacing() method argument to
25428           GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
25429           Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
25430           to libgstvaapi core library.
25431           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25432
25433 2013-07-17 17:40:41 +0800  Zhao Halley <halley.zhao@intel.com>
25434
25435         * docs/reference/libs/libs-sections.txt:
25436         * gst-libs/gst/vaapi/gstvaapifilter.c:
25437         * gst-libs/gst/vaapi/gstvaapifilter.h:
25438           filter: add support for color balance adjustment.
25439           Add ProcAmp (color balance) adjustments for hue, saturation, brightness
25440           and contrast. The respective range for each filter shall be the same as
25441           for the VA display attributes.
25442           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25443
25444 2013-07-17 17:37:16 +0800  Zhao Halley <halley.zhao@intel.com>
25445
25446         * docs/reference/libs/libs-sections.txt:
25447         * gst-libs/gst/vaapi/gstvaapifilter.c:
25448         * gst-libs/gst/vaapi/gstvaapifilter.h:
25449           filter: add support for sharpening.
25450           Sharpening is configured with a float value. The supported range is
25451           -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
25452           operation at all.
25453           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25454
25455 2013-07-17 17:29:41 +0800  Zhao Halley <halley.zhao@intel.com>
25456
25457         * docs/reference/libs/libs-sections.txt:
25458         * gst-libs/gst/vaapi/gstvaapifilter.c:
25459         * gst-libs/gst/vaapi/gstvaapifilter.h:
25460           filter: add support for denoising.
25461           Noise reduction is configured with a float value. The supported range
25462           is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
25463           operation at all.
25464           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25465
25466 2013-07-24 14:22:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25467
25468         * docs/reference/libs/libs-sections.txt:
25469         * gst-libs/gst/vaapi/gstvaapifilter.c:
25470         * gst-libs/gst/vaapi/gstvaapifilter.h:
25471           filter: add support for frame cropping.
25472           Frame cropping is defined with a GstVaapiRectangle value. The default
25473           behaviour is to treat the source surface as a whole
25474
25475 2013-07-25 13:55:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25476
25477         * gst-libs/gst/vaapi/gstvaapifilter.c:
25478           filter: add helper functions.
25479           Add helper functions to ensure an operation VA buffer is allocated to
25480           the right size; that filter caps get parsed and assigned to the right
25481           operation too; and that float parameters are correctly scaled to fit
25482           the reported range from the VA driver.
25483
25484 2013-07-23 15:52:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25485
25486         * configure.ac:
25487         * docs/reference/libs/libs-docs.xml.in:
25488         * docs/reference/libs/libs-sections.txt:
25489         * gst-libs/gst/vaapi/Makefile.am:
25490         * gst-libs/gst/vaapi/gstvaapidisplay.c:
25491         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25492         * gst-libs/gst/vaapi/gstvaapifilter.c:
25493         * gst-libs/gst/vaapi/gstvaapifilter.h:
25494           Add initial infrastructure for video processing.
25495           Add initial API for video processing: only scaling and color format
25496           conversion operations are supported.
25497
25498 2013-07-24 11:53:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25499
25500         * gst-libs/gst/vaapi/video-format.c:
25501         * gst-libs/gst/vaapi/video-format.h:
25502           libs: add gst_vaapi_video_format_from_string() helper.
25503           Add gst_vaapi_video_format_from_string() helper function to convert from
25504           a video format string representation to a suitable GstVideoFormat. This
25505           is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
25506           builds, and a proper iteration over all GstVideoFormat string representations
25507           otherwise for earlier GStreamer 0.10.x builds.
25508
25509 2013-07-24 11:37:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25510
25511         * gst-libs/gst/vaapi/video-format.c:
25512         * gst-libs/gst/vaapi/video-format.h:
25513           libs: add gst_vaapi_video_format_from_va_fourcc() helper.
25514           Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
25515           VA fourcc value to a suitable GstVideoFormat.
25516
25517 2013-07-24 11:41:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25518
25519         * gst-libs/gst/vaapi/gstvaapivalue.c:
25520         * gst-libs/gst/vaapi/gstvaapivalue.h:
25521           libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
25522           Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
25523           structures as a standard GType. This could be useful to have them
25524           described as a GValue later on.
25525
25526 2013-07-26 13:57:35 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25527
25528         * docs/reference/libs/libs-docs.xml.in:
25529         * docs/reference/libs/libs-sections.txt:
25530         * gst-libs/gst/vaapi/Makefile.am:
25531         * gst-libs/gst/vaapi/gstvaapicontext.h:
25532         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
25533           libs: drop some public APIs.
25534           Don't expose GstVaapiContext APIs and make them totally private to
25535           libgstvaapi core library. That API would also tend to disappear in
25536           a future revision. Likewise, don't expose GstVaapiDisplayCache API
25537           but keep symbols visible so that the various render backends could
25538           share a common display cache implementation in libgstvaapi.
25539           Try to clean-up the documentation from any stale entry too.
25540
25541 2013-08-23 18:35:42 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25542
25543         * tests/image.c:
25544         * tests/image.h:
25545           tests: image: allow creation of images with interleaved patterns.
25546           Add image_generate_full() function to create interleaved color rectangles.
25547           If flags is zero, the whole frame is generated with a unique pattern. If
25548           flags is non-zero, then each field is handled individually.
25549
25550 2013-08-23 16:25:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25551
25552         * tests/image.c:
25553           tests: image: fix conversion from RGB to YUV.
25554           Fix RGB to YUV conversion to preserve full data range.
25555
25556 2013-07-26 13:12:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25557
25558         * tests/image.c:
25559           tests: image: try to upload images through vaDeriveImage() too.
25560           On some platforms, vaPutImage() would fail even if it does not involve
25561           color format conversion or scaling, whereas copying raw pixels through
25562           vaDeriveImage() could work instead.
25563
25564 2013-07-26 10:05:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25565
25566         * tests/image.c:
25567           tests: image: add support for packed YUV formats.
25568           Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
25569
25570 2013-07-25 18:10:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25571
25572         * tests/image.c:
25573           tests: image: fix generation of I420/YV12 images.
25574           U/V planes were reversed, thus producing invalid images.
25575
25576 2013-07-24 13:55:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25577
25578         * tests/image.c:
25579           tests: image: fix string representation for GstVideoFormat.
25580
25581 2013-07-26 12:57:19 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25582
25583         * docs/reference/libs/libs-sections.txt:
25584         * gst-libs/gst/vaapi/Makefile.am:
25585         * gst-libs/gst/vaapi/gstvaapiimage.c:
25586         * gst-libs/gst/vaapi/gstvaapiimage.h:
25587         * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
25588         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25589         * gst-libs/gst/vaapi/gstvaapisurface.c:
25590           image: clean image API up.
25591           Don't expose functions that reference a GstVaapiImageRaw, those are
25592           meant to be internal only for implementing subpictures sync. Also add
25593           a few private definitions to avoid functions calls for retrieving
25594           image size and format information.
25595
25596 2013-07-26 11:43:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25597
25598         * docs/reference/libs/libs-sections.txt:
25599         * gst-libs/gst/vaapi/gstvaapiimage.c:
25600         * gst-libs/gst/vaapi/gstvaapiimage.h:
25601           image: add gst_vaapi_image_copy() helper.
25602           Add gst_vaapi_image_copy() helper function to copy images of same format
25603           and size.
25604
25605 2013-07-22 14:53:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25606
25607         * gst/vaapi/gstvaapivideoconverter_x11.c:
25608           plugins: handle video cropping in X11 pixmap converter.
25609           Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
25610           we could decode from the stream.
25611
25612 2013-07-22 11:58:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25613
25614         * gst/vaapi/Makefile.am:
25615         * gst/vaapi/gstvaapivideobuffer.c:
25616         * gst/vaapi/gstvaapivideoconverter_glx.c:
25617         * gst/vaapi/gstvaapivideoconverter_x11.c:
25618         * gst/vaapi/gstvaapivideoconverter_x11.h:
25619           plugins: add support for "x11-pixmap" video converter type.
25620           Install a new video converter that supports X11 pixmap targets for X11
25621           backends only, or make the GLX converter creation function chain up to
25622           the X11 converter whenever requested.
25623
25624 2013-07-22 09:36:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25625
25626         * tests/simple-decoder.c:
25627           tests: simple-decoder: add support for pixmap API.
25628           Add support for the new render-to-pixmap API. Avoid flickering on
25629           platforms supporting video overlay by keeping up to 2 intermediate
25630           pixmaps.
25631
25632 2013-07-22 09:12:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25633
25634         * tests/simple-decoder.c:
25635           tests: simple-decoder: add support for video cropping.
25636           Handle video cropping information attached to a VA surface proxy.
25637
25638 2013-07-22 09:03:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25639
25640         * tests/output.c:
25641         * tests/output.h:
25642         * tests/test-decode.c:
25643           tests: add support for render-to-pixmap.
25644           Add --pixmap option to test-decode so that to allow copies of VA
25645           surface to an intermediate pixmap and rendering from that pixmap.
25646           Only X11 backends are supported for now.
25647
25648 2013-07-22 09:00:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25649
25650         * configure.ac:
25651         * gst-libs/gst/vaapi/Makefile.am:
25652         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25653         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25654         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25655         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
25656           x11: implement pixmap rendering with RENDER extension.
25657           Use hardware accelerated XRenderComposite() function, from the RENDER
25658           extension, to blit a pixmap to screen. Besides, this can also support
25659           cropping and scaling.
25660
25661 2013-07-19 15:05:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25662
25663         * docs/reference/libs/libs-docs.xml.in:
25664         * docs/reference/libs/libs-sections.txt:
25665         * gst-libs/gst/vaapi/Makefile.am:
25666         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25667         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25668         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
25669         * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
25670           x11: implement pixmap API.
25671           Implement the new render-to-pixmap API. The only supported pixmap format
25672           that will work is xRGB, with native byte ordering. Others might work but
25673           they were not tested.
25674
25675 2013-07-22 10:10:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25676
25677         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25678         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
25679         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25680           x11: update x11_get_geometry() helper function with depth output.
25681           Allow x11_get_geometry() utility function to also return the depth
25682           assigned to the X drawable.
25683
25684 2013-07-22 10:00:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25685
25686         * docs/reference/libs/libs-docs.xml.in:
25687         * docs/reference/libs/libs-sections.txt:
25688         * gst-libs/gst/vaapi/Makefile.am:
25689         * gst-libs/gst/vaapi/gstvaapipixmap.c:
25690         * gst-libs/gst/vaapi/gstvaapipixmap.h:
25691         * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
25692         * gst-libs/gst/vaapi/gstvaapiwindow.c:
25693         * gst-libs/gst/vaapi/gstvaapiwindow.h:
25694         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
25695           Add initial Pixmap API.
25696           Add API to transfer VA urfaces to native pixmaps. Also add an API to
25697           render a native pixmap, for completeness. In general, rendering to
25698           pixmap would only be useful to certain VA drivers and use cases on
25699           X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
25700           in an upper layer.
25701
25702 2013-07-22 15:15:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25703
25704         * docs/reference/libs/libs-sections.txt:
25705         * gst-libs/gst/vaapi/gstvaapiimage.c:
25706         * gst-libs/gst/vaapi/gstvaapisurface.c:
25707         * gst-libs/gst/vaapi/video-format.c:
25708         * gst-libs/gst/vaapi/video-format.h:
25709           libs: add and expose gst_vaapi_video_format_to_string() helper.
25710           This is just a wrapper over gst_video_format_to_string() for older
25711           GStreamer 0.10 builds.
25712
25713 2013-07-18 02:54:54 -0300  Emilio López <emilio@elopez.com.ar>
25714
25715         * gst/vaapi/gstvaapipluginutil.c:
25716           plugins: fix display type comparison in gst_vaapi_create_display().
25717           After the code got moved to create the gst_vaapi_create_display() helper,
25718           this comparison was not updated to dereference the newly-created
25719           pointer, so the code was comparing the pointer itself to the type, and
25720           therefore failing to retrieve the VA display.
25721           This fixes the following error (and gets gst-vaapi decoding again):
25722           ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
25723           https://bugzilla.gnome.org/show_bug.cgi?id=704410
25724           Signed-off-by: Emilio López <emilio@elopez.com.ar>
25725
25726 2013-07-17 11:07:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25727
25728         * configure.ac:
25729           Bump version for development.
25730
25731 2013-07-15 17:49:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25732
25733         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25734           mpeg2: don't output dummy pictures.
25735           Mark dummy pictures as output already so that we don't try to submit
25736           them to the upper layer since this is purely internal / temporary
25737           picture for helping the decoder.
25738
25739 2013-07-15 17:43:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25740
25741         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25742           decoder: dispose GstVideoCodecFrame earlier.
25743           Once the picture was output, it is no longer necessary to keep an extra
25744           reference to the underlying GstVideoCodecFrame. So, we can release it
25745           earlier, and maybe subsequently release the associate surface proxy
25746           earlier.
25747
25748 2013-07-15 14:47:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25749
25750         * NEWS:
25751         * configure.ac:
25752           0.5.5.
25753
25754 2013-07-15 14:42:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25755
25756         * docs/reference/libs/libs-sections.txt:
25757         * gst-libs/gst/vaapi/Makefile.am:
25758         * gst-libs/gst/vaapi/gstvaapidisplay.c:
25759         * gst-libs/gst/vaapi/gstvaapiimage.c:
25760         * gst-libs/gst/vaapi/gstvaapisurface.c:
25761         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25762         * gst-libs/gst/vaapi/video-format.c:
25763         * gst-libs/gst/vaapi/video-format.h:
25764         * gst/vaapi/gstvaapidownload.c:
25765         * gst/vaapi/gstvaapiuploader.c:
25766         * tests/image.c:
25767         * tests/test-display.c:
25768           Fix new video format API.
25769           Fix new internal video format API, based on GstVideoFormat, to not
25770           clobber with system symbols. So replace the gst_video_format_* prefix
25771           with gst_vaapi_video_format_ prefix, even if the format type remains
25772           GstVideoFormat.
25773
25774 2013-07-15 14:05:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25775
25776         * configure.ac:
25777           Bump library major version.
25778           Bump the library major version due to API/ABI changes that occurred in
25779           the imaging API. In particular, GstVaapiImageFormat type was replaced
25780           with the standard GstVideoFormat type. All dependent APIs were updated
25781           to match this change.
25782
25783 2013-07-15 13:44:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25784
25785         * NEWS:
25786           NEWS: updates.
25787
25788 2013-06-11 15:11:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25789
25790         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25791         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25792           decoder: fix memory leak when processing interlaced pictures.
25793           Fix memory leak when processing interlaced pictures and that occurs
25794           because the first field, represented as a GstVideoCodecFrame, never
25795           gets released. i.e. when the picture is completed, this is generally
25796           the case when the second field is successfully decoded, we need to
25797           propagate the GstVideoCodecFrame of the first field to the original
25798           GstVideoDecoder so that it could reclaim memory.
25799           Otherwise, we keep accumulating the first fields into GstVideoDecoder
25800           private frames list until the end-of-stream is reached. The frames
25801           are eventually released there, but too late, i.e. too much memory
25802           may have been consumed.
25803           https://bugzilla.gnome.org/show_bug.cgi?id=701257
25804
25805 2013-07-15 11:58:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25806
25807         * gst/vaapi/gstvaapipluginutil.c:
25808           plugins: simlpify gst_vaapi_create_display() helper.
25809           Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
25810           performs the necessary validation checks for the underlying VA display
25811           prior to returning to the caller. So, if an error occurred, then NULL is
25812           really returned in that case.
25813
25814 2013-05-24 05:04:01 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25815
25816         * gst/vaapi/gstvaapipluginutil.c:
25817           plugins: add gst_vaapi_create_display() helper.
25818           https://bugzilla.gnome.org/show_bug.cgi?id=703235
25819           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25820
25821 2013-07-12 17:47:07 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25822
25823         * gst/vaapi/gstvaapivideobufferpool.c:
25824           plugins: don't reallocate pool allocator for the same caps.
25825           If the video buffer pool config doesn't have new caps, then it's not
25826           necessary to reinstantiate the allocator. That could be a costly
25827           operation as we could do some extra heavy checking in there.
25828
25829 2013-07-12 17:14:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25830
25831         * gst/vaapi/gstvaapivideomemory.c:
25832           plugins: fix ref counting of GstVaapiVideoMemory allocator.
25833           Fix reference counting issue whereby gst_memory_init() does not hold
25834           an extra reference to the GstAllocator. So, there could be situations
25835           where the last instance of GstVaapiVideoAllocator gets released before
25836           a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
25837
25838 2013-07-12 15:15:07 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25839
25840         * gst/vaapi/gstvaapiuploader.c:
25841           vaapiupload: use implicit color conversion to NV12.
25842           Always perform conversion of sources buffers to NV12 since this is
25843           the way we tested for this capability in ensure_allowed_caps(). This
25844           also saves memory bandwidth for further rendering. However, this may
25845           not preserve quality since the YUV buffers are down-sampled to 4:2:0.
25846
25847 2013-07-12 15:01:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25848
25849         * gst-libs/gst/vaapi/gstvaapivideopool.c:
25850           pool: fix deallocation of video pools.
25851           The queue of free objects to used was deallocated with g_queue_free_full().
25852           However, this convenience function shall only be used if the original queue
25853           was allocated with g_queue_new(). This caused memory corruption, eventually
25854           leading to a crash.
25855           The correct solution is to pair the g_queue_init() with the corresponding
25856           g_queue_clear(), while iterating over all free objects to deallocate them.
25857
25858 2013-03-13 17:44:52 +0800  Wind Yuan <feng.yuan@intel.com>
25859
25860         * gst/vaapi/gstvaapidownload.c:
25861           vaapidownload: fix src caps format error.
25862           This fixes direct linking of vaapidownload element to xvimagesink with
25863           VA drivers supporting vaGetImage() from the native VA surface format to
25864           a different VA image format. i.e. color conversion during download.
25865           http://bugzilla.gnome.org/show_bug.cgi?id=703937
25866           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25867
25868 2013-07-11 18:26:37 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25869
25870         * gst/vaapi/gstvaapidownload.c:
25871           vaapidownload: fix debug string for image formats.
25872           The image is now expressed as a standard GstVideoFormat, which is not
25873           a FOURCC but rather a regular enum value.
25874           This is a regression introduced in commit 09397fa.
25875
25876 2013-04-24 10:39:03 +0800  Wind Yuan <feng.yuan@intel.com>
25877
25878         * gst-libs/gst/vaapi/gstvaapiimage.c:
25879           image: add support for raw YUY2/UYVY image copies.
25880           Implement raw image copies for YUY2 format. Add support for UYVY format
25881           too, with the same copy function as for YUY2. Even though components
25882           ordering differs, copying line strides is essentially the same.
25883           https://bugzilla.gnome.org/show_bug.cgi?id=703939
25884           https://bugzilla.gnome.org/show_bug.cgi?id=703940
25885           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25886
25887 2013-07-10 15:15:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25888
25889         * gst/vaapi/gstvaapiuploader.c:
25890           plugins: clean-up video uploader helper.
25891           Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
25892           were already negotiated beforehand, and they are not used from the
25893           buffer in upstream elements.
25894           Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
25895           represented as a GstVideoInfo.
25896
25897 2013-07-10 15:03:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25898
25899         * gst/vaapi/gstvaapiuploader.c:
25900           plugins: use GstVideoInfo in video uploader helper.
25901
25902 2013-07-10 10:34:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25903
25904         * gst/vaapi/gstvaapivideomemory.c:
25905           plugins: allow creation of VA surfaces with explicit pixel format.
25906           Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
25907           with an explicit pixel format. This allows for direct rendering to
25908           VA surface memory from a software decoder.
25909
25910 2013-07-10 14:20:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25911
25912         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25913           surface: fix surface pool creation with an explicit pixel format.
25914           Fix creation of surface pool objects to honour explicit pixel format
25915           specification. If this operation is not supported, then fallback to
25916           the older interface with chroma format.
25917
25918 2013-07-10 13:58:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25919
25920         * gst-libs/gst/vaapi/gstvaapisurface.c:
25921           surface: try to determine the underlying VA surface format.
25922           If a VA surface was allocated with the chroma-format interface, try to
25923           determine the underlying pixel format on gst_vaapi_surface_get_format(),
25924           or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
25925
25926 2013-07-09 19:08:37 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25927
25928         * docs/reference/libs/libs-sections.txt:
25929         * gst-libs/gst/vaapi/gstvaapisurface.c:
25930         * gst-libs/gst/vaapi/gstvaapisurface.h:
25931         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
25932           surface: allow creation with explicit pixel format.
25933           Make it possible to create VA surfaces with a specific pixel format.
25934           This is a new capability brought in by VA-API >= 0.34.0. If that
25935           capability is not built-in (e.g. using VA-API < 0.34.0), then
25936           gst_vaapi_surface_new_with_format() will return NULL.
25937
25938 2013-07-10 09:48:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25939
25940         * docs/reference/libs/libs-sections.txt:
25941         * gst-libs/gst/vaapi/video-format.c:
25942         * gst-libs/gst/vaapi/video-format.h:
25943           surface: add helper function to get chroma type from GstVideoFormat.
25944           Add gst_video_format_get_chroma_type() helper function to determine
25945           the GstVaapiChromaType from a standard GStreamer video format. It is
25946           possible to reconstruct that from GstVideoFormatInfo but it is much
25947           simpler (and faster?) to use the local GstVideoFormatMap table.
25948
25949 2013-07-09 19:13:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25950
25951         * gst-libs/gst/vaapi/gstvaapisurface.c:
25952         * gst-libs/gst/vaapi/gstvaapisurface.h:
25953         * gst-libs/gst/vaapi/gstvaapiutils.c:
25954         * gst-libs/gst/vaapi/gstvaapiutils.h:
25955           surface: add new chroma formats.
25956           Add new chroma formats available with VA-API >= 0.34.0. In particular,
25957           this includes "RGB" chroma formats, and more YUV subsampled formats.
25958           Also add a new from_GstVaapiChromaType() helper function to convert
25959           libgstvaapi chroma type to VA chroma format.
25960
25961 2013-07-10 13:32:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25962
25963         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25964           pool: fix image pool to check for the video format to use.
25965           Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
25966           image pool object, only if the underlying VA display does support the
25967           requested VA image format.
25968
25969 2013-07-10 13:07:37 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25970
25971         * gst-libs/gst/vaapi/gstvaapicontext.c:
25972         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25973         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
25974         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25975         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
25976         * gst-libs/gst/vaapi/gstvaapivideopool.h:
25977         * gst/vaapi/gstvaapidownload.c:
25978         * gst/vaapi/gstvaapiuploader.c:
25979         * tests/Makefile.am:
25980         * tests/test-surfaces.c:
25981           Use GstVideoInfo for video pools.
25982           Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
25983           structures instead. Those are smaller, and allows for streamlining
25984           libgstvaapi more.
25985
25986 2013-07-09 18:03:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25987
25988         * gst-libs/gst/vaapi/gstvaapiimage.c:
25989         * gst-libs/gst/vaapi/video-format.c:
25990           Add more video formats.
25991           Add new video format mappings to VA image formats:
25992           - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
25993           - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
25994
25995 2013-07-10 15:52:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25996
25997         * gst-libs/gst/vaapi/gstvaapiimage.c:
25998           image: fix debug message with video format.
25999           Fix debug message string with image format expressed with GstVideoFormat
26000           instead of the obsolete format that turned out to be a fourcc.
26001           This is a regression from git commit e61c5fc.
26002
26003 2013-07-09 15:28:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26004
26005         * tests/image.c:
26006         * tests/image.h:
26007         * tests/test-display.c:
26008         * tests/test-textures.c:
26009         * tests/test-windows.c:
26010           tests: port to new video format API.
26011
26012 2013-07-09 15:44:35 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26013
26014         * gst/vaapi/gstvaapidownload.c:
26015         * gst/vaapi/gstvaapiuploader.c:
26016         * gst/vaapi/gstvaapivideomemory.c:
26017           plugins: port to new video format API.
26018
26019 2013-07-09 16:26:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26020
26021         * gst-libs/gst/vaapi/gstvaapiimage.c:
26022           libs: use GstVideoInfo wherever possible.
26023           In particular, use gst_video_info_from_caps() helper function in VA image
26024           for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
26025           gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
26026
26027 2013-07-09 16:38:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26028
26029         * docs/reference/libs/libs-docs.xml.in:
26030         * docs/reference/libs/libs-sections.txt:
26031         * gst-libs/gst/vaapi/Makefile.am:
26032         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26033         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
26034           libs: drop GstVaapiImageFormat helpers.
26035           Drop GstVaapiImageFormat helpers since everything was moved to the new
26036           GstVideoFormat based API. Don't bother with backwards compatibility and
26037           just bump the library major version afterwards.
26038
26039 2013-07-09 14:03:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26040
26041         * gst-libs/gst/vaapi/gstvaapidisplay.c:
26042         * gst-libs/gst/vaapi/gstvaapidisplay.h:
26043         * gst-libs/gst/vaapi/gstvaapiimage.c:
26044         * gst-libs/gst/vaapi/gstvaapiimage.h:
26045         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26046         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26047           libs: port to new video format API.
26048
26049 2013-07-09 15:29:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26050
26051         * docs/reference/libs/libs-docs.xml.in:
26052         * docs/reference/libs/libs-sections.txt:
26053         * gst-libs/gst/vaapi/Makefile.am:
26054         * gst-libs/gst/vaapi/video-format.c:
26055         * gst-libs/gst/vaapi/video-format.h:
26056           Add new video format API.
26057           Leverage GstVideoFormat utilities from core GStreamer to provide an
26058           adaptation layer to VA image formats.
26059
26060 2013-07-09 11:13:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26061
26062         * NEWS:
26063           NEWS: updates.
26064
26065 2013-07-08 18:32:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26066
26067         * gst/vaapi/gstvaapisink.c:
26068           vaapisink: fix creation of GLX texture.
26069           Fix creation of GLX texture, to not depend on the GstCaps video size that
26070           could be wrong, especially in presence of frame cropping. So, use the size
26071           from the source VA surfaces.
26072           An optimization could be to reduce the texture size to the actual visible
26073           size on screen. i.e. scale down the texture size to match the screen dimensions,
26074           while preserving the VA surface aspect ratio. However, some VA drivers don't
26075           honour that.
26076
26077 2013-02-18 16:28:27 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26078
26079         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26080           mpeg2: add support for video cropping.
26081           If the stream has a sequence_display_extenion, then attach the
26082           display_horizontal/display_vertical dimension as the cropping
26083           rectangle width/height to the GstVaapiPicture.
26084           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26085
26086 2013-02-18 15:05:37 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26087
26088         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26089           vc1: add support for video cropping.
26090           If the Advanced profile has display_extension fields, then set the display
26091           width/height dimension as cropping rectangle to the GstVaapiPicture.
26092           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26093
26094 2013-02-15 18:50:26 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26095
26096         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26097           h264: add support for video cropping.
26098           If the encoded stream has the frame_cropping_flag set, then associate
26099           the cropping rectangle to GstVaapiPicture.
26100           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26101
26102 2013-07-08 17:01:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26103
26104         * tests/decoder.c:
26105         * tests/decoder.h:
26106         * tests/test-decode.c:
26107         * tests/test-subpicture.c:
26108           tests: add basic support for video cropping.
26109           Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
26110           instead of a plain GstVaapiSurface. This means that we can now retrieve
26111           the frame cropping rectangle from the surface proxy, along with additional
26112           information if ever needed.
26113
26114 2013-07-08 14:50:42 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26115
26116         * gst/vaapi/gstvaapidecode.c:
26117         * gst/vaapi/gstvaapisink.c:
26118         * gst/vaapi/gstvaapivideometa.c:
26119           plugins: add support for video cropping.
26120           Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
26121           specific meta information to hold video cropping details. Make the sink
26122           support video cropping in X11 and GLX modes.
26123
26124 2013-02-15 18:24:24 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26125
26126         * gst/vaapi/gstvaapivideometa.c:
26127         * gst/vaapi/gstvaapivideometa.h:
26128           plugins: add helper functions to set the render rectangle.
26129           Some video clips may have a clipping region that needs to propogate to
26130           the renderer. These helper functions make it possible to attach that
26131           clipping region, as a GstVaapiRectangle, the the video meta associated
26132           with the buffer.
26133           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26134           signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26135
26136 2013-07-08 14:47:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26137
26138         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26139         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26140           surfaceproxy: allow for NULL cropping rectangle.
26141           Make it possible associate an empty cropping rectangle to the surface
26142           proxy, thus resetting any cropping rectangle that was previously set.
26143           This allows for returning plain NULL when no cropping rectangle was
26144           initially set up to the surface proxy, or if it was reset to defaults.
26145
26146 2013-07-08 11:41:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26147
26148         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26149           surfaceproxy: clean-up helper macros.
26150           Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
26151           proxy macro argument to a GstVaapiSurfaceProxy pointer.
26152
26153 2013-07-08 11:43:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26154
26155         * gst-libs/gst/vaapi/gstvaapisurface.c:
26156         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26157         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26158         * gst-libs/gst/vaapi/gstvaapiwindow.c:
26159           surface: add simple surface info accessors as helper macros.
26160           Add helper macros to retrieve the VA surface information like size
26161           (width, height) or chroma type. This is a micro-optimization to avoid
26162           useless function calls and NULL pointer re-checks in internal routines.
26163
26164 2013-02-15 18:42:12 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26165
26166         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26167         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26168         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26169         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26170         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26171           decoder: add support for video cropping.
26172           Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
26173           cropping information from raw bitstreams to each picture being decoded.
26174           Also add helper function to surface proxy to propagate that information
26175           outside of libgstvaapi. e.g. plug-in elements or standalone applications.
26176           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26177           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26178
26179 2013-07-08 17:30:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26180
26181         * ext/codecparsers:
26182           codecparsers: update to gst-vaapi-branch commit f90de0a.
26183           f90de0a h264: fix calculation of the frame cropping rectangle
26184           535515c h264: parse the cropping rectangle separately
26185
26186 2013-07-05 19:03:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26187
26188         * ext/codecparsers:
26189           codecparsers: update to gst-vaapi-branch commit 0f68a71.
26190           0f68a71 mpeg2: fix video packet header size checks
26191
26192 2013-06-07 20:08:43 +0800  Zhong Cong <congx.zhong@intel.com>
26193
26194         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26195           mpeg2: reset quantization matrices on new sequence headers.
26196           The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
26197           shall be reset to their default values when a Sequence_Header() is
26198           decoded.
26199           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26200
26201 2013-07-05 15:49:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26202
26203         * configure.ac:
26204         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26205           mpeg2: cope with latest codecparser changes.
26206           Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
26207           used in individual header parsers. Also use the new slice parsing API.
26208
26209 2013-07-05 17:51:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26210
26211         * ext/codecparsers:
26212           codecparsers: update to gst-vaapi-branch commit dddd182.
26213           dddd182 mpeg2: add slice header parsing API
26214           94e6228 mpeg2: add sequence scalable extension parsing API
26215           531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
26216           4b135d3 h264: fix the return value type for the SEI palyload parsing methods
26217
26218 2013-06-27 12:25:44 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26219
26220         * gst/vaapi/gstvaapisink.c:
26221           vaapisink: expose the raw video formats in static caps template.
26222           Expose all raw video formats in the static caps template since the
26223           vaapisink is supporting raw data. We will get the exact set of formats
26224           supported by the driver dynamically through the _get_caps() routine.
26225           This also fixes an inconsistency wrt. GStreamer 0.10 builds.
26226           https://bugzilla.gnome.org/show_bug.cgi?id=702178
26227           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26228
26229 2013-06-27 13:53:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26230
26231         * gst/vaapi/gstvaapisink.c:
26232         * gst/vaapi/gstvaapisink.h:
26233           vaapisink: add "use-glx" property for OpenGL rendering.
26234           Now that VA/GLX capable buffers are generated by default on X11, thus
26235           depending on a VA/GLX display, we stil want to use vaPutSurface() for
26236           rendering since it is faster.
26237           Anyway, OpenGL rendering in vaapisink was only meant for testing and
26238           enabling "fancy" effects to play with. This has no real value. So,
26239           disable OpenGL rendering by default.
26240
26241 2013-06-06 05:36:03 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26242
26243         * gst/vaapi/gstvaapipluginutil.c:
26244           plugins: try to allocate a GLX display first over an X11 one.
26245           If the gstreamer-vaapi plug-in elements are built with GLX support, then
26246           try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
26247           display next.
26248           https://bugzilla.gnome.org/show_bug.cgi?id=701742
26249
26250 2013-04-25 17:07:13 +0100  Lionel Landwerlin <llandwerlin@gmail.com>
26251
26252         * configure.ac:
26253           configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
26254           jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
26255           https://bugzilla.gnome.org/show_bug.cgi?id=698858
26256           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26257
26258 2013-04-27 15:15:49 +0800  Wind Yuan <feng.yuan@intel.com>
26259
26260         * gst-libs/gst/vaapi/gstvaapiimage.c:
26261           image: fix wrong check for rect bounds in copy_image().
26262
26263 2013-06-14 13:41:14 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26264
26265         * configure.ac:
26266           Bump version for development.
26267
26268 2013-06-14 11:47:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26269
26270         * NEWS:
26271         * configure.ac:
26272           0.5.4.
26273
26274 2013-06-14 11:43:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26275
26276         * NEWS:
26277           NEWS: updates.
26278
26279 2013-06-14 11:39:54 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26280
26281         * configure.ac:
26282         * gst-libs/gst/codecparsers/Makefile.am:
26283           configure: always build the MPEG-4 parser.
26284           Always build the MPEG-4 parser for now as there are also core fixes
26285           included in the parser that cannot be tested for with API checks.
26286
26287 2013-06-14 11:32:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26288
26289         * configure.ac:
26290           configure: add --enable-builtin-codecparsers [default="yes"] option.
26291           Add flag to have all codecparsers built-in, thus ensuring that the
26292           resulting binaries have all the necessary bug fixes and this is what
26293           the QA has been testing anyway.
26294           Of course, for a completely up-to-date Linux distribution, you could
26295           also opt for --disable-builtin-codecparsers and use the system ones.
26296           Though, some core fixes could be missing, and those cannot be tested
26297           for with API checks.
26298
26299 2013-06-14 11:14:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26300
26301         * ext/codecparsers:
26302           codecparsers: update to gst-vaapi-branch commit 843ce3e.
26303           843ce3e jpeg: fix default Huffman tables generation.
26304           8655187 mpeg2: fix the pixel-aspect-ratio calculation
26305           21099dc mpeg2: actually store video bitrate values
26306           dd02087 mpeg2: fix picture packet extension size check
26307           25948e9 mpeg2: increase min size for picture coding ext
26308           f1f5a40 ensure the debug category is properly initialized
26309
26310 2013-06-12 14:16:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26311
26312         * debian.upstream/Makefile.am:
26313           debian: fix list of generated files for .deb packaging.
26314
26315 2013-06-12 13:48:26 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26316
26317         * configure.ac:
26318         * debian.upstream/Makefile.am:
26319         * debian.upstream/control.in:
26320           debian: fix libgstvaapi -dev package name.
26321           Fix libgstvaapi -dev package name so that to allow installation of both
26322           GStreamer 0.10 and 1.0.x based packages.
26323
26324 2013-06-05 17:42:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26325
26326         * NEWS:
26327           NEWS: updates.
26328
26329 2013-05-31 11:09:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26330
26331         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26332           wayland: fix memory leak of display resources.
26333
26334 2013-06-04 07:14:22 +0800  Zhao Halley <halley.zhao@intel.com>
26335
26336         * gst/vaapi/gstvaapisink.c:
26337           vaapisink: fix build without VA/GLX support.
26338
26339 2013-06-05 11:01:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26340
26341         * gst/vaapi/gstvaapivideomemory.c:
26342         * gst/vaapi/gstvaapivideomemory.h:
26343           plugins: allow buffer mappings to GstVaapiSurfaceProxy.
26344           Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
26345           video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
26346           caller. This is the only sensible enough thing to do in this mode as
26347           the underlying surface pixels need to be extracted through an explicit
26348           call to the gst_video_frame_map() function instead.
26349           A possible use-case of this is to implement a "handoff" signal handler
26350           to fakesink or identity element for further processing.
26351
26352 2013-06-03 10:22:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26353
26354         * gst/vaapi/gstvaapivideomemory.c:
26355           plugins: silence check for direct-rendering mode in video memory.
26356           Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
26357           mode support, and not trigger fatal-criticals if either test surface or
26358           image could not be created. Typical case: pixel format mismatch, e.g. NV12
26359           supported by most hardware vs. I420 supported by most software decoders.
26360
26361 2013-06-03 10:06:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26362
26363         * gst/vaapi/gstvaapivideomemory.c:
26364           plugins: improve video memory flags safety checks.
26365           On map, ensure we have GST_MAP_WRITE flags since this is only what we
26366           support for now. Likewise, on unmap, make sure that the VA image is
26367           unmapped for either read or write, while still committing it to the
26368           VA surface if write was requested.
26369
26370 2013-05-30 18:17:07 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26371
26372         * gst-libs/gst/vaapi/gstvaapisurface.c:
26373           surface: fix memory leak through unreleased parent context.
26374           Break the circular references between GstVaapiContext and its children
26375           GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
26376           context, which holds a reference to its VA surfaces, then none of those
26377           were released.
26378           How does this impact support for subpictures?
26379           The only situation when the parent context needs to disappear is when
26380           it is replaced with another one because of a resolution change in the
26381           video stream for instance, or a normal destroy. In this case, it does
26382           not really matter to apply subpictures to the peer surfaces since they
26383           are either gone, or those that are left in the pipe can probably bear
26384           a reinstantiation of the subpictures for it.
26385           So, parent_context is set to NULL when the parent context is destroyed,
26386           other VA surfaces can still get subpictures attached to them, individually
26387           not as a whole. i.e. subpictures for surface S1 will be created from
26388           active composition buffers and associated to S1, subpictures for S2 will
26389           be created from the next active composition buffers, etc. We don't try
26390           to cache the subpictures in those cases (pending surfaces until EOS
26391           is reached, or pending surfaces until new surfaces matching new VA context
26392           get to be used instead).
26393
26394 2013-05-27 14:01:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26395
26396         * gst/vaapi/gstvaapisink.c:
26397           vaapisink: fix one-time initialization when display property is set.
26398           Fix gst_vaapisink_ensure_display() to perform one-time initialization
26399           tasks even if the `display' property was explicitly set.
26400
26401 2013-05-27 15:59:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26402
26403         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26404           window: fix GLX window initialization.
26405           Make sure to create the GLX context once the window object has completed
26406           its creation. Since gl_resize() relies on the newly created window size,
26407           then we cannot simply overload the GstVaapiWindowClass::create() hook.
26408           So, we just call into gst_vaapi_window_glx_ensure_context() once the
26409           window object is created in the gst_vaapi_window_glx_new*() functions.
26410
26411 2013-05-27 17:18:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26412
26413         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26414         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26415         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26416         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26417         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26418         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26419         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26420         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26421         * gst-libs/gst/vaapi/gstvaapitexture.c:
26422         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26423         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26424         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26425         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26426           display: validate display types.
26427
26428 2013-05-27 16:13:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26429
26430         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26431         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26432         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26433           display: drop internal NAME_PREFIX, store the real display name.
26434           Always store a valid display name/device path, instead of adding a
26435           particular prefix. i.e. make it simply a strdup(), or "" if it was
26436           initially NULL.
26437
26438 2013-05-27 13:17:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26439
26440         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26441         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26442         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26443         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26444         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26445         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26446         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26447           display: make it possible to lookup the display cache by type.
26448           Make it possible to add extra an extra filter to most of display cache
26449           lookup functions so that the GstVaapiDisplay instance can really match
26450           a compatible and existing display by type, instead of relying on extra
26451           string tags (e.g. "X11:" prefix, etc.).
26452
26453 2013-05-24 16:19:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26454
26455         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26456         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26457         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26458           display: cope with new display cache API.
26459
26460 2013-05-24 16:12:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26461
26462         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26463         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26464           display: rework display cache API.
26465           Simplify display cache API, while making it more flexible. We can now create
26466           custom lookup functions with gst_vaapi_display_cache_lookup_custom().
26467
26468 2013-05-24 15:05:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26469
26470         * tests/test-display.c:
26471           tests: improve check for display cache.
26472           Improve check for display cache infrastructure. In particular, for X11 and
26473           GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
26474           from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
26475           shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
26476           already exists will have to generate different VA displays.
26477
26478 2013-05-15 10:33:16 +0800  Zhao Halley <halley.zhao@intel.com>
26479
26480         * gst/vaapi/gstvaapiuploader.c:
26481           uploader: fix memory leak in GStreamer 0.10 builds.
26482           In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
26483           but it exhibited a memory leak because the surface generated for the
26484           GstVaapiVideoMeta totally lost its parent video pool. So, it was not
26485           possible to release that surface back to the parent pool when the meta
26486           gets released, and the memory consumption kept growing.
26487           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26488
26489 2013-05-23 18:56:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26490
26491         * gst/vaapi/gstvaapivideometa.c:
26492           plugins: fix gst_vaapi_video_meta_new_from_pool().
26493           Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
26494           the underlying object type, the gst_vaapi_video_meta_new_from_pool()
26495           was hereby totally broken. Fixed this regression by using the newly
26496           provided gst_vaapi_video_pool_get_object_type() function.
26497
26498 2013-05-23 18:22:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26499
26500         * gst/vaapi/gstvaapiuploader.c:
26501         * gst/vaapi/gstvaapivideomemory.c:
26502         * gst/vaapi/gstvaapivideometa.c:
26503           plugins: cope with GST_VAAPI_IS_xxx() macros removal.
26504
26505 2013-05-23 18:19:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26506
26507         * tests/decoder.c:
26508           tests: cope with GST_VAAPI_IS_xxx() macros removal.
26509
26510 2013-05-23 18:45:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26511
26512         * docs/reference/libs/libs-sections.txt:
26513         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26514         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26515         * gst-libs/gst/vaapi/gstvaapivideopool.c:
26516         * gst-libs/gst/vaapi/gstvaapivideopool.h:
26517         * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26518           libs: add query for GstVaapiVideoPool object types.
26519           Add API to identify the underlying GstVaapiVideoPool object type.
26520
26521 2013-05-23 18:15:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26522
26523         * docs/reference/libs/libs-sections.txt:
26524         * gst-libs/gst/vaapi/gstvaapicontext.c:
26525         * gst-libs/gst/vaapi/gstvaapicontext.h:
26526         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26527         * gst-libs/gst/vaapi/gstvaapidecoder.h:
26528         * gst-libs/gst/vaapi/gstvaapidisplay.c:
26529         * gst-libs/gst/vaapi/gstvaapidisplay.h:
26530         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26531         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26532         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26533         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26534         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26535         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26536         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26537         * gst-libs/gst/vaapi/gstvaapiimage.c:
26538         * gst-libs/gst/vaapi/gstvaapiimage.h:
26539         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26540         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26541         * gst-libs/gst/vaapi/gstvaapiobject.c:
26542         * gst-libs/gst/vaapi/gstvaapiobject.h:
26543         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26544         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26545         * gst-libs/gst/vaapi/gstvaapisurface.c:
26546         * gst-libs/gst/vaapi/gstvaapisurface.h:
26547         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26548         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26549         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26550         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26551         * gst-libs/gst/vaapi/gstvaapitexture.c:
26552         * gst-libs/gst/vaapi/gstvaapivideopool.c:
26553         * gst-libs/gst/vaapi/gstvaapivideopool.h:
26554         * gst-libs/gst/vaapi/gstvaapiwindow.c:
26555         * gst-libs/gst/vaapi/gstvaapiwindow.h:
26556         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26557         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26558         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26559         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26560           libs: drop GST_VAAPI_IS_xxx() helper macros.
26561           Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
26562           deriving from GObject and so those were only checking for whether the
26563           argument was NULL or not. This is now irrelevant, and even confusing
26564           to some extent, because we no longer have type checking.
26565           Note: this incurs more type checking (review) but the libgstvaapi is
26566           rather small, so this is manageable.
26567
26568 2013-05-07 18:52:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26569
26570         * configure.ac:
26571           Bump library major version.
26572           The whole libgstvaapi libraries got a major refresh to get rid of GObject.
26573           This is a fundamental change that requires a new SONAME. More changes are
26574           underway to streamline the core libraries.
26575           So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
26576           On one particular test (sintel HD trailer), the total number of executed
26577           instruction was reduced by 8%.
26578
26579 2013-05-07 18:37:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26580
26581         * docs/reference/libs/Makefile.am:
26582         * docs/reference/libs/libs-docs.xml.in:
26583         * docs/reference/libs/libs-sections.txt:
26584         * docs/reference/libs/libs.core.types:
26585         * docs/reference/libs/libs.glx.types:
26586         * docs/reference/libs/libs.x11.types:
26587           docs: cope with removed APIs.
26588           Some APIs are dead because they are no longer based on GObject.
26589
26590 2013-05-06 14:43:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26591
26592         * gst/vaapi/gstvaapidecode.c:
26593         * gst/vaapi/gstvaapidownload.c:
26594         * gst/vaapi/gstvaapipluginutil.c:
26595         * gst/vaapi/gstvaapipostproc.c:
26596         * gst/vaapi/gstvaapisink.c:
26597         * gst/vaapi/gstvaapiupload.c:
26598         * gst/vaapi/gstvaapiuploader.c:
26599         * gst/vaapi/gstvaapivideobufferpool.c:
26600         * gst/vaapi/gstvaapivideoconverter_glx.c:
26601         * gst/vaapi/gstvaapivideomemory.c:
26602         * gst/vaapi/gstvaapivideometa.c:
26603           plugins: cope with new GstVaapiMiniObject objects.
26604
26605 2013-05-07 11:45:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26606
26607         * tests/decoder.c:
26608         * tests/image.c:
26609         * tests/output.c:
26610         * tests/simple-decoder.c:
26611         * tests/test-decode.c:
26612         * tests/test-display.c:
26613         * tests/test-subpicture.c:
26614         * tests/test-surfaces.c:
26615         * tests/test-textures.c:
26616         * tests/test-windows.c:
26617           tests: cope with new GstVaapiMiniObject objects.
26618
26619 2013-05-07 15:38:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26620
26621         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26622           display: fix set_synchronous() to lock display.
26623
26624 2013-05-03 19:02:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26625
26626         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26627         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26628           videopool: simplify creation of video objects pool.
26629
26630 2013-05-07 18:17:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26631
26632         * gst-libs/gst/vaapi/gstvaapiobject.c:
26633         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26634         * gst-libs/gst/vaapi/gstvaapitypes.h:
26635           libs: simplify GstVaapiID definitions.
26636           Make GstVaapiID a gsize instead of guessing an underlying integer large
26637           enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
26638           this is plain zero and that it is no longer passed as varargs.
26639
26640 2013-05-02 16:11:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26641
26642         * gst-libs/gst/vaapi/Makefile.am:
26643         * gst-libs/gst/vaapi/gstvaapi_priv.h:
26644         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26645         * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26646         * gst-libs/gst/vaapi/gstvaapivalue.c:
26647         * gst-libs/gst/vaapi/gstvaapivalue.h:
26648           libs: drop obsolete function helpers and objects.
26649           Drop obsolete GstVaapiID related function helpers for passing them as
26650           GValues.
26651
26652 2013-05-07 11:39:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26653
26654         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26655         * gst-libs/gst/vaapi/gstvaapidisplay.c:
26656         * gst-libs/gst/vaapi/gstvaapidisplay.h:
26657         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26658         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26659         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26660         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26661         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26662         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26663         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26664         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26665         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26666         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26667         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26668         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26669         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26670         * gst-libs/gst/vaapi/gstvaapiobject.c:
26671         * gst-libs/gst/vaapi/gstvaapivideopool.c:
26672           libs: use GstVaapiMiniObject for display objects.
26673
26674 2013-05-06 14:07:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26675
26676         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26677         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26678         * gst-libs/gst/vaapi/gstvaapidecoder.h:
26679         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26680         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
26681         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26682         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
26683         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26684         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
26685         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26686         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
26687         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26688         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26689         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26690         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
26691           libs: use GstVaapiMiniObject for video decoders.
26692           Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
26693           GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
26694           helper function to let the user add a callback to a function triggered
26695           whenever the codec state (e.g. caps) changes.
26696
26697 2013-05-03 11:01:12 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26698
26699         * docs/reference/libs/libs-sections.txt:
26700         * gst-libs/gst/vaapi/Makefile.am:
26701         * gst-libs/gst/vaapi/gstvaapicontext.c:
26702         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26703         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26704         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26705         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26706         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26707         * gst-libs/gst/vaapi/gstvaapivideopool.c:
26708         * gst-libs/gst/vaapi/gstvaapivideopool.h:
26709         * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26710           libs: use GstVaapiMiniObject for video object pools.
26711           Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
26712           GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
26713           no longer used for a long time. Make object allocators static, i.e.
26714           local to the shared library.
26715
26716 2013-04-30 17:22:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26717
26718         * gst-libs/gst/vaapi/gstvaapitexture.c:
26719         * gst-libs/gst/vaapi/gstvaapitexture.h:
26720           libs: use GstVaapiObject for texture objects.
26721
26722 2013-04-30 17:20:14 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26723
26724         * gst-libs/gst/vaapi/Makefile.am:
26725         * gst-libs/gst/vaapi/gstvaapiwindow.c:
26726         * gst-libs/gst/vaapi/gstvaapiwindow.h:
26727         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26728         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26729         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26730         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
26731         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
26732         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26733         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
26734         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26735         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26736         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
26737           libs: use GstVaapiObject for window objects.
26738
26739 2013-04-30 17:22:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26740
26741         * gst-libs/gst/vaapi/gstvaapicontext.c:
26742         * gst-libs/gst/vaapi/gstvaapicontext.h:
26743         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26744         * gst-libs/gst/vaapi/gstvaapiimage.c:
26745         * gst-libs/gst/vaapi/gstvaapiimage.h:
26746         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26747         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26748         * gst-libs/gst/vaapi/gstvaapisurface.c:
26749         * gst-libs/gst/vaapi/gstvaapisurface.h:
26750         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26751         * gst-libs/gst/vaapi/gstvaapivideopool.c:
26752           libs: use GstVaapiObject for VA objects.
26753
26754 2013-04-30 17:20:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26755
26756         * gst-libs/gst/vaapi/Makefile.am:
26757         * gst-libs/gst/vaapi/gstvaapiobject.c:
26758         * gst-libs/gst/vaapi/gstvaapiobject.h:
26759         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
26760           Port GstVaapiObject to GstVaapiMiniObject.
26761
26762 2013-04-30 10:28:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26763
26764         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26765         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
26766         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26767         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26768         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
26769         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
26770           libs: refine GstVaapiMiniObject.
26771           Drop support for user-defined data since this capability was not used
26772           so far and GstVaapiMiniObject represents the smallest reference counted
26773           object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
26774           Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
26775           is also possible to further simplify the layout of the object. i.e. merge
26776           GstVaapiMiniObjectBase into GstVaapiMiniObject.
26777
26778 2013-05-07 16:43:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26779
26780         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26781           decoder: update picture size from the bitstream.
26782           Propagate the picture size from the bitstream to the GstVaapiDecoder,
26783           and subsequent user who installed a signal on notify::caps. This fixes
26784           decoding of TS streams when the demuxer failed to extract the required
26785           information.
26786
26787 2013-04-25 14:16:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26788
26789         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26790           decoder: fix raw decoding mode.
26791           Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
26792           surface proxy to the caller.
26793
26794 2013-04-25 13:56:18 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26795
26796         * docs/reference/libs/libs-sections.txt:
26797         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26798         * gst-libs/gst/vaapi/gstvaapidecoder.h:
26799         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26800         * gst/vaapi/gstvaapidecode.c:
26801           decoder: add gst_vaapi_decoder_get_frame_with_timeout().
26802           Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
26803           wait for a frame to be decoded, until the specified timeout in microseconds,
26804           prior to returning to the caller.
26805           This is a fix to performance regression from 851cc0, whereby the vaapidecode
26806           loop executed on the srcpad task was called to often, thus starving all CPU
26807           resources.
26808
26809 2013-04-19 14:38:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26810
26811         * configure.ac:
26812           Bump version for development.
26813
26814 2013-04-18 19:09:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26815
26816         * NEWS:
26817         * configure.ac:
26818           0.5.3.
26819
26820 2013-04-18 19:08:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26821
26822         * NEWS:
26823           NEWS: updates.
26824
26825 2013-04-18 15:55:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26826
26827         * gst/vaapi/gstvaapidecode.c:
26828           vaapidecode: rework heuristics to detect decode timeout.
26829           Rework heuristics to detect when downstream element ran into errors,
26830           and thus failing to release any VA surface in due time for the current
26831           frame to get decoded. In particular, recalibrate the render time base
26832           when the first frame gets submitted downstream, or when there is no
26833           timestamp that could be inferred.
26834
26835 2013-04-18 15:50:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26836
26837         * gst-libs/gst/vaapi/gstcompat.h:
26838         * gst/vaapi/gstvaapidecode.c:
26839           vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
26840           Rework GstVideoDecoder::handle_frame() to decode the current frame,
26841           while possibly waiting for a free surface, and separately submit all
26842           decoded frames from a task. This makes it possible to pop and render
26843           decoded frames as soon as possible.
26844
26845 2013-04-18 10:06:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26846
26847         * gst/vaapi/gstvaapidecode.c:
26848         * gst/vaapi/gstvaapidownload.c:
26849         * gst/vaapi/gstvaapisink.c:
26850         * gst/vaapi/gstvaapiupload.c:
26851           plugins: use gst_object_unref() wherever applicable.
26852           Use gst_object_unref() wherever applicable, e.g. objects derived from
26853           GstElement, GstVideoPool, etc.
26854
26855 2013-04-17 14:21:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26856
26857         * docs/reference/plugins/plugins-docs.xml.in:
26858         * docs/reference/plugins/plugins-sections.txt:
26859         * docs/reference/plugins/plugins.types:
26860           docs: drop obsolete plug-ins.
26861           Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
26862           i.e. vaapiupload and vaapidownload are no longer the recommended
26863           plug-ins to use.
26864
26865 2013-04-17 13:17:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26866
26867         * debian.upstream/rules:
26868           debian: fix build of GStreamer 0.10 packages.
26869           Fix build of Debian packages to scan the actual GStreamer API version
26870           from the generated changelog file.
26871
26872 2013-04-17 10:58:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26873
26874         * gst/vaapi/gstvaapipostproc.c:
26875           vaapipostproc: minor clean-ups.
26876           Use g_clear_object() wherever appropriate and remove dead-code.
26877
26878 2013-04-17 10:53:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26879
26880         * gst/vaapi/gstvaapipostproc.c:
26881           vaapipostproc: fix reference counting buf for passthrough mode.
26882           Fix reference counting bug for passthrough mode, whereby the input buffer
26883           was propagated as is downstream through gst_pad_push() without increasing
26884           its reference count before. The was a problem when gst_pad_push() returns
26885           an error and we further decrease the reference count of the input buffer.
26886
26887 2013-04-17 10:18:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26888
26889         * gst-libs/gst/vaapi/gstcompat.h:
26890         * gst/vaapi/Makefile.am:
26891         * gst/vaapi/gstvaapi.c:
26892         * gst/vaapi/gstvaapidecode.c:
26893         * gst/vaapi/gstvaapipluginutil.h:
26894         * gst/vaapi/gstvaapipostproc.c:
26895           vaapipostproc: port to GStreamer 1.0.
26896           Add support for interlaced streams with GStreamer 1.0 too. Basically,
26897           this enables vaapipostproc, though it is not auto-plugged yet. We also
26898           make sure to reply to CAPS queries, and happily handle CAPS events.
26899
26900 2013-04-17 10:14:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26901
26902         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26903           decoder: fix GstVideoCodecFrame flags for interlaced contents.
26904           Fix support for interlaced contents with GStreamer 0.10. In particular,
26905           propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
26906           correctly.
26907           This is a regression from commit 87e5717.
26908
26909 2013-04-16 13:23:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26910
26911         * gst-libs/gst/vaapi/Makefile.am:
26912         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26913         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26914         * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
26915         * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
26916           decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
26917           Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
26918           structure was only useful to parsing and a proper GstvaapiDecoderFrame
26919           instance will be created instead.
26920
26921 2013-04-16 19:09:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26922
26923         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26924           decoder: export presentation timestamp for raw decoding mode.
26925           Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
26926           held any information about the expected presentation timestamp, frame
26927           duration or additional flags like interlaced or top-field-first.
26928
26929 2013-04-16 18:56:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26930
26931         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26932         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26933           decoder: use new GstVaapiSurfaceProxy utility functions.
26934           Use new GstVaapiSurfaceProxy internal helper functions to propagate the
26935           necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
26936           Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
26937           i.e. increase the GstVideoCodecFrame reference count in push_frame rather
26938           than gst_vaapi_picture_output().
26939
26940 2013-04-16 18:35:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26941
26942         * docs/reference/libs/libs-sections.txt:
26943         * gst-libs/gst/vaapi/Makefile.am:
26944         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26945         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26946         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26947           surfaceproxy: add more attributes for raw decoding modes.
26948           Add more attributes for raw decoding modes, i.e. directly through the
26949           libgstvaapi helper library. In particular, add presentation timestamp,
26950           duration and a couple of flags (interlaced, TFF, RFF, one-field).
26951
26952 2013-04-16 13:48:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26953
26954         * docs/reference/libs/libs-sections.txt:
26955         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26956         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26957         * gst/vaapi/gstvaapidecode.c:
26958         * tests/simple-decoder.c:
26959           surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
26960           Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
26961           to call some user-provided function when the surface proxy is released.
26962
26963 2013-04-15 12:52:51 +0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26964
26965         * configure.ac:
26966         * gst-libs/gst/vaapi/Makefile.am:
26967           build: link libgstvaapi-glx-1.0.so against libdl.
26968           Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
26969           to resolve glXGetProcAddress() from GLX libraries. This fix builds on
26970           Fedora 17.
26971           https://bugzilla.gnome.org/show_bug.cgi?id=698046
26972           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26973
26974 2013-04-15 14:22:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26975
26976         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26977           decoder: fix gst_vaapi_decoder_get_codec_state().
26978           Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
26979           supposed to make GstVaapiDecoder own the return GstVideoCodecState
26980           object. Only comment was updated, not the actual code.
26981
26982 2013-04-15 13:58:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26983
26984         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26985         * gst/vaapi/gstvaapidecode.c:
26986           decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
26987           Make gst_vaapi_decoder_get_codec_state() return the original codec state,
26988           i.e. make the GstVaapiDecoder object own the return state so that callers
26989           that want an extra reference to it would just gst_video_codec_state_ref()
26990           it before usage. This aligns the behaviour with what we had before with
26991           gst_vaapi_decoder_get_caps().
26992           This is an ABI incompatible change, library major version was bumped from
26993           previous release (0.5.2).
26994
26995 2013-04-15 13:52:19 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26996
26997         * gst/vaapi/gstvaapivideobufferpool.h:
26998         * gst/vaapi/gstvaapivideoconverter_glx.h:
26999           plugins: mark a few more functions as internal.
27000           Mark the following functions are internal, i.e. private to the vaapi plug-in:
27001           - gst_vaapi_video_buffer_pool_get_type()
27002           - gst_vaapi_video_converter_glx_get_type()
27003           - gst_vaapi_video_converter_glx_new()
27004
27005 2013-04-15 13:48:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27006
27007         * gst/vaapi/gstvaapivideobuffer.c:
27008           plugins: implement GstSurfaceMeta API.
27009           Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
27010           an unstable/deprecated API, this makes it possible to support Clutter
27011           sink with minimal changes. Tested against clutter-gst 1.9.92.
27012
27013 2013-04-12 17:12:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27014
27015         * gst/vaapi/gstvaapisink.c:
27016           vaapisink: optimize GstVideoOverlayInterface::expose().
27017           When render-mode is "overlay", then it is not really useful to peek into
27018           the GstBaseSink::last_buffer, since we have our own video_buffer already
27019           recorded and maintained into GstVaapiSink.
27020
27021 2013-04-12 17:05:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27022
27023         * gst/vaapi/gstvaapisink.c:
27024           vaapisink: fix memory leak of GstSample objects.
27025           Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
27026           This also fixes extra unreferencing of the underlying GstBuffer in the common
27027           path afterwards (for both 0.10 or 1.0).
27028
27029 2013-04-12 13:44:52 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27030
27031         * gst-libs/gst/vaapi/gstcompat.h:
27032         * gst/vaapi/gstvaapi.c:
27033           plugins: fix description for gst-inspect.
27034           Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
27035           need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
27036           incorrectly uses #name for creating the plug-in name, instead of using macro
27037           expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
27038
27039 2013-04-11 09:24:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27040
27041         * README:
27042           README: updates.
27043           Update build requirements for GStreamer 1.0.x support. Add section for
27044           ways to report bugs.
27045
27046 2013-04-10 16:54:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27047
27048         * NEWS:
27049           NEWS: updates.
27050
27051 2013-04-10 15:31:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27052
27053         * gst-libs/gst/vaapi/Makefile.am:
27054         * gst/vaapi/Makefile.am:
27055           Fix make dist to include all source files, in any case.
27056           Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
27057           sure to include all source files in either case while generating source
27058           tarballs.
27059
27060 2013-04-10 15:21:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27061
27062         * configure.ac:
27063           Bump library major version.
27064           Bump library major version, while preserving a major version of 0 for
27065           GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
27066           0.10 based librarieS.
27067
27068 2013-04-10 14:37:42 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27069
27070         * gst/vaapi/gstvaapivideomemory.c:
27071         * gst/vaapi/gstvaapivideomemory.h:
27072           plugins: implement direct-rendering mode for raw YUV buffer uploads.
27073           Allow direct-rendering (writes) into target VA surfaces.
27074
27075 2013-04-09 16:02:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27076
27077         * gst/vaapi/gstvaapivideobufferpool.c:
27078         * gst/vaapi/gstvaapivideomemory.c:
27079         * gst/vaapi/gstvaapivideomemory.h:
27080           plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
27081           Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
27082           the last component is unmapped. Downloads are not supported yet. The aim
27083           was to first support SW decoding + HW accelerated rendering (vaapisink).
27084           e.g. for Wayland.
27085
27086 2013-04-03 11:10:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27087
27088         * gst/vaapi/gstvaapidecode.c:
27089           vaapidecode: submit all decoded frames before decoding a new one.
27090           Make sure to purge all pending frames that were already decoded prior
27091           to decoding a new one. This helps release VA surfaces as early as
27092           possible.
27093
27094 2013-04-02 16:12:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27095
27096         * gst/vaapi/gstvaapidecode.c:
27097           vaapidecode: reply to CAPS queries.
27098           Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
27099           the set of allowed caps, i.e. it works similar to GstPad::get_caps().
27100           This fixes fallback to SW decoding if no HW decoder is available.
27101
27102 2013-03-20 11:26:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27103
27104         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27105         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27106         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27107         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27108         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27109         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27110           decoder: fix unpaired GstBuffer map/unmaps.
27111           This possibly fixes a few memory leaks along the way.
27112
27113 2013-03-20 14:40:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27114
27115         * configure.ac:
27116         * gst-libs/gst/vaapi/gstcompat.h:
27117         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27118         * gst-libs/gst/vaapi/gstvaapiprofile.c:
27119         * gst/vaapi/Makefile.am:
27120         * gst/vaapi/gstvaapi.c:
27121         * gst/vaapi/gstvaapidecode.c:
27122         * gst/vaapi/gstvaapisink.c:
27123         * gst/vaapi/gstvaapisink.h:
27124         * gst/vaapi/gstvaapiuploader.c:
27125         * tests/codec.c:
27126           Allow build against either GStreamer API (0.10 or 1.0).
27127           Introduce a new configure option --with-gstreamer-api that determines
27128           the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
27129           Also integrate more compatibility glue into gstcompat.h and plugins.
27130
27131 2012-11-08 16:41:22 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27132
27133         * gst/vaapi/gstvaapidecode.c:
27134         * gst/vaapi/gstvaapisink.c:
27135         * gst/vaapi/gstvaapisink.h:
27136           plugins: use new video buffer pools.
27137           Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
27138           GstBaseSink::propose_allocation() to expose that pool to upstream
27139           elements; and also implement GstVideoDecoder::decide_allocation() to
27140           actually use that pool (from downstream), if any, or create one.
27141           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27142
27143 2012-11-08 16:41:22 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27144
27145         * gst/vaapi/Makefile.am:
27146         * gst/vaapi/gstvaapivideobufferpool.c:
27147         * gst/vaapi/gstvaapivideobufferpool.h:
27148         * gst/vaapi/gstvaapivideomemory.c:
27149         * gst/vaapi/gstvaapivideomemory.h:
27150           plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
27151           Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
27152           object currently holds a reference to GstVaapiVideoMeta.
27153           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27154
27155 2013-04-04 17:36:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27156
27157         * gst/vaapi/gstvaapivideometa.c:
27158         * gst/vaapi/gstvaapivideometa.h:
27159           plugins: allow copies of GstVaapiVideoMeta objects.
27160           Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
27161           objects created from GstVaapiVideoPool. This is mostly useful to clone a
27162           GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
27163           rendering flags.
27164
27165 2013-04-04 16:16:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27166
27167         * gst/vaapi/gstvaapivideometa.c:
27168           plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
27169           Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
27170           reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
27171           gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
27172           argument is NULL.
27173
27174 2012-09-03 14:00:25 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27175
27176         * gst/vaapi/Makefile.am:
27177         * gst/vaapi/gstvaapi.c:
27178         * gst/vaapi/gstvaapidecode.c:
27179         * gst/vaapi/gstvaapidownload.c:
27180         * gst/vaapi/gstvaapipluginutil.c:
27181         * gst/vaapi/gstvaapipostproc.c:
27182         * gst/vaapi/gstvaapisink.c:
27183         * gst/vaapi/gstvaapiupload.c:
27184         * gst/vaapi/gstvaapiuploader.c:
27185         * gst/vaapi/gstvaapivideobuffer.c:
27186         * gst/vaapi/gstvaapivideoconverter_glx.c:
27187         * gst/vaapi/gstvaapivideometa.c:
27188         * gst/vaapi/gstvaapivideometa.h:
27189           plugins: initial port to GStreamer 1.0.
27190           Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
27191           is rather minimalistic so that to test the basic functionality.
27192           Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
27193           needs polishing wrt. to GStreamer 1.x functionality and the former are
27194           totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
27195           which are yet to be implemented.
27196           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27197
27198 2013-03-21 10:12:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27199
27200         * gst-libs/gst/vaapi/gstcompat.h:
27201         * tests/codec.c:
27202         * tests/decoder.c:
27203         * tests/simple-decoder.c:
27204         * tests/test-subpicture.c:
27205           tests: add support for GStreamer 1.0.
27206
27207 2012-09-04 15:12:18 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27208
27209         * configure.ac:
27210         * gst-libs/gst/vaapi/gstcompat.h:
27211         * gst-libs/gst/vaapi/gstvaapicontext.c:
27212         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27213         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27214         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27215         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27216         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27217         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27218         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27219         * gst-libs/gst/vaapi/gstvaapidisplay.c:
27220         * gst-libs/gst/vaapi/gstvaapiimage.c:
27221         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27222         * gst-libs/gst/vaapi/gstvaapiprofile.c:
27223         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27224         * gst-libs/gst/vaapi/gstvaapisurface.h:
27225           Add initial support for GStreamer 1.0.
27226           This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
27227           core decoding library. The changes are kept rather minimal here so that
27228           the library retains as little dependency as possible on core GStreamer
27229           functionality.
27230           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27231
27232 2013-04-03 15:58:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27233
27234         * gst/vaapi/gstvaapisink.c:
27235           vaapisink: improve check for raw YUV format mode.
27236           Improve check for raw YUV format modes by avoiding checks against strings
27237           ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
27238           GstBaseSink::set_caps() is called first and if VA surface format mode is
27239           used, then GstBaseSink::buffer_alloc() is not called. If the latter is
27240           called before set_caps(), then we just make a full check. This one is
27241           pretty rare though, e.g. it usually happens once for custom pipelines.
27242
27243 2013-04-03 15:06:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27244
27245         * gst/vaapi/gstvaapipluginutil.c:
27246           plugins: don't fail if there is no overlay composition to apply.
27247           Fix gst_vaapi_apply_composition() to not fail if no overlay composition
27248           was found. i.e. return success (TRUE). This was harmless though extra
27249           debug messages are not nice.
27250           This is a regression introduced by commit 95b8659.
27251
27252 2013-04-03 14:59:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27253
27254         * gst/vaapi/gstvaapidecode.c:
27255         * gst/vaapi/gstvaapidecode.h:
27256           vaapidecode: expose the exact set of supported HW decoders.
27257           Don't return static caps that don't mean anything for the underlying codecs
27258           that are actually supported for decoding. i.e. always allocate a VA display
27259           and retrieve the exact set of HW decoders available. That VA display may be
27260           re-used later on during negotiation through GstVideoContext "prepare-context".
27261           This fixes fallback to SW decoding if no HW decoder is available.
27262
27263 2013-04-03 13:08:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27264
27265         * docs/reference/libs/libs-sections.txt:
27266         * gst-libs/gst/vaapi/gstvaapicontext.c:
27267         * gst-libs/gst/vaapi/gstvaapicontext.h:
27268         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27269         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27270           decoder: drop obsolete functions.
27271           Drop the following functions that are now obsolete:
27272           - gst_vaapi_context_get_surface()
27273           - gst_vaapi_context_put_surface()
27274           - gst_vaapi_context_find_surface_by_id()
27275           - gst_vaapi_surface_proxy_new()
27276           - gst_vaapi_surface_proxy_get_context()
27277           - gst_vaapi_surface_proxy_set_context()
27278           - gst_vaapi_surface_proxy_set_surface()
27279           This is an API change.
27280
27281 2013-04-03 13:14:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27282
27283         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27284           decoder: delegate surface size check to VA context reset.
27285           Now that the surface pool is reference counted in the surface proxy wrapper,
27286           we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
27287           Besides, this check is already performed in gst_vaapi_context_reset_full().
27288
27289 2013-04-03 11:37:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27290
27291         * docs/reference/libs/libs-sections.txt:
27292         * gst-libs/gst/vaapi/gstvaapicontext.c:
27293         * gst-libs/gst/vaapi/gstvaapicontext.h:
27294         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27295         * gst-libs/gst/vaapi/gstvaapisurface.h:
27296         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27297         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27298           decoder: simplify acquisition/release of spare surface.
27299           Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
27300           proxy from the context surface pool. This change also makes sure to retain
27301           the parent surface pool in the proxy.
27302           Besides, it was also totally useless to attach/detach parent context to
27303           VA surface each time we acquire/release it. Since the whole context owns
27304           all associated VA surfaces, we can mark this as such only once and for all.
27305
27306 2013-03-29 10:39:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27307
27308         * configure.ac:
27309           Bump version for development.
27310
27311 2013-03-28 10:18:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27312
27313         * NEWS:
27314         * configure.ac:
27315           0.5.2.
27316
27317 2013-03-28 10:15:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27318
27319         * NEWS:
27320           NEWS: updates.
27321
27322 2013-03-26 18:57:00 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27323
27324         * gst/vaapi/gstvaapipluginutil.c:
27325         * gst/vaapi/gstvaapisink.c:
27326           plugins: fix usage of gst_vaapi_reply_to_query().
27327           Make gst_vaapi_reply_to_query() first check whether the query argument
27328           is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
27329           Then, make sure vaapisink propagates the query to the parent class if
27330           it is not a video-context query.
27331
27332 2013-03-26 18:45:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27333
27334         * gst/vaapi/gstvaapivideobuffer.c:
27335         * gst/vaapi/gstvaapivideobuffer.h:
27336           plugins: streamline video buffers.
27337           Add new gst_vaapi_video_buffer_new() helper function that allocates a video
27338           buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
27339           gst_vaapi_video_buffer_get_meta().
27340
27341 2013-03-26 10:31:10 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27342
27343         * docs/reference/libs/libs-sections.txt:
27344         * gst-libs/gst/vaapi/Makefile.am:
27345         * gst/vaapi/Makefile.am:
27346         * gst/vaapi/gstvaapidecode.c:
27347         * gst/vaapi/gstvaapidownload.c:
27348         * gst/vaapi/gstvaapipostproc.c:
27349         * gst/vaapi/gstvaapisink.c:
27350         * gst/vaapi/gstvaapiupload.c:
27351         * gst/vaapi/gstvaapiuploader.c:
27352         * gst/vaapi/gstvaapivideobuffer.h:
27353         * gst/vaapi/gstvaapivideoconverter_glx.c:
27354         * gst/vaapi/gstvaapivideometa.c:
27355         * gst/vaapi/gstvaapivideometa.h:
27356           plugins: integrate GstVaapiVideoMeta from libgstvaapi.
27357           Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
27358           actual plugin elements. That's only useful there. Also inline reference
27359           counting code from GstVaapiMiniObject.
27360
27361 2013-03-21 17:17:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27362
27363         * gst/vaapi/Makefile.am:
27364         * gst/vaapi/gstvaapidecode.c:
27365         * gst/vaapi/gstvaapidownload.c:
27366         * gst/vaapi/gstvaapipluginbuffer.c:
27367         * gst/vaapi/gstvaapipluginbuffer.h:
27368         * gst/vaapi/gstvaapipostproc.c:
27369         * gst/vaapi/gstvaapiupload.c:
27370         * gst/vaapi/gstvaapiuploader.c:
27371         * gst/vaapi/gstvaapivideobuffer.c:
27372         * gst/vaapi/gstvaapivideobuffer.h:
27373           plugins: drop gstvaapipluginbuffer.[ch] helper files.
27374           Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
27375           to gstvaapivideobuffer.[ch], and drop the obsolete files.
27376
27377 2013-03-21 17:06:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27378
27379         * docs/reference/libs/libs-sections.txt:
27380         * docs/reference/libs/libs.core.types:
27381         * gst-libs/gst/vaapi/Makefile.am:
27382         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27383         * gst/vaapi/Makefile.am:
27384         * gst/vaapi/gstvaapidownload.h:
27385         * gst/vaapi/gstvaapipluginbuffer.c:
27386         * gst/vaapi/gstvaapipostproc.h:
27387         * gst/vaapi/gstvaapivideobuffer.c:
27388         * gst/vaapi/gstvaapivideobuffer.h:
27389         * gst/vaapi/gstvaapivideoconverter_glx.h:
27390           plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
27391           Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
27392           actual plugin elements. That's only useful there.
27393
27394 2013-03-21 16:32:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27395
27396         * gst/vaapi/gstvaapipluginutil.c:
27397         * gst/vaapi/gstvaapipluginutil.h:
27398         * gst/vaapi/gstvaapisink.c:
27399         * gst/vaapi/gstvaapivideoconverter_glx.c:
27400           plugins: use common helper function to apply compositions.
27401           Use common gst_vaapi_apply_composition() helper function to apply compositions
27402           attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
27403
27404 2013-03-21 16:09:42 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27405
27406         * gst-libs/gst/vaapi/Makefile.am:
27407         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27408         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27409         * gst/vaapi/Makefile.am:
27410         * gst/vaapi/gstvaapipluginbuffer.c:
27411         * gst/vaapi/gstvaapivideoconverter_glx.c:
27412         * gst/vaapi/gstvaapivideoconverter_glx.h:
27413           plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
27414           Make sure libgstvaapi core decoding library doesn't include un-needed
27415           dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
27416           Besides, even if the vaapisink element is not used, we are bound to have
27417           a correctly populated GstSurfaceBuffer from vaapidecode.
27418           Also clean-up the file along the way.
27419
27420 2013-03-21 13:32:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27421
27422         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27423           vc1: fix use of possibly uninitialized variable.
27424           In decode_codec_data(), force initialization of format to zero so that
27425           we can catch up cases where codec-data has neither "format" nor "wmvversion"
27426           fields, thus making it possible to gracefully fail in this case.
27427
27428 2013-03-21 13:43:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27429
27430         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27431           jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
27432
27433 2013-03-21 14:36:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27434
27435         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27436         * gst-libs/gst/vaapi/gstvaapidecoder.h:
27437         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27438         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27439         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27440         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27441           decoder: sanitize codec-data decoding.
27442           Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
27443           codec-data in the decoder sub-class. Provide a common shared helper
27444           function to do the actual work and delegating further to the sub-class.
27445
27446 2013-03-21 13:41:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27447
27448         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27449         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27450         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27451         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27452           decoder: get rid of GstVaapiDecoderUnit::buffer field.
27453           Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
27454           useless nowadays as creating sub-buffers doesn't bring any value. It
27455           actually means more memory allocations. We can't do without that in
27456           JPEG and MPEG-4:2 decoders.
27457
27458 2013-03-21 13:28:05 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27459
27460         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27461         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27462         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27463         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27464         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27465           decoder: sanitize uses of codec frame input buffer (cosmetics).
27466           Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
27467           "buffer" variable.
27468
27469 2013-03-20 17:34:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27470
27471         * gst/vaapi/gstvaapisink.c:
27472           vaapisink: add helper function to apply a composition buffer.
27473           Simplify application of a composition buffer to a GstVaapiSurface, and
27474           all its peers, until that function is eventually promoted to libgstvaapi.
27475
27476 2013-03-20 13:42:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27477
27478         * gst/vaapi/gstvaapisink.c:
27479           vaapisink: fix support for raw YUV buffers.
27480           If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
27481           hook, then it will have a valid GstVaapiVideoMeta object attached to it.
27482           However, we previously assumed in that case that it was a "native" VA buffer,
27483           thus not calling into GstVaapiUploader::process().
27484
27485 2013-03-20 18:41:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27486
27487         * gst-libs/gst/vaapi/gstcompat.h:
27488         * gst/vaapi/gstvaapidecode.c:
27489         * gst/vaapi/gstvaapidownload.c:
27490         * gst/vaapi/gstvaapipostproc.c:
27491         * gst/vaapi/gstvaapisink.c:
27492         * gst/vaapi/gstvaapiupload.c:
27493           plugins: use modern GstElement metadata information.
27494           Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
27495           basically is the same as gst_element_class_set_details_simple() in
27496           GStreamer 0.10 context.
27497
27498 2013-03-20 18:04:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27499
27500         * gst/vaapi/gstvaapidecode.c:
27501         * gst/vaapi/gstvaapidownload.c:
27502         * gst/vaapi/gstvaapipostproc.c:
27503         * gst/vaapi/gstvaapisink.c:
27504         * gst/vaapi/gstvaapiupload.c:
27505           plugins: move up interfaces (cosmetics).
27506           Move GstImplementsInterface and GstVideoContext support functions up
27507           so that to keep a clear separation between the plugin element and its
27508           interface hooks.
27509
27510 2013-03-20 12:57:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27511
27512         * gst/vaapi/gstvaapisink.c:
27513         * gst/vaapi/gstvaapiuploader.c:
27514           plugins: upgrade to newer APIs (GstVideoInfo based helpers).
27515           Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
27516           Also use the newly added gst_vaapi_image_format_from_structure() helper
27517           in GstVaapiUploader::ensure_allowed_caps().
27518
27519 2013-03-20 14:02:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27520
27521         * gst/vaapi/gstvaapipluginbuffer.c:
27522           plugins: fix creation of video buffer from another source buffer.
27523           gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
27524           buffer video meta since it would be unreference'd from the get_buffer()
27525           helper function. For other cases, we still use (steal) the newly created
27526           video meta.
27527
27528 2013-03-20 11:57:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27529
27530         * gst/vaapi/gstvaapipluginbuffer.c:
27531         * gst/vaapi/gstvaapipluginutil.c:
27532           plugins: include "sysdeps.h" header instead of "config.h".
27533
27534 2013-03-20 18:33:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27535
27536         * gst-libs/gst/vaapi/gstcompat.h:
27537         * tests/codec.c:
27538           tests: modernize GstTypeFind functions.
27539           Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
27540           exactly correspond to the expected behaviour.
27541
27542 2013-03-20 11:57:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27543
27544         * tests/image.c:
27545         * tests/image.h:
27546         * tests/test-decode.c:
27547         * tests/test-display.c:
27548         * tests/test-h264.c:
27549         * tests/test-h264.h:
27550         * tests/test-jpeg.c:
27551         * tests/test-jpeg.h:
27552         * tests/test-mpeg2.c:
27553         * tests/test-mpeg2.h:
27554         * tests/test-mpeg4.c:
27555         * tests/test-mpeg4.h:
27556         * tests/test-textures.c:
27557         * tests/test-vc1.c:
27558         * tests/test-vc1.h:
27559         * tests/test-windows.c:
27560           tests: fix license templates.
27561
27562 2013-03-20 11:53:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27563
27564         * tests/test-display.c:
27565           tests: use gst_vaapi_image_format_from_structure() in test-display.
27566           Use gst_vaapi_image_format_from_structure() helper in test-display and
27567           then extract a VAImageFormat from it instead of relying on GstCaps for
27568           YUV and RGB formats.
27569
27570 2013-03-20 11:50:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27571
27572         * tests/codec.c:
27573         * tests/decoder.c:
27574         * tests/output.c:
27575         * tests/test-decode.c:
27576         * tests/test-display.c:
27577         * tests/test-subpicture.c:
27578         * tests/test-textures.c:
27579         * tests/test-windows.c:
27580           tests: include "sysdeps.h" header instead of "config.h".
27581
27582 2013-03-20 18:25:05 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27583
27584         * gst-libs/gst/vaapi/gstcompat.h:
27585         * gst-libs/gst/vaapi/gstvaapicontext.c:
27586         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27587           subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
27588           Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
27589           function with GStreamer 0.10 compatible semantics, or that tries to
27590           approach the current meaning. Basically, this is also just about moving
27591           the helper to gstcompat.h.
27592
27593 2013-03-20 11:10:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27594
27595         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27596         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27597           image: add gst_vaapi_image_format_from_structure() helper.
27598           Add helper function to convert video formats from a GstStructure to a
27599           plain GstVaapiImageFormat.
27600
27601 2013-03-20 18:12:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27602
27603         * gst-libs/gst/vaapi/Makefile.am:
27604         * gst-libs/gst/vaapi/gstcompat.h:
27605         * gst-libs/gst/vaapi/sysdeps.h:
27606           sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
27607
27608 2013-03-20 11:56:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27609
27610         * gst-libs/gst/vaapi/sysdeps.h:
27611           sysdeps: add more standard includes by default.
27612
27613 2013-03-20 14:43:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27614
27615         * configure.ac:
27616           configure: improve GStreamer API version checks.
27617
27618 2013-03-20 11:44:10 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27619
27620         * configure.ac:
27621         * debian.upstream/Makefile.am:
27622         * debian.upstream/changelog.in:
27623         * debian.upstream/control.in:
27624         * debian.upstream/gstreamer-vaapi-doc.install.in:
27625         * debian.upstream/libgstvaapi-dev.install.in:
27626         * debian.upstream/libgstvaapi-drm.install.in:
27627         * debian.upstream/libgstvaapi-glx.install.in:
27628         * debian.upstream/libgstvaapi-wayland.install.in:
27629         * debian.upstream/libgstvaapi-x11.install.in:
27630         * debian.upstream/libgstvaapi.install.in:
27631         * docs/reference/libs/Makefile.am:
27632         * docs/reference/libs/libs-docs.xml.in:
27633         * docs/reference/plugins/Makefile.am:
27634         * docs/reference/plugins/plugins-docs.xml.in:
27635         * gst-libs/gst/vaapi/Makefile.am:
27636         * gst/vaapi/Makefile.am:
27637         * pkgconfig/Makefile.am:
27638         * pkgconfig/gstreamer-vaapi-drm.pc.in:
27639         * pkgconfig/gstreamer-vaapi-glx.pc.in:
27640         * pkgconfig/gstreamer-vaapi-wayland.pc.in:
27641         * pkgconfig/gstreamer-vaapi-x11.pc.in:
27642         * pkgconfig/gstreamer-vaapi.pc.in:
27643         * tests/Makefile.am:
27644           configure: rename GST_MAJORMINOR to GST_API_VERSION.
27645
27646 2013-03-20 11:28:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27647
27648         * configure.ac:
27649           configure: improve check for H.264 codecparser.
27650
27651 2013-02-26 00:38:24 +0100  Holger Kaelberer <hk@getslash.de>
27652
27653         * gst/vaapi/gstvaapiuploader.c:
27654           vaapiupload: fix illegal write in ensure_image().
27655           Fix ensure_image() to only zero-initialize the first line of each plane.
27656           Properly initializing each plane to their full vertical resolution would
27657           require to actually compute it based on the image format.
27658           In particular, for NV12 images, the UV plane has half vertical resolution
27659           vs. the Y plane. So using the full image height to initialize the UV plane
27660           will obviously lead to a buffer overflow. Likewise for other YUV format.
27661           Since ensure_image() is only a helper function to initialize something,
27662           and not necessarily the whole thing, it is fine to initializ the first
27663           line only. Besides, the target surface is not rendered either.
27664           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27665
27666 2013-02-17 16:28:47 +0800  Xiang, Haihao <haihao.xiang@intel.com>
27667
27668         * gst-libs/gst/codecparsers/Makefile.am:
27669         * gst-libs/gst/video/Makefile.am:
27670           build: fix compiling of local GstVideoDecoder and codecparsers.
27671           Generated source files were missing a dependency on the complete set of
27672           generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
27673           to build and almost every codec parser source depends on parserutils.h.
27674           https://bugs.freedesktop.org/show_bug.cgi?id=59575
27675           Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
27676           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27677
27678 2013-02-08 11:56:54 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27679
27680         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27681           h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
27682           Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
27683           there is no pred_weight_table() that was parsed.
27684           This is a workaround for the VA intel-driver on Ivy Bridge.
27685
27686 2013-02-07 15:42:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27687
27688         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27689           h264: use new profile definitions from codecparsers.
27690
27691 2013-02-07 15:29:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27692
27693         * ext/codecparsers:
27694           codecparsers: update to gst-vaapi-branch commit 500bc02.
27695           500bc02 h264: add profile enums
27696
27697 2013-02-06 15:27:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27698
27699         * NEWS:
27700           NEWS: updates.
27701
27702 2013-02-06 15:21:27 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27703
27704         * ext/codecparsers:
27705           codecparsers: update to gst-vaapi-branch commit 31b1c57.
27706           8957fb7 mpeg2: add helpers to convert quantization matrices
27707           07c4034 mpeg2: store quantization matrices in zigzag scan order
27708
27709 2013-01-31 11:32:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27710
27711         * tests/simple-decoder.c:
27712           tests: simple-decoder: fix build on older platforms.
27713           Make simple-decoder build and execute correctly on older platforms,
27714           and more precisely older versions of glib.
27715
27716 2013-01-31 11:30:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27717
27718         * gst-libs/gst/vaapi/glibcompat.h:
27719           glibcompat: add replacement for g_async_queue_timeout_pop().
27720           g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
27721           g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
27722           new data to arrive in the queue.
27723
27724 2013-01-31 11:25:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27725
27726         * gst-libs/gst/vaapi/glibcompat.h:
27727           glibcompat: add replacement for g_cond_wait().
27728
27729 2013-01-30 18:38:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27730
27731         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27732           mpeg2: fix decoding of 4K videos.
27733           Account for slice_vertical_position_extension when vertical_size > 2800.
27734
27735 2013-01-30 18:54:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27736
27737         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27738           mpeg2: fix decoding of sequence_end().
27739           There shall be only one place to call decode_current_picture(), and this
27740           is in the end_frame() hook. The EOS unit is processed after end_frame()
27741           so this means we cannot have a valid picture to decode/output at this
27742           point.
27743
27744 2013-01-30 15:10:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27745
27746         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27747           mpeg2: improve robustness when packets are missing.
27748           Improve robustness when some expected packets where not received yet
27749           or that were not correctly decoded. For example, don't try to decode
27750           a picture if there was no valid sequence or picture headers.
27751
27752 2013-01-30 18:58:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27753
27754         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27755           decoder: handle decode-only frames in raw API mode.
27756           Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
27757           surface proxy, i.e. with a valid VA surface. This means that any frame
27758           marked as decode-only is simply skipped.
27759
27760 2013-01-30 16:33:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27761
27762         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27763         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27764           decoder: allow frames to be dropped.
27765           If the decoder was not able to decode a frame because insufficient
27766           information was available, e.g. missing sequence or picture header,
27767           then allow the frame to be gracefully dropped without generating
27768           any error.
27769           It is also possible that a frame is not meant to be displayed but
27770           only used as a reference, so dropping that frame is also a valid
27771           operation since GstVideoDecoder base class has extra references to
27772           that GstVideoCodecFrame that needs to be released.
27773
27774 2013-01-30 16:26:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27775
27776         * gst/vaapi/gstvaapidecode.c:
27777           vaapidecode: handle decode-only frames.
27778           Decode-only frames may not have a valid surface proxy. So, simply discard
27779           them gracefully, i.e. don't create meta data information. GstVideoDecoder
27780           base class will properly handle this case and won't try to push any buffer
27781           to downstream elements.
27782
27783 2013-01-24 00:49:17 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27784
27785         * gst/vaapi/gstvaapidecode.c:
27786           vaapidecode: add support for post-seek semantics reset.
27787           Implement GstVideoDecoder::reset() as a destruction of the VA decoder
27788           and the creation of a new VA decoder.
27789           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27790
27791 2013-01-30 09:38:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27792
27793         * configure.ac:
27794           Bump version for development.
27795
27796 2013-01-30 09:37:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27797
27798         * NEWS:
27799         * configure.ac:
27800           0.5.1.
27801
27802 2013-01-24 00:48:26 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27803
27804         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27805           mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
27806
27807 2013-01-24 17:34:43 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27808
27809         * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27810           decoder: fix documentation for GstVaapiDecoderFrame.
27811           Drop superfluous reference to prev_slice member.
27812
27813 2013-01-29 16:18:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27814
27815         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27816           decoder: assume current frame is complete at end-of-stream.
27817           Assume we got a complete frame when the end-of-stream is reached and that
27818           the current codec frame contains at least one slice data unit.
27819
27820 2013-01-29 14:14:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27821
27822         * NEWS:
27823         * README:
27824         * debian.upstream/copyright:
27825         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
27826         * gst-libs/gst/vaapi/gstvaapicontext.c:
27827         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27828         * gst-libs/gst/vaapi/gstvaapidecoder.h:
27829         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
27830         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
27831         * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
27832         * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27833         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27834         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27835         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27836         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27837         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27838         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
27839         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27840         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27841         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27842         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27843         * gst-libs/gst/vaapi/gstvaapidisplay.c:
27844         * gst-libs/gst/vaapi/gstvaapidisplay.h:
27845         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27846         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
27847         * gst-libs/gst/vaapi/gstvaapiprofile.h:
27848         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27849         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27850         * gst-libs/gst/vaapi/gstvaapisurface.c:
27851         * gst-libs/gst/vaapi/gstvaapiutils.c:
27852         * gst-libs/gst/vaapi/gstvaapiutils.h:
27853         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27854         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27855         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27856         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27857         * gst-libs/gst/vaapi/sysdeps.h:
27858         * gst/vaapi/gstvaapidecode.c:
27859         * gst/vaapi/gstvaapidownload.c:
27860         * gst/vaapi/gstvaapipluginbuffer.c:
27861         * gst/vaapi/gstvaapipluginbuffer.h:
27862         * gst/vaapi/gstvaapipostproc.c:
27863         * gst/vaapi/gstvaapisink.c:
27864         * gst/vaapi/gstvaapiupload.c:
27865         * gst/vaapi/gstvaapiuploader.c:
27866         * tests/output.c:
27867         * tests/test-decode.c:
27868         * tests/test-subpicture.c:
27869           legal: fix year for some copyright notices (2013).
27870
27871 2013-01-29 14:03:27 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27872
27873         * gst-libs/gst/vaapi/gstvaapicontext.h:
27874         * gst-libs/gst/vaapi/gstvaapidecoder.h:
27875         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27876         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
27877         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27878         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
27879         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27880         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
27881         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27882         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27883         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27884         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27885         * gst-libs/gst/vaapi/gstvaapisurface.c:
27886         * gst-libs/gst/vaapi/gstvaapisurface.h:
27887         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
27888         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27889         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27890         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27891         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27892         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27893         * gst/vaapi/gstvaapidecode.h:
27894         * gst/vaapi/gstvaapisink.h:
27895         * tests/test-subpicture.c:
27896           legal: fix year for some copyright notices (2012).
27897
27898 2013-01-29 14:00:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27899
27900         * gst-libs/gst/vaapi/gstvaapicompat.h:
27901         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
27902         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
27903         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
27904         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
27905         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
27906         * gst-libs/gst/vaapi/gstvaapiobject.c:
27907         * gst-libs/gst/vaapi/gstvaapiobject.h:
27908         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27909         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27910         * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
27911         * gst-libs/gst/vaapi/gstvaapiprofile.c:
27912         * gst-libs/gst/vaapi/gstvaapiprofile.h:
27913         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
27914         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
27915         * gst-libs/gst/vaapi/gstvaapitexture.c:
27916         * gst-libs/gst/vaapi/gstvaapitexture.h:
27917         * gst-libs/gst/vaapi/gstvaapitypes.h:
27918         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27919         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27920         * gst-libs/gst/vaapi/gstvaapivalue.c:
27921         * gst-libs/gst/vaapi/gstvaapivalue.h:
27922         * gst-libs/gst/vaapi/gstvaapivideopool.c:
27923         * gst-libs/gst/vaapi/gstvaapivideopool.h:
27924         * gst-libs/gst/vaapi/gstvaapiwindow.h:
27925         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27926         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27927         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27928         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27929         * tests/test-display.c:
27930         * tests/test-surfaces.c:
27931         * tests/test-windows.c:
27932           legal: add Intel copyright on modified files.
27933
27934 2013-01-29 13:37:41 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27935
27936         * NEWS:
27937           NEWS: updates.
27938
27939 2013-01-28 18:09:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27940
27941         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27942           wayland: use a local event queue to avoid lock contention.
27943           This improves performance when rendering several surfaces from within
27944           the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
27945
27946 2013-01-28 17:28:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27947
27948         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27949           wayland: fix thread-safe issues.
27950           The Wayland API is not fully thread-safe and client applications shall
27951           perform locking themselves on key functions. Besides, make sure to
27952           release the lock if the _render() function fails.
27953
27954 2013-01-28 16:37:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27955
27956         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27957           wayland: really wait until the pending redraw completed.
27958           Introduce gst_vaapi_window_wayland_sync() helper function to wait for
27959           the completion of the redraw request. Use it in _render() function to
27960           actually block until the previous draw request is completed.
27961
27962 2013-01-23 10:10:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27963
27964         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27965           wayland: fix frame_redraw callback.
27966           The redraw callback needs to be attached to the surface prior to the
27967           commit. Otherwise, the callback notifies the next surface repaint,
27968           which is not the desired behaviour. i.e. we want to be notified for
27969           the surface we have just filled.
27970           Another isse was the redraw_pending was reset before the actual completion
27971           of the frame redraw callback function, thus causing concurrency issues.
27972           e.g. the callback could have been called again, but with a NULL buffer.
27973
27974 2013-01-28 14:45:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27975
27976         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27977           wayland: fix display sharing.
27978           When the Wayland display is shared, we still have to create our own local
27979           shell and compositor objects, since they are not propagated from the cache.
27980           Likewise, we also need to determine the display size or vaapisink would
27981           fail to account for the display aspect ratio, and will try to create a 0x0
27982           window.
27983
27984 2013-01-24 17:38:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27985
27986         * ext/codecparsers:
27987           codecparsers: update to gst-vaapi-branch commit 21a098e.
27988           21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
27989           f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
27990
27991 2013-01-23 16:38:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27992
27993         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27994           vc1: handle frames with multiple slices.
27995
27996 2013-01-23 17:01:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27997
27998         * ext/codecparsers:
27999           codecparsers: update to gst-vaapi-branch commit 3fba492.
28000           3fba492 vc1: add API to parse slice headers
28001
28002 2013-01-23 11:11:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28003
28004         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28005           vc1: handle CLOSED_ENTRY.
28006           When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
28007           lack a reference anchor picture, these B pictures shall be discarded.
28008           https://bugs.freedesktop.org/show_bug.cgi?id=59505
28009
28010 2013-01-23 10:25:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28011
28012         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28013           vc1: cope with latest codecparser changes.
28014           Fix build with newer VC-1 codecparser where dqsbedge was renamed to
28015           dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
28016           the actual value of DQPROFILE.
28017
28018 2013-01-23 10:24:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28019
28020         * ext/codecparsers:
28021           codecparsers: update to gst-vaapi-branch commit 3d2c67c.
28022           3d2c67c vc1: simplify GstVC1VopDquant structure
28023
28024 2013-01-22 10:51:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28025
28026         * ext/codecparsers:
28027           codecparsers: update to gst-vaapi-branch commit 5d33da8.
28028           5d33da8 vc1: fix bitplanes decoding
28029           562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
28030           0b13d2b vc1: fix calculation of ALTPQUANT
28031           ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
28032
28033 2013-01-22 15:47:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28034
28035         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28036           vc1: fix size of encapsulated BDU.
28037           Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
28038           the size of the BDU data, starting from offset, i.e. after any start
28039           code is parsed.
28040           This fixes a buffer overflow during the unescaping process.
28041
28042 2013-01-11 17:08:00 +0800  Wind Yuan <feng.yuan@intel.com>
28043
28044         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28045           vc1: fix decoding of WMV3 videos in AVI format.
28046           The AVI demuxer (avidemux) does not set a proper "format" attribute
28047           to the generated caps. So, try to recover the video codec format from
28048           the "wmvversion" property instead.
28049           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28050
28051 2013-01-22 13:28:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28052
28053         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28054           vc1: review and report errors accordingly.
28055           Use GST_ERROR() to report real errors instead of hiding them into
28056           GST_DEBUG().
28057
28058 2013-01-22 13:50:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28059
28060         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28061           vc1: don't create GstBuffers for all decoder units.
28062           Don't create temporary GstBuffers for all decoder units, even if they
28063           are lightweight "sub-buffers", since it is not really necessary to keep
28064           the buffer data around.
28065
28066 2013-01-22 16:03:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28067
28068         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28069           vc1: implement flush() hook.
28070           Make it a simple DPB flush.
28071
28072 2013-01-22 13:44:32 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28073
28074         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28075           vc1: implement {start,end}_frame() hooks.
28076           Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28077           that to create new VA context earlier and submit VA pictures to the
28078           HW for decoding as soon as possible. i.e. don't wait for the next
28079           frame to start decoding the previous one.
28080
28081 2013-01-22 09:30:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28082
28083         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28084           vc1: fix next POC for new sequence layers.
28085           Fix next POC when a new sequence layer is reached. At this point, we
28086           need to reset any previous reference picture, i.e. non B-frame.
28087
28088 2012-08-02 17:15:26 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28089
28090         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28091           vc1: port to common GstVaapiDpb interface.
28092           Use GstVaapiDpb interface instead of maintaining our own prev and next
28093           picture pointers. While doing so, try to derive a sensible POC value.
28094           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28095
28096 2013-01-15 17:10:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28097
28098         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28099           vc1: fix decode_sequence_end() to return success, not EOS.
28100
28101 2013-01-18 17:00:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28102
28103         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28104           decoder: simplify gst_vaapi_decoder_get_surface().
28105           Avoid extraenous branches, i.e. immediately return with success once we
28106           have a decoded frame available.
28107
28108 2013-01-18 16:56:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28109
28110         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28111           decoder: optimize and clean decode_step() up.
28112           Avoid usage of goto. Simplify decode_step() process to first accumulate all
28113           pending buffers into the GstAdapter, and then parse and decode units from
28114           that input adapter. Stop the process once a frame is fully decoded or an
28115           error occurred.
28116
28117 2013-01-18 14:46:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28118
28119         * gst-libs/gst/vaapi/gstvaapidisplay.c:
28120           display: move "vaapi" debug init to libgstvaapi_init_once().
28121
28122 2013-01-18 14:17:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28123
28124         * configure.ac:
28125         * gst-libs/gst/vaapi/Makefile.am:
28126         * gst-libs/gst/vaapi/gstvaapidisplay.c:
28127         * gst-libs/gst/vaapi/gstvaapiversion.h.in:
28128           display: dump gstreamer-vaapi version for debugging purposes.
28129
28130 2013-01-18 14:30:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28131
28132         * tests/Makefile.am:
28133           tests: simple-decoder: fix build with built-in videoutils.
28134           Fix build with built-in videoutils, i.e. when system GStreamer installation
28135           does not know about GstVideoDecoder API.
28136
28137 2013-01-18 10:35:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28138
28139         * tests/simple-decoder.c:
28140           tests: simple-decoder: flush decoded frames at EOS.
28141           Flush the remaining decoded frames when an end-of-stream is reached.
28142
28143 2013-01-18 10:25:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28144
28145         * tests/simple-decoder.c:
28146           tests: simple-decoder: drop use of GstVaapiVideoMeta.
28147           Don't use GstVaapiVideoMeta since that object is not guaranteed to live
28148           in libgstvaapi forever. Rather, that'd move to plugin elements at some
28149           point.
28150
28151 2013-01-16 13:53:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28152
28153         * tests/simple-decoder.c:
28154           tests: simple-decoder: add benchmark mode.
28155           Add --benchmark option to enable benchmark mode where rendering is not
28156           synchronized with presentation timestamps of the decoded surfaces.
28157
28158 2013-01-16 13:29:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28159
28160         * tests/Makefile.am:
28161         * tests/simple-decoder.c:
28162           tests: simple-decoder: honour framerate from the bitstream.
28163           Try to honour the framerate from the bitstream, or cap the playback to
28164           60 fps by default.
28165
28166 2013-01-15 18:49:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28167
28168         * tests/simple-decoder.c:
28169           tests: simple-decoder: set window size to the surface dimensions.
28170           Set the window size to the decoded surface dimensions, if the user has
28171           not requested the application to run in full-screen mode. Besides, no
28172           effort is made to preserve aspect ratio or to center the video within
28173           the mapped window.
28174
28175 2013-01-15 17:33:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28176
28177         * tests/Makefile.am:
28178         * tests/simple-decoder.c:
28179           tests: add simple decoder application.
28180           Add simple decoder application to show off decoding capabilities from
28181           raw bitstreams, for debugging or performance evaluation purposes.
28182
28183 2013-01-15 17:30:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28184
28185         * tests/Makefile.am:
28186         * tests/codec.c:
28187         * tests/codec.h:
28188           tests: add codec helper utils.
28189           Add helper functions to determine the codec type from a specific file
28190           or utility functions to convert from codec type to GstCaps or from
28191           codec name to codec type.
28192
28193 2013-01-15 17:47:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28194
28195         * tests/output.c:
28196           tests: allow fullscreen mode.
28197           Add new --fullscreen|-f option to create new windows in fullscreen mode.
28198
28199 2013-01-17 18:35:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28200
28201         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28202           h264: implement GstVaapiDecoder::flush() as a DPB flush.
28203
28204 2013-01-17 18:07:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28205
28206         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28207           h264: handle end-of-stream NALU.
28208           Handle <end-of-stream> NAL unit to actually flush any pending picture
28209           from the DPB.
28210
28211 2013-01-17 18:22:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28212
28213         * gst/vaapi/gstvaapidecode.c:
28214           vaapidecode: handle EOS events.
28215           Flush all decoded frames to downstream when EOS is received. This is
28216           performed by implementing GstVideoDecoder::finish() hook.
28217
28218 2013-01-17 18:19:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28219
28220         * gst/vaapi/gstvaapidecode.c:
28221           vaapidecode: split gvd_handle_frame() into decode/push frames.
28222           Split GstVideoDecoder::handle_frame() implementation into two functions:
28223           (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
28224           for purging all decoded frames and submit them downstream.
28225
28226 2013-01-17 18:33:32 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28227
28228         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28229         * gst-libs/gst/vaapi/gstvaapidecoder.h:
28230           decoder: add GstVaapiDecoder::flush() hook.
28231
28232 2013-01-15 17:21:50 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28233
28234         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28235         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28236           decoder: fix check for end-of-stream in raw API mode.
28237           Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
28238           if the end-of-stream was already reached at the previous iteration.
28239
28240 2013-01-15 16:55:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28241
28242         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28243           decoder: make decode_step() return once the frame is decoded.
28244           Make sure we always have a free surface left to use for decoding the
28245           current frame. This means that decode_step() has to return once a frame
28246           gets decoded. If the current adapter contains more buffers with valid
28247           frames, they will get parsed and decoded on subsequent iterations.
28248
28249 2013-01-17 15:47:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28250
28251         * ext/codecparsers:
28252           codecparsers: update to gst-vaapi-branch commit b47983a.
28253           8840c2d h264: zero-initialize SPS VUI parameters
28254
28255 2013-01-15 09:21:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28256
28257         * configure.ac:
28258           Bump version for development.
28259
28260 2013-01-15 09:21:08 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28261
28262         * NEWS:
28263         * configure.ac:
28264           0.5.0.
28265
28266 2013-01-14 11:48:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28267
28268         * docs/reference/libs/libs-docs.xml.in:
28269         * docs/reference/libs/libs-sections.txt:
28270         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28271         * gst-libs/gst/vaapi/gstvaapidisplay.c:
28272         * gst-libs/gst/vaapi/gstvaapiprofile.h:
28273           docs: expose new interfaces.
28274
28275 2013-01-14 12:58:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28276
28277         * NEWS:
28278           NEWS: updates.
28279
28280 2013-01-14 10:58:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28281
28282         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28283           dpb: cosmetics (clean-ups).
28284
28285 2013-01-14 10:46:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28286
28287         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28288         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28289         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28290           dpb: port to GstVaapiMiniObject.
28291
28292 2013-01-14 10:21:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28293
28294         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28295         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28296         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28297           dpb: drop GstVaapiDpb2 interface, keep only one class.
28298           Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
28299           to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
28300           around the specified picture POC.
28301
28302 2012-08-02 15:56:54 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28303
28304         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28305         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28306         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28307           dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
28308           Move GstVaapiDpbMpeg2 API to a more generic version that could also be
28309           useful to other decoders that require 2 reference pictures, e.g. VC-1.
28310           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28311
28312 2013-01-11 16:04:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28313
28314         * configure.ac:
28315           Bump version for pre-release.
28316
28317 2013-01-11 15:57:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28318
28319         * NEWS:
28320           NEWS: updates.
28321
28322 2012-07-20 12:36:33 +0200  Holger Kaelberer <holger.k@elberer.de>
28323
28324         * configure.ac:
28325         * gst-libs/gst/vaapi/gstvaapicontext.c:
28326         * gst-libs/gst/vaapi/gstvaapiutils.c:
28327         * gst-libs/gst/vaapi/sysdeps.h:
28328         * tests/test-subpicture.c:
28329           overlay: fix build without advanced GstVideoOverlayFormatFlags.
28330           Check for global-alpha support in GstVideoOverlayComposition API.
28331           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28332
28333 2013-01-04 10:19:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28334
28335         * tests/test-subpicture.c:
28336           tests: add support for global-alpha subpictures.
28337           Add --global-alpha option to test-subpicture.
28338
28339 2013-01-10 13:09:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28340
28341         * tests/Makefile.am:
28342         * tests/test-subpicture.c:
28343           tests: use GstVideoOverlayComposition API for subpicture test.
28344
28345 2013-01-10 11:26:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28346
28347         * tests/Makefile.am:
28348         * tests/test-subpicture.c:
28349           tests: use common decoder helpers for subpicture test.
28350           Use common decoder helpers for subpicture test, thus allowing to decode
28351           sample images in an alternate format.
28352
28353 2013-01-10 11:22:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28354
28355         * tests/Makefile.am:
28356         * tests/decoder.c:
28357         * tests/decoder.h:
28358         * tests/test-decode.c:
28359           tests: add decoder helpers.
28360
28361 2013-01-11 15:19:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28362
28363         * gst-libs/gst/vaapi/gstvaapicontext.c:
28364           overlay: fix ordering of composition layers.
28365           Make sure to maintain the association order of composition layers when
28366           GstVideoOverlayRectangle objects are kept around (cached).
28367
28368 2012-05-15 10:24:08 +0200  Holger Kaelberer <holger.k@elberer.de>
28369
28370         * gst-libs/gst/vaapi/gstvaapicontext.c:
28371           overlay: fix support for global-alpha.
28372           Fix support for global-alpha subpictures. The previous changes brought
28373           the ability to check for GstVideoOverlayRectangle changes by comparing
28374           the underlying pixel buffer pointers. If sequence number and pixel data
28375           did not change, then this is an indication that only the global-alpha
28376           value changed. Now, try to update the underlying VA subpicture global-alpha
28377           value.
28378           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28379
28380 2013-01-11 11:53:05 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28381
28382         * gst-libs/gst/vaapi/gstvaapicontext.c:
28383           overlay: detect render-rect changes.
28384           Don't re-upload VA subpicture if only the render rectangle changed.
28385           Rather deassociate the subpicture and re-associate it with the new
28386           render rectangle.
28387
28388 2013-01-11 11:12:26 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28389
28390         * gst-libs/gst/vaapi/gstvaapicontext.c:
28391           overlay: fix check for pixels buffer change.
28392           A GstVideoOverlayRectangle is created whenever the underlying pixels data
28393           change. However, when global-alpha is supported, it is possible to re-use
28394           the same GstVideoOverlayRectangle but with a change to the global-alpha
28395           value. This process causes a change of sequence number, so we can no longer
28396           check for that.
28397           Still, if sequence numbers did not change, then there was no change in
28398           global-alpha either. So, we need a way to compare the underlying GstBuffer
28399           pointers. There is no API to retrieve the original pixels buffer from
28400           a GstVideoOverlayRectangle. So, we use the following heuristics:
28401           1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
28402           format flags from which the GstVideoOverlayRectangle was created. This
28403           will work if there was no prior consumer of the GstVideoOverlayRectangle
28404           with alternate (non-"native") format flags.
28405           2. In overlay_rectangle_has_changed_pixels(), we have to use the same
28406           gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
28407           with flags that match the subpicture. This is needed to cope with
28408           platforms that don't support global-alpha in HW, so the gst-video
28409           layer takes care of that and fixes this up with a possibly new
28410           GstBuffer, and hence pixels data (or) in-place by caching the current
28411           global-alpha value applied. So we have to determine the rectangle
28412           was previously used, based on what previous flags were used to
28413           retrieve the ARGB pixels buffer.
28414
28415 2013-01-10 18:42:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28416
28417         * gst-libs/gst/vaapi/gstvaapicontext.c:
28418           overlay: optimize cache at the GstVideoOverlayRectangle level.
28419           We previously assumed that an overlay composition changed if the number
28420           of overlay rectangles in there actually changed, or that the rectangle
28421           was updated, and thus its seqnum was also updated.
28422           Now, we can cope with cases where the GstVideoOverlayComposition grew
28423           by one or a few more overlay rectangles, and the initial overlay rectangles
28424           are kept as is.
28425
28426 2013-01-10 13:41:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28427
28428         * gst-libs/gst/vaapi/gstvaapicontext.c:
28429           overlay: simplify caching of GstVideoOverlayComposition objects.
28430           Create the GPtrArray once in the _init() function and destroy it only
28431           in the _finalize() function. Then use overlay_clear() to remove all
28432           subpicture associations for intermediate updates, don't recreate the
28433           GPtrArray.
28434           Make GstVaapiOverlayRectangle a reference counted object. Also make
28435           sure that overlay_rectangle_new() actually creates and associates the
28436           VA subpicture.
28437
28438 2012-05-15 10:24:08 +0200  Holger Kaelberer <holger.k@elberer.de>
28439
28440         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28441         * gst-libs/gst/vaapi/gstvaapiutils.c:
28442         * gst-libs/gst/vaapi/gstvaapiutils.h:
28443           overlay: add support for global-alpha.
28444           Handle global-alpha from GstVideoOverlayComposition API. Likewise,
28445           the same code path could also work for premultiplied-alpha but this
28446           was not tested.
28447           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28448
28449 2012-05-15 10:24:08 +0200  Holger Kaelberer <holger.k@elberer.de>
28450
28451         * gst-libs/gst/vaapi/gstvaapidisplay.c:
28452         * gst-libs/gst/vaapi/gstvaapidisplay.h:
28453         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28454         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28455         * gst-libs/gst/vaapi/gstvaapisurface.c:
28456         * tests/image.c:
28457         * tests/test-subpicture.c:
28458           subpicture: add support for global-alpha.
28459           Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
28460           with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
28461           to address this feature.
28462           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28463
28464 2013-01-04 09:41:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28465
28466         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28467         * gst-libs/gst/vaapi/gstvaapiutils.c:
28468         * gst-libs/gst/vaapi/gstvaapiutils.h:
28469           subpicture: add premultiplied-alpha and global-alpha feature flags.
28470           Add premultiplied-alpha and global-alpha feature flags, along with converters
28471           between VA-API and gstreamer-vaapi definitions. Another round of helpers is
28472           also necessary for GstVideoOverlayComposition API.
28473
28474 2013-01-03 18:02:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28475
28476         * gst-libs/gst/vaapi/gstvaapidisplay.c:
28477           display: allow image/subpicture formats with additional flags.
28478           Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
28479           and any additional flags needed. Currently, all flags are set to zero.
28480
28481 2013-01-11 13:34:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28482
28483         * gst-libs/gst/codecparsers/Makefile.am:
28484         * gst-libs/gst/video/Makefile.am:
28485         * tests/Makefile.am:
28486           libs: fix build of submodule wrappers.
28487           Make sure to build codecparsers/ and videoutils/ sources against the
28488           newly generated headers when out-of-source builds are used.
28489
28490 2013-01-11 14:11:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28491
28492         * configure.ac:
28493           configure: fix checks for packages installed in non-standard roots.
28494
28495 2013-01-10 10:12:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28496
28497         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28498           decoder: fix mini object implementation on 64-bit systems.
28499           Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
28500           pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
28501           Only a gsize can hold all bits of a pointer.
28502           Thanks to Ouping Zhang for spotting this error.
28503
28504 2013-01-09 16:05:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28505
28506         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28507           mpeg2: optimize scan for the end of the frame.
28508           Heuristic: if the second start-code is available, check whether that
28509           one marks the start of a new frame because e.g. this is a sequence
28510           or picture header. This doesn't save much, since we already cache the
28511           results.
28512
28513 2013-01-09 13:44:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28514
28515         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28516           mpeg2: optimize scan for start codes.
28517           Accelerate scan for start codes by skipping up to 3 bytes per iteration.
28518           A start code prefix is defined by the following bytes: 00 00 01. Thus,
28519           for any group of 3 bytes (xx yy zz), we have the following possible cases:
28520           1. If zz != 1, this cannot be a start code, then skip 3 bytes;
28521           2. If yy != 0, this cannot be a start code, then skip 2 bytes;
28522           3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
28523           4. xx == 00, yy == 00, zz == 1, we have match!
28524           This algorithm requires to peek bytes from the adapter. This increases the
28525           amount of bytes copied to a temporary buffer, but this process is much faster
28526           than scanning for all the bytes and using shift/masks. So, overall, this is
28527           a win.
28528
28529 2013-01-08 16:41:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28530
28531         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28532           mpeg2: drop useless gst_adapter_peek().
28533           Drop useless gst_adapter_peek() since the returned buffer was not used
28534           and this could incur superfluous memcpy().
28535
28536 2013-01-07 16:07:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28537
28538         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28539           mpeg2: cosmetics: move parse_slice() down.
28540
28541 2013-01-07 15:24:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28542
28543         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28544           mpeg2: avoid too many allocations of parser info objects.
28545           Move parsing back to decoding step, but keep functions separate for now.
28546           This is needed for future optimizations that may introduce some meta data
28547           for parsed info attached to codec frames.
28548
28549 2013-01-07 14:04:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28550
28551         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28552         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28553           decoder: decoder units are no longer dynamically allocated objects.
28554
28555 2013-01-07 13:59:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28556
28557         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28558         * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28559         * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28560           decoder: optimize pre-allocation of decoder units.
28561           Optimize pre-allocation of decoder units, thus avoiding un-necessary
28562           memory reallocations. The heuristic used is that we could have around
28563           one slice unit per macroblock line.
28564
28565 2013-01-07 13:41:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28566
28567         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28568         * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28569         * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28570         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28571         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28572           decoder: use an array of units instead of a single-linked list.
28573           Use a GArray to hold decoder units in a frame, instead of a single-linked
28574           list. This makes 'append' calls faster, but not that much. At least, this
28575           makes things clearer.
28576
28577 2013-01-07 11:13:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28578
28579         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28580         * gst-libs/gst/vaapi/gstvaapidecoder.h:
28581         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28582         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28583         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28584         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28585         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28586         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28587         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28588           decoder: refactor decoder unit API.
28589           Allocate decoder unit earlier in the main parse() function and don't
28590           delegate this task to derived classes. The ultimate purpose is to get
28591           rid of dynamic allocation of decoder units.
28592
28593 2013-01-07 10:48:27 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28594
28595         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28596           mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
28597           Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
28598           from GstVaapiDecoderUnit for MPEG-2 specific parser information.
28599
28600 2013-01-07 10:22:54 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28601
28602         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28603           h264: introduce parser info instead of H.264 specific decoder unit.
28604           Use a new GstVaapiParserInfoH264 data structure instead of deriving
28605           from GstVaapiDecoderUnit for H.264 specific parser information.
28606
28607 2013-01-05 12:33:06 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28608
28609         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28610           h264: set default values for some header fields.
28611           The SPS, PPS and slice headers are not fully zero-initialized in the
28612           codecparsers/ library. Rather, the standard upstream behaviour is to
28613           initialize only certain syntax elements with some inferred values if
28614           they are not present in the bitstream.
28615           At the gstreamer-vaapi decoder level, we need to further initialize
28616           certain syntax elements with some sensible default values so that to
28617           not complicate VA drivers that just pass those verbatim to the HW,
28618           and also avoid an memset() of the whole decoder unit.
28619           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28620           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28621
28622 2013-01-06 19:05:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28623
28624         * ext/codecparsers:
28625           codecparsers: update to gst-vaapi-rebased commit b47983a.
28626           b47983a h264: add inferred value for slice_beta_offset_div2
28627
28628 2013-01-05 17:55:47 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28629
28630         * gst/vaapi/gstvaapidecode.c:
28631         * gst/vaapi/gstvaapidownload.c:
28632         * gst/vaapi/gstvaapipluginbuffer.c:
28633         * gst/vaapi/gstvaapipluginbuffer.h:
28634         * gst/vaapi/gstvaapipostproc.c:
28635         * gst/vaapi/gstvaapisink.c:
28636         * gst/vaapi/gstvaapiupload.c:
28637         * gst/vaapi/gstvaapiuploader.c:
28638           plugins: cope with new GstVaapiVideoMeta API.
28639           Update plugin elements with the new GstVaapiVideoMeta API.
28640           This also fixes support for subpictures/overlay because GstVideoDecoder
28641           generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
28642           is marked as read-only. However, when comes in the textoverlay element
28643           for example, it checks whether the input buffer is writable. Since that
28644           buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
28645           does not preserve the parent field, the generated buffer in textoverlay
28646           is not exploitable because we lost all VA specific information.
28647           Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
28648           all information are preserved through gst_buffer_copy() since the latter
28649           does copy metadata (qdata in this case).
28650
28651 2013-01-05 17:37:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28652
28653         * gst-libs/gst/vaapi/Makefile.am:
28654         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28655         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28656         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
28657         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
28658         * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
28659         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28660           videobuffer: wrap video meta into a surface buffer.
28661           Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
28662           no longer necessary but for compatibility with GStreamer 0.10 APIs or users
28663           expecting a GstSurfaceBuffer like Clutter.
28664
28665 2013-01-05 08:31:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28666
28667         * gst-libs/gst/vaapi/Makefile.am:
28668         * gst-libs/gst/vaapi/gstvaapivideometa.c:
28669         * gst-libs/gst/vaapi/gstvaapivideometa.h:
28670           videobuffer: add video meta information.
28671           Add new GstVaapiVideoMeta object that holds all information needed to
28672           convey gst-vaapi specific data as a GstBuffer.
28673
28674 2013-01-03 13:10:33 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28675
28676         * gst/vaapi/gstvaapidecode.c:
28677           vaapidecode: fix calculation of the time-out value.
28678           Fix calculation of the time-out value for cases where no VA surface is
28679           available for decoding. In this case, we need to wait until downstream
28680           sink consumed at least one surface. The time-out was miscalculated as
28681           it was always set to <current-time> + one second, which is not suitable
28682           for streams with larger gaps.
28683
28684 2013-01-03 13:05:47 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28685
28686         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28687           decoder: always use the calculated presentation timestamp.
28688           Use PTS value computed by the decoder, which could also be derived from
28689           the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
28690           the original one was miscomputed or only represented a DTS instead.
28691
28692 2013-01-02 17:33:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28693
28694         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28695           h264: don't create sub-buffer for slice data.
28696
28697 2013-01-03 11:16:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28698
28699         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28700           decoder: create new context when encoded resolution changes.
28701           Create a new VA context if the encoded surface size changes because we
28702           need to keep the underlying surface pool until the last one was released.
28703           Otherwise, either of the following cases could have happened: (i) release
28704           a VA surface to an inexistent pool, or (ii) release VA surface to an
28705           existing surface pool, but with different size.
28706
28707 2013-01-02 17:23:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28708
28709         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28710           mpeg2: don't create sub-buffer for slice data.
28711           Avoid creating a GstBuffer for slice data. Rather, directly use the codec
28712           frame input buffer data. This is possible because the codec frame is valid
28713           until end_frame() where we submit the VA buffers for decoding. Anyway, the
28714           slice data buffer is copied into the VA buffer when it is created.
28715
28716 2013-01-02 14:45:50 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28717
28718         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28719           mpeg2: minor clean-ups.
28720           Drop explicit initialization of most fields that are implicitly set to
28721           zero. Remove some useless checks for NULL pointers.
28722
28723 2013-01-02 14:18:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28724
28725         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28726           mpeg2: optimize scan for the second start code.
28727           Optimize scan for the second start code, on the next parse() call so that
28728           to avoid scanning again earlier bytes where we didn't find any start code.
28729
28730 2013-01-02 14:10:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28731
28732         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28733           mpeg2: use sequence_display_extension() to compute PAR.
28734           Also compute pixel-aspect-ratio from sequence_display_extension(),
28735           should it exist in the bitstream.
28736
28737 2013-01-02 14:02:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28738
28739         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28740           mpeg2: handle sequence_display_extension().
28741
28742 2012-12-27 15:18:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28743
28744         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28745           mpeg2: implement {start,end}_frame() hooks.
28746           Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28747           that to create new VA context earlier and submit VA pictures to the
28748           HW for decoding as soon as possible. i.e. don't wait for the next
28749           frame to start decoding the previous one.
28750
28751 2012-12-27 14:54:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28752
28753         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28754           mpeg2: parse slice() header earlier.
28755           Parse slice() header and first macroblock position earlier in _parse()
28756           function instead of waiting for the _decode() stage. This doesn't change
28757           anything but readability.
28758
28759 2012-12-27 14:41:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28760
28761         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28762           mpeg2: add codec specific decoder unit.
28763           Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
28764           GstMpegVideoPacket and additional parsed header info. Besides, we now
28765           parse as early as in the _parse() function so that to avoid un-necessary
28766           creation of sub-buffers in _decode() for video packets that are not slices.
28767
28768 2012-12-27 18:52:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28769
28770         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28771         * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28772         * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28773         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28774           decoder: introduce lists of units to decode before/after frame.
28775           Theory of operations: all units marked as "slice" are moved to the "units"
28776           list. Since this list only contains slice data units, the prev_slice pointer
28777           was removed. Besides, we now maintain two extra lists of units to be decoded
28778           before or after slice data units.
28779           In particular, all units in the "pre_units" list will be decoded before
28780           GstVaapiDecoder::start_frame() is called and units in the "post_units"
28781           list will be decoded after GstVaapiDecoder::end_frame() is called.
28782
28783 2013-01-02 16:06:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28784
28785         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28786         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28787           decoder: drop useless checks for codec objects.
28788           Codec objects are used internally only and they are bound to be created
28789           with a valid GstVaapiDecoder object.
28790
28791 2012-12-27 10:35:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28792
28793         * gst/vaapi/gstvaapidecode.c:
28794           vaapidecode: use GST_ERROR to print error messages.
28795
28796 2012-12-27 09:55:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28797
28798         * gst/vaapi/gstvaapidecode.c:
28799           vaapidecode: avoid double release of frame on error.
28800           Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
28801           was already called before and it returned an error. In that case, we were
28802           releasing the frame again, thus leading to a "double-free" condition.
28803
28804 2012-12-21 14:29:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28805
28806         * .gitmodules:
28807         * autogen.sh:
28808         * configure.ac:
28809         * ext/Makefile.am:
28810         * ext/videoutils:
28811         * gst-libs/gst/Makefile.am:
28812         * gst-libs/gst/vaapi/Makefile.am:
28813         * gst-libs/gst/video/Makefile.am:
28814         * gst/vaapi/Makefile.am:
28815           Add videoutils submodule for GstVideoDecoder APIs.
28816
28817 2012-12-18 16:36:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28818
28819         * configure.ac:
28820           configure: check for GstVideoDecoder API.
28821           GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
28822           this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
28823           parties may either use upstream git 0.10 branch or backport the necessary support
28824           for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
28825
28826 2012-12-18 16:21:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28827
28828         * docs/reference/libs/libs.core.types:
28829           docs: remove obsolete gst_vaapi_surface_proxy_get_type().
28830           GstVaapiSurfaceProxy is no longer based on the GType system.
28831
28832 2012-12-18 16:17:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28833
28834         * docs/reference/libs/libs-sections.txt:
28835           docs: fix entries for GstVaapiSurfaceProxy.
28836
28837 2012-12-18 15:29:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28838
28839         * NEWS:
28840           NEWS: updates.
28841
28842 2012-12-18 15:15:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28843
28844         * configure.ac:
28845         * gst-libs/gst/vaapi/Makefile.am:
28846           Bump library major version.
28847           Increase library major so that to cope with API/ABI incompatible changes
28848           since 0.4.x series and avoid user issues.
28849
28850 2012-12-13 16:02:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28851
28852         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28853           surfaceproxy: minor clean-ups.
28854
28855 2012-12-13 15:51:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28856
28857         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28858         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28859         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28860           surfaceproxy: drop accessors to obsolete attributes.
28861           Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
28862           VA surface. i.e. drop any other attribute like timestamp, duration,
28863           interlaced or top-field-first.
28864
28865 2012-12-13 15:34:10 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28866
28867         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28868         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28869         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28870         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28871         * gst/vaapi/gstvaapidecode.c:
28872           decoder: maintain decoded frames as GstVideoCodecFrame objects.
28873           Maintain decoded surfaces as GstVideoCodecFrame objects instead of
28874           GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
28875           the strict minimum: a context and a surface.
28876
28877 2012-12-13 14:30:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28878
28879         * gst/vaapi/gstvaapidecode.c:
28880           vaapidecode: output all decoded frames as soon as possible.
28881           Make sure to push all decoded frames downstream as soon as possible.
28882           This makes sure we don't need to wait for a new frame to be ready to
28883           be decoded before receiving new decoded frames.
28884           This also separates the decode process and the output process. The latter
28885           could be moved to a specific GstTask later on.
28886
28887 2012-12-13 14:27:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28888
28889         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28890         * gst-libs/gst/vaapi/gstvaapidecoder.h:
28891           decoder: add gst_vaapi_decoder_get_frame() API.
28892           Add new gst_vaapi_decoder_get_frame() function meant to be used with
28893           gst_vaapi_decoder_decode(). The purpose is to return the next decoded
28894           frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
28895           as the user-data object.
28896
28897 2012-12-13 15:47:27 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28898
28899         * gst/vaapi/gstvaapipostproc.c:
28900           vaapipostproc: use GstBuffer flags for TFF.
28901           Determine whether the buffer represents the top-field only by checking for
28902           the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
28903           flag. Also trust "interlaced" caps to determine whether the input frame
28904           is interleaved or not.
28905
28906 2012-12-13 13:27:33 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28907
28908         * gst/vaapi/gstvaapipostproc.c:
28909           vaapipostproc: handle video sub-buffers.
28910           Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28911           for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
28912
28913 2012-12-18 14:57:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28914
28915         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28916           h264: optimize initialization process of decoder units.
28917           Decoder units were zero-initialized, including the SPS/PPS/slice headers.
28918           The latter don't require zero-initialization since the codecparsers/ lib
28919           will do so for key variables already. This is not a great value per se but
28920           at least it makes it possible to check whether the default initialization
28921           decisions made in the codecparsers/ lib were right or not.
28922           This can be reverted if this exposes too many issues.
28923
28924 2012-12-13 11:48:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28925
28926         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28927           h264: minor clean-ups.
28928           Drop explicit initialization of most fields that are implicitly set to
28929           zero. Drop helper macros for casting to GstVaapiPictureH264 or
28930           GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
28931
28932 2012-12-07 17:45:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28933
28934         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28935           h264: drop GstVaapiSliceH264 object.
28936           Use standard GstVaapiSlice object from now on since we already have
28937           parsed and recorded the slice headers (GstH264SliceHdr decode units).
28938
28939 2012-12-13 10:47:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28940
28941         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28942           h264: detect new pictures from decode-units.
28943           Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
28944           of assuming frame boundaries when first_mb_in_slice is zero.
28945
28946 2012-12-13 10:21:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28947
28948         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28949           h264: implement {start,end}_frame() hooks.
28950           Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28951           that to create new VA context earlier and submit VA pictures to the
28952           HW for decoding as soon as possible. i.e. don't wait for the next
28953           frame to start decoding the previous one.
28954
28955 2012-12-12 18:33:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28956
28957         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28958           h264: optimize scan for the second start code.
28959           Optimize scan for the second start code, on the next parse() call so that
28960           to avoid scanning again earlier bytes where we didn't find any start code.
28961
28962 2012-12-06 17:25:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28963
28964         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28965           h264: add codec specific decoder unit.
28966           Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
28967           NAL unit header (GstH264NalUnit) and additional parsed header info.
28968           Besides, we now parse headers as early as in the _parse() function so
28969           that to avoid un-necessary creation of sub-buffers in _decode() for
28970           NAL units that are not slices.
28971           This is a performance win by ~+1.1% only.
28972
28973 2012-12-04 11:01:42 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28974
28975         * gst/vaapi/gstvaapisink.c:
28976           vaapisink: handle sub video-buffers.
28977           Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28978           for non raw YUV cases. Make sure vaapisink now understands those buffers.
28979
28980 2012-12-12 15:22:32 +0100  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28981
28982         * gst/vaapi/gstvaapidecode.c:
28983           vaapidecode: use gst_vaapi_decoder_get_codec_state().
28984           Directly use the GstVideoCodecState associated with the VA decoder
28985           instead of parsing caps again.
28986           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28987           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28988
28989 2012-12-04 14:53:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28990
28991         * gst/vaapi/gstvaapidecode.c:
28992           vaapidecode: use more standard helpers.
28993           Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
28994           in more places.
28995
28996 2012-12-04 14:45:29 +0100  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28997
28998         * gst/vaapi/gstvaapidecode.c:
28999         * gst/vaapi/gstvaapidecode.h:
29000           vaapidecode: move to GstVideoDecoder base class.
29001           Make vaapidecode derive from the standard GstVideoDecoder base element
29002           class. This simplifies the code to the strict minimum for the decoder
29003           element and makes it easier to port to GStreamer 1.x API.
29004           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29005           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29006
29007 2012-12-06 14:02:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29008
29009         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29010           jpeg: initial port to new GstVaapiDecoder API
29011
29012 2012-12-06 14:02:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29013
29014         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29015           vc1: initial port to new GstVaapiDecoder API
29016
29017 2012-12-06 14:02:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29018
29019         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29020           h264: initial port to new GstVaapiDecoder API
29021
29022 2012-12-17 09:47:20 -0800  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29023
29024         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29025           mpeg4: initial port to new GstVaapiDecoder API
29026
29027 2012-12-06 14:01:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29028
29029         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29030           mpeg2: initial port to new GstVaapiDecoder API.
29031
29032 2012-12-12 15:09:21 +0100  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29033
29034         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29035         * gst-libs/gst/vaapi/gstvaapidecoder.h:
29036         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29037         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29038         * gst-libs/gst/vaapi/gstvaapiprofile.c:
29039         * gst-libs/gst/vaapi/gstvaapiprofile.h:
29040           decoder: use GstVideoCodecState.
29041           Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
29042           it with a new gst_vaapi_decoder_get_codec_state() function. This makes
29043           it possible to drop picture size (width, height) information, framerate
29044           (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
29045           and interlace mode (is_interlaced field).
29046           This is a new API with backwards compatibility maintained. In particular,
29047           gst_vaapi_decoder_get_caps() is still available.
29048           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29049           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29050
29051 2012-12-12 13:44:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29052
29053         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29054         * gst-libs/gst/vaapi/gstvaapidecoder.h:
29055         * tests/test-decode.c:
29056         * tests/test-subpicture.c:
29057           decoder: update gst_vaapi_decoder_get_surface() semantics.
29058           Align gst_vaapi_decoder_get_surface() semantics with the rest of the
29059           API. That is, return a GstVaapiDecoderStatus and the decoded surface
29060           as a handle to GstVaapiSurfaceProxy in parameter.
29061           This is an API/ABI change.
29062
29063 2012-12-07 16:40:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29064
29065         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29066           decoder: use standard helper functions.
29067           Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
29068           whenever necessary.
29069
29070 2012-11-29 15:06:00 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29071
29072         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29073         * gst-libs/gst/vaapi/gstvaapidecoder.h:
29074         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29075           decoder: expose new parse/decode API.
29076           Introduce new decoding process whereby a GstVideoCodecFrame is created
29077           first. Next, input stream buffers are accumulated into a GstAdapter,
29078           that is then passed to the _parse() function. The GstVaapiDecoder object
29079           accumulates all parsed units and when a complete frame or field is
29080           detected, that GstVideoCodecFrame is passed to the _decode() function.
29081           Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
29082           process was successful.
29083
29084 2012-12-13 10:20:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29085
29086         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29087         * gst-libs/gst/vaapi/gstvaapidecoder.h:
29088           decoder: add {start,end}_frame() hooks.
29089           The start_frame() hook is called prior to traversing all decode-units
29090           for decoding. The unit argument represents the first slice in the frame.
29091           Some codecs (e.g. H.264) need to wait for the first slice in order to
29092           determine the actual VA context parameters.
29093
29094 2012-12-06 13:57:42 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29095
29096         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29097         * gst-libs/gst/vaapi/gstvaapidecoder.h:
29098         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29099           decoder: add new GstVaapiDecoder API.
29100           Split decoding process into two steps: (i) parse incoming bitstreams
29101           into simple decoder-units until the frame or field is complete; and
29102           (ii) decode the whole frame or field at once.
29103           This is an ABI change.
29104
29105 2012-12-05 10:51:41 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29106
29107         * gst-libs/gst/vaapi/Makefile.am:
29108         * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
29109         * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
29110           decoder: add new "decoder-frame" object.
29111           Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
29112           (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
29113           an extension to GstVideoCodecFrame for VA decoder purposes. It is available
29114           as the user-data member element.
29115           This is a libgstvaapi internal object.
29116
29117 2012-12-06 09:44:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29118
29119         * gst-libs/gst/vaapi/Makefile.am:
29120         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
29121         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
29122           decoder: add new "decoder-unit" object.
29123           Introduce GstVaapiDecoderUnit which represents a fragment of the source
29124           stream to be decoded. For instance, a decode-unit will be a NAL unit for
29125           H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
29126           streams.
29127           This is a libgstvaapi internal object.
29128
29129 2012-12-03 14:09:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29130
29131         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29132           Port GstVaapiFrameStore to GstVaapiMiniObject.
29133
29134 2012-12-03 11:19:08 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29135
29136         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
29137         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
29138         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29139         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29140         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29141           Port codec objects to GstVaapiMiniObject.
29142
29143 2012-12-03 13:46:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29144
29145         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29146         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29147         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29148         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29149         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29150         * gst/vaapi/gstvaapidecode.c:
29151         * gst/vaapi/gstvaapipluginbuffer.c:
29152         * tests/test-decode.c:
29153         * tests/test-subpicture.c:
29154           surfaceproxy: port to GstVaapiMiniObject.
29155           GstVaapiSurfaceProxy does not use any particular functionality from
29156           GObject. Actually, it only needs a basic object type with reference
29157           counting.
29158           This is an API and ABI change.
29159
29160 2012-11-30 17:25:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29161
29162         * gst-libs/gst/vaapi/Makefile.am:
29163         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
29164         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
29165           Add GstVaapiMiniObject.
29166           Introduce a new reference counted object that is very lightweight and
29167           also provides flags and user-data functionalities. Initialization and
29168           finalization times are reduced by up to a factor 5x vs GstMiniObject
29169           from GStreamer 0.10 stack.
29170           This is a libgstvaapi internal object.
29171
29172 2012-12-17 02:51:17 -0800  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29173
29174         * tests/Makefile.am:
29175         * tests/test-decode.c:
29176         * tests/test-mpeg4.c:
29177         * tests/test-mpeg4.h:
29178           tests: add test for MPEG-4:2 decoding.
29179
29180 2012-12-17 04:42:29 -0800  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29181
29182         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29183           h264: initialize VA context before allocating the first slice.
29184           Fix decode_slice() to ensure a VA context exists prior to creating a
29185           new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
29186           context ID. i.e. the latter was not initialized, thus causing failures
29187           on Cedar Trail for example.
29188
29189 2012-12-05 09:15:32 +0800  Zhao Halley <halley.zhao@intel.com>
29190
29191         * configure.ac:
29192           configure: install plugin elements in GST_PLUGIN_PATH, if set.
29193           If GST_PLUGIN_PATH environment variable exists and points to a valid
29194           directory, then use it as the system installation path for gst-vaapi
29195           plugin elements.
29196           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29197
29198 2012-12-17 14:27:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29199
29200         * configure.ac:
29201           configure: downgrade glib required version to 2.28.
29202
29203 2012-12-17 09:41:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29204
29205         * gst-libs/gst/vaapi/glibcompat.h:
29206         * gst/vaapi/gstvaapi.c:
29207           libs: fix compatibility with glib 2.28.
29208           Always prefer non deprecated APIs by default and provide compatibility
29209           glue for older glib versions when necessary.
29210
29211 2012-12-17 10:10:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29212
29213         * gst-libs/gst/vaapi/gstvaapidisplay.c:
29214         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
29215         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
29216         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29217           libs: use glib >= 2.32 semantics for mutexes.
29218           Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
29219           and termination. Basically, the new mutex objects can be used as static
29220           mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
29221
29222 2012-12-17 04:15:53 -0800  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29223
29224         * gst-libs/gst/vaapi/Makefile.am:
29225           libs: only export gst_vaapi_*() symbols.
29226           This fixes symbol clashes between the gst-vaapi built-in codecparsers/
29227           library and the system-provided one, mainly used by videoparses/. Now,
29228           only symbols with the gst_vaapi_* prefix will be exported, if they are
29229           not marked as "hidden" to libgstvaapi.
29230
29231 2012-11-20 18:21:41 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29232
29233         * gst/vaapi/gstvaapiuploader.c:
29234           vaapiupload: reset direct-rendering to zero when changing caps.
29235           Make sure to reset direct-rendering flag to zero when caps are changed,
29236           and only derive it to one when the next checks succeed.
29237
29238 2012-11-20 14:42:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29239
29240         * gst/vaapi/gstvaapiupload.c:
29241           vaapiupload: fix sink caps to report the supported set of YUV caps.
29242           Try to allocate the GstVaapiUploader helper object prior to listing the
29243           supported image formats. Otherwise, only a single generic caps is output
29244           with no particular pixel format referenced in there.
29245
29246 2012-11-20 14:32:40 +0100  Zhao Halley <halley.zhao@intel.com>
29247
29248         * gst/vaapi/gstvaapiupload.c:
29249         * gst/vaapi/gstvaapiupload.h:
29250           vaapiupload: use new GstVaapiUploader helper.
29251           Use GstVaapiUploader helper that automatically handles direct rendering
29252           mode, thus making the "direct-rendering" property obsolete and hence it
29253           is now removed.
29254           The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
29255           really well supported and it could actually trigger degraded performance.
29256           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29257
29258 2012-11-20 15:50:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29259
29260         * gst/vaapi/gstvaapisink.c:
29261         * gst/vaapi/gstvaapiuploader.c:
29262         * gst/vaapi/gstvaapiuploader.h:
29263           vaapisink: compute and expose the supported set of YUV caps.
29264           Make vaapisink expose only the set of supported caps for raw YUV buffers.
29265           Add gst_vaapi_uploader_get_caps() helper function to determine the set
29266           of supported YUV caps as source (for images). This function actually
29267           tries to zero and upload each image to a 64x64 test surface. Of course,
29268           this relies on VA drivers to not claim success if vaPutImage() is not
29269           correctly supported.
29270
29271 2012-11-20 14:28:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29272
29273         * NEWS:
29274         * gst/vaapi/Makefile.am:
29275         * gst/vaapi/gstvaapisink.c:
29276         * gst/vaapi/gstvaapisink.h:
29277         * gst/vaapi/gstvaapiuploader.c:
29278         * gst/vaapi/gstvaapiuploader.h:
29279           vaapisink: add support for raw YUV buffers.
29280           Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
29281           It is up to the caller to negotiate source caps (for images) and output
29282           caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
29283           to help decide between the creation of a GstVaapiVideoBuffer or a regular
29284           GstBuffer on sink pads.
29285           Signed-off-by: Zhao Halley <halley.zhao@intel.com>
29286           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29287
29288 2012-11-20 14:36:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29289
29290         * gst-libs/gst/vaapi/gstvaapiimage.c:
29291           image: fix GstVaapiImage map and unmap.
29292           Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
29293           structure correctly filled in if the image was already mapped.
29294           Likewise, make gst_vaapi_image_unmap() return TRUE if the image
29295           was already unmapped.
29296
29297 2012-10-30 13:15:45 +0800  Wind Yuan <feng.yuan@intel.com>
29298
29299         * NEWS:
29300         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29301           videobuffer: fix memory leak for surface and image.
29302           Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
29303           thus resulting on actual memory leak of GstVaapiImage when using them
29304           for downloads/uploads from VA surfaces and more specifically surfaces
29305           when the pipeline is shutdown. i.e. vaTerminate() was never called
29306           because the resources were not unreferenced, and thus not deallocated
29307           in the end.
29308           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29309
29310 2012-11-19 10:04:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29311
29312         * NEWS:
29313           NEWS: updates.
29314
29315 2012-11-16 18:00:10 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29316
29317         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29318           h264: fix picture size in macroblocks.
29319           The picture size signalled by sps->{width,height} is the actual size with
29320           cropping applied, not the original size derived from pic_width_in_mbs_minus1
29321           and pic_height_in_map_units_minus1. VA driver expects that original size,
29322           uncropped.
29323           There is another issue pending: frame cropping information needs to be
29324           taken care of.
29325
29326 2012-11-16 16:18:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29327
29328         * gst-libs/gst/codecparsers/Makefile.am:
29329           codecparsers: always build parserutils first.
29330           Fix commit 18245b4 so that to link and build parserutils.[ch] first.
29331           This is needed since that's the common dependency for actual codec
29332           parsers (gstvc1parser.c for instance).
29333
29334 2012-11-15 17:50:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29335
29336         * gst-libs/gst/codecparsers/Makefile.am:
29337           codecparsers: always build the VC-1 parser library.
29338           ... this is useful to make sure pixel-aspect-ratio and framerate
29339           information are correctly parsed since we have no means to detect
29340           that at configure time.
29341
29342 2012-11-08 11:40:47 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29343
29344         * configure.ac:
29345         * gst-libs/gst/codecparsers/Makefile.am:
29346         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29347           mpeg2: fix PAR calculation from commit bd11bae.
29348           Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
29349           correct PAR values. While doing so, require a newer version of the
29350           bitstream parser library.
29351           Note: it may be necessary to also parse the Sequence_Display_Extension()
29352           header.
29353           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29354           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29355
29356 2012-11-15 15:00:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29357
29358         * gst-libs/gst/vaapi/Makefile.am:
29359           Fix build with the GNU gold linker.
29360           In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
29361           and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
29362
29363 2012-11-02 18:18:37 +0000  Rob Bradford <rob@linux.intel.com>
29364
29365         * configure.ac:
29366         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29367         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29368         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29369           wayland: port to 1.0 version of the protocol.
29370           This patch updates to relect the 1.0 version of the protocol. The main
29371           changes are the switch to wl_registry for global object notifications
29372           and the way that the event queue and file descriptor is processed.
29373           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29374
29375 2012-11-14 19:22:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29376
29377         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29378           h264: fix incorrect integration of previous commit (4d31e1e).
29379           git am got confused somehow, though the end result doesn't change at
29380           all since we require both SPS and PPS to be parsed prior to decoding
29381           the first slice.
29382
29383 2012-11-14 18:40:47 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29384
29385         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29386           h264: start decoding slices after first SPS/PPS activation.
29387           Only start decoding slices when at least one SPS and PPS got activated.
29388           This fixes cases when a source represents a substream of another stream
29389           and no SPS and PPS was inserted before the first slice of the generated
29390           substream.
29391
29392 2012-11-14 14:25:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29393
29394         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29395           h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
29396           ... for interlaced streams. The short_ref[] and long_ref[] arrays may
29397           contain up to 32 fields but VA ReferenceFrames[] array expects up to
29398           16 reference frames, thus including both fields.
29399
29400 2012-11-14 10:27:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29401
29402         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29403           h264: fix interlaced stream decoding with MMCO.
29404           Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
29405           is equal to 1, i.e. when memory management control operations are used. In
29406           particular, when field_pic_flag is set to 0, the new reference flags shall
29407           be applied to both fields.
29408
29409 2012-11-13 17:14:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29410
29411         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29412           h264: add initial support for interlaced streams.
29413           Decoded frames are only output when they are complete, i.e. when both
29414           fields are decoded. This also means that the "interlaced" caps is not
29415           propagated to vaapipostproc or vaapisink elements. Another limitation
29416           is that interlaced bitstreams with MMCO are unlikely to work.
29417
29418 2012-11-13 16:35:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29419
29420         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29421           h264: split remove_reference_at() into finer units.
29422           Split remove_reference_at() into a function that actually removes the
29423           specified entry from the short-term or long-term reference picture array,
29424           and a function that sets reference flags to the desired value, possibly
29425           zero. The latters marks the picture as "unused for reference".
29426
29427 2012-10-23 14:04:22 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29428
29429         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29430           decoder: fix gst_vaapi_picture_new_field() object type.
29431           Fix gst_vaapi_picture_new_field() to preserve the original picture type.
29432           e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
29433           shall generate a GstVaapiPictureH264 object.
29434
29435 2012-11-13 14:04:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29436
29437         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29438           h264: add picture structure for reference picture marking process.
29439           Introduce new `structure' field to the H.264 specific picture structure
29440           so that to simplify the reference picture marking process. That local
29441           picture structure is derived from the original picture structure, as
29442           defined by the syntax elements field_pic_flag and bottom_field_flag.
29443
29444 2012-11-02 15:14:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29445
29446         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29447           h264: introduce new frame store structure.
29448           The frame store represents a Decoded Picture Buffer entry, which can
29449           hold up to two fields. So far, the frame store is only used to hold
29450           full frames.
29451
29452 2012-11-13 10:10:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29453
29454         * ext/codecparsers:
29455           codecparsers: update to gst-vaapi-rebased commit 73d6aab.
29456           73d6aab h264: fix rbsp_more_data() implementation
29457           25d04cf h264: fix error code for invalid size parsed in SPS
29458           84798e5 fix FSF address
29459
29460 2012-10-31 16:37:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29461
29462         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29463           h264: minor clean-ups.
29464           Move DPB flush up if the current picture to decode is an IDR. Besides,
29465           don't bother to check for IDR pictures in dpb_add() function since an
29466           explicit DPB flush was already performed in this case.
29467
29468 2012-10-31 14:24:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29469
29470         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29471           h264: simplify reference picture marking process.
29472           ... to build the short_ref[] and long_ref[] lists from the DPB, instead
29473           of maintaining them separately. This avoids refs/unrefs while making it
29474           possible to generate the list based on the actual picture structure.
29475           This also ensures that the list of generated ReferenceFrames[] actually
29476           matches what reference frames are available in the DPB. i.e. short_ref[]
29477           and long_ref[] entries are implied from the DPB, so there is no risk of
29478           having "dangling" references.
29479
29480 2012-10-31 11:52:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29481
29482         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29483           h264: introduce per-field POC in GstVaapiPictureH264.
29484           Use the POC member available in the GstVaapiPicture base class and
29485           get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
29486           and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
29487           initialized to INT_MAX, so that to simplify picture POC calculation
29488           for non frame pictures.
29489
29490 2012-10-31 11:45:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29491
29492         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29493           h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
29494           Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
29495           reference bits, thus simplifying the reference picture marking process
29496           to only track a single set of reference flags. Also introduce a new
29497           long_term_frame_idx member.
29498
29499 2012-10-31 11:33:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29500
29501         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29502           h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
29503
29504 2012-10-31 10:56:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29505
29506         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29507           h264: fill in GstVaapiPicture structure.
29508           ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
29509
29510 2012-10-31 11:07:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29511
29512         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29513           h264: add vaapi_fill_picture() helper.
29514           Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
29515           to VAPictureH264 structure. This is preparatory work to get rid of the
29516           local VAPictureH264 member in GstVaapiPictureH264.
29517
29518 2012-10-26 16:12:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29519
29520         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29521           h264: fix activation order of picture and sequence parameters.
29522           Delay ensure_context() until we actually need a VA context for allocating
29523           new VA surfaces, and then GstVaapiPictures, but also when a real activation
29524           of a new picture parameter set occurs, thus also implying an activation
29525           of the related sequence parameter set.
29526           The most important thing was to drop the global pps and sps pointers since
29527           they may not have matched the currently activated picture parameter or
29528           sequence parameter sets at the specified decode point.
29529           Anoter positive side-effect is that this cleans up all occurrences of
29530           decode_current_picture() to only keep those useful in decode_picture(),
29531           before a new picture is allocated, or in decode_sequence_end() when
29532           an end-of-stream or end-of-sequence condition occurred.
29533
29534 2012-10-26 13:17:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29535
29536         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29537           h264: fix scaling list generation.
29538           ... aka fix regression from efaab79. In particular, ScalingList8x8[]
29539           array was partially copied to the VAIQMatrixBufferH264. While we are
29540           at it, also improve bounds checking and avoid copying 8x8 scaling
29541           lists if transform_8x8_mode_flag is set to 0.
29542
29543 2012-10-24 18:23:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29544
29545         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29546           h264: fix detection of picture boundaries.
29547           Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
29548           unit of a primary coded picture.
29549
29550 2012-10-23 14:50:14 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29551
29552         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29553           h264: optimize handling of scaling lists.
29554           Don't copy scaling lists twice to an intermediate state. Rather, directly
29555           use the scaling lists from GstH264PPS since they would match those provided
29556           by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
29557           available in the bitstream.
29558
29559 2012-10-23 10:33:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29560
29561         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29562           h264: simplify code when MMCO is 5.
29563           Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
29564           is now updated accordingly to the standard. Besides, MMCO = 5 specific
29565           operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
29566
29567 2012-10-22 11:52:13 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29568
29569         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29570           h264: fix MMCO-based reference picture marking process.
29571           Fix adaptive memory control decoded reference picture marking process
29572           implementation for operations 2 to 6, thus also fixing support for
29573           long-term reference pictures.
29574
29575 2012-10-22 10:50:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29576
29577         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29578           h264: move MMCO handlers out of the loop (cosmetics).
29579           This change only splits each individual MMCO handler into several functions
29580           dedicated for each operation. This is needed to perform further work later
29581           on.
29582
29583 2012-10-17 15:49:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29584
29585         * Makefile.am:
29586           debian: fix make dist for packaging.
29587           bzip2 tarballs are now used, so update the deb.upstream dependencies
29588           to include dist-bzip2 instead of plain old dist, and use the correct
29589           tar extract options to handle that format.
29590
29591 2012-10-17 15:42:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29592
29593         * configure.ac:
29594           configure: generate bzip2 tarballs in ustar format by default.
29595
29596 2012-10-17 15:38:14 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29597
29598         * configure.ac:
29599           configure: bump glib required version to 2.31.2.
29600           Use new Thread API. In particular, g_mutex_init() and g_cond_init()
29601           rather than g_mutex_new() and g_cond_new() respectively.
29602
29603 2012-10-04 17:39:53 +0100  Rob Bradford <rob@linux.intel.com>
29604
29605         * gst/vaapi/gstvaapidecode.c:
29606         * gst/vaapi/gstvaapidecode.h:
29607           vaapidecode: adopt non-deprecrated glib locking primitive pattern.
29608           The use of heap allocated GMutex/GCond is deprecated. Instead place them
29609           inside the structure they are locking.
29610           These changes switch to use g_mutex_init/g_cond_init rather than the heap
29611           allocation functions.
29612           Because we cannot test for a NULL pointer for the GMutex/GCond we must
29613           initialise inside the GObject _init function and clear inside the _finalize
29614           which is guaranteed to only be called once and after the object is no longer
29615           in use.
29616
29617 2012-10-17 14:52:35 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29618
29619         * gst/vaapi/gstvaapidecode.c:
29620           vaapidecode: fix compiler warnings.
29621           Don't care of the return value for gst_vaapi_decoder_put_buffer()
29622           during destruction of the element. Don't print out (uninitialised)
29623           error code when allocation of video buffer failed.
29624
29625 2012-10-16 16:52:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29626
29627         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29628           h264: add flag to compile with strict DPB ordering mode.
29629           Allow build with strict DPB ordering mode whereby evicted entries
29630           are replaced by the next entries, in order instead of optimizing
29631           it away with the last entry in the DPB.
29632           This is only useful for debugging purpose, against a reference SW
29633           decoder for example.
29634
29635 2012-10-16 16:46:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29636
29637         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29638           h264: drop extra code covered by built-in codecparsers.
29639           GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
29640           a newer version of codecparsers/ are used if the system provided one is
29641           now recent enough to have those required extensions.
29642
29643 2012-10-16 16:43:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29644
29645         * gst-libs/gst/codecparsers/Makefile.am:
29646           codecparsers: fix generation of symlinks.
29647           Try to improve dependencies while generating symlinks to externally
29648           maintained copy of codecparsers (derived from upstream git master
29649           tree).
29650
29651 2012-10-11 15:04:12 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29652
29653         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29654           vc1: use framerate information from bitstream parser.
29655
29656 2012-09-27 18:05:46 +0100  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29657
29658         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29659           vc1: use pixel-aspect-ratio from bitstream parser.
29660           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29661           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29662
29663 2012-09-27 18:05:46 +0100  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29664
29665         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29666           mpeg2: use pixel-aspec-ratio information from bitstream parser.
29667           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29668           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29669
29670 2012-10-11 13:49:14 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29671
29672         * configure.ac:
29673         * gst-libs/gst/codecparsers/Makefile.am:
29674           codecparsers: h264: use submodule sources.
29675           Use newer sources from the codecparsers/ submodule for
29676           - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
29677           - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
29678
29679 2012-10-11 13:23:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29680
29681         * .gitignore:
29682         * configure.ac:
29683         * gst-libs/gst/codecparsers/Makefile.am:
29684         * gst-libs/gst/codecparsers/gstjpegparser.c:
29685         * gst-libs/gst/codecparsers/gstjpegparser.h:
29686         * gst-libs/gst/vaapi/Makefile.am:
29687           codecparsers: jpeg: use submodule sources.
29688
29689 2012-10-11 10:03:14 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29690
29691         * .gitmodules:
29692         * Makefile.am:
29693         * autogen.sh:
29694         * configure.ac:
29695         * ext/Makefile.am:
29696         * ext/codecparsers:
29697           Add codecparsers submodule.
29698
29699 2012-10-11 14:17:12 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29700
29701         * .gitignore:
29702           .gitignore: updates.
29703
29704 2012-10-11 13:40:37 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29705
29706         * autogen.sh:
29707           autogen: fix check for gtkdocize and autoreconf.
29708           If gtkdocize or autoreconf programs were not found, then the autogen.sh
29709           script would fail to report that correctly because test -z was not passed
29710           any argument (empty string "" in this case).
29711
29712 2012-09-27 18:05:46 +0100  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29713
29714         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29715           h264: use pixel-aspect-ratio from SPS header.
29716           Propagate pixel-aspect-ratio determined by the GStreamer codecparser
29717           from the sequence headers.
29718           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29719           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29720
29721 2012-10-10 10:35:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29722
29723         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29724           h264: add decode_nalu() helper function.
29725           Split decode_buffer() into the core infrastructure that determines
29726           the NAL units contained in the adapter and the actual function that
29727           decodes the NAL unit.
29728
29729 2012-10-10 10:31:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29730
29731         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29732           h264: fix end-of-stream conditions (flush).
29733           Decode pending data in the adapter prior to processing the actual
29734           code for end-of-stream.
29735
29736 2012-10-10 09:45:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29737
29738         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29739           mpeg2: add decode_packet() helper function.
29740           Split decode_buffer() into the core infrastructure that determines
29741           the packets contained in the adapter and the actual function that
29742           decodes the packet data.
29743
29744 2012-10-09 15:34:18 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29745
29746         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29747           mpeg2: fix end-of-stream conditions (flush).
29748           Decode pending data in the adapter prior to processing the actual
29749           code for end-of-stream. Initial code from Feng Yuan.
29750
29751 2012-10-09 15:40:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29752
29753         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29754           mpeg2: fix memory leak of empty packets.
29755           Fix memory leakage of empty packets, i.e. packets that only contain
29756           the start code prefix. In particular, free empty user-data packets.
29757           Besides, the codec parser will already fail gracefully if the packet
29758           to parse does not have the minimum required size. So, we can also
29759           completely drop the block of code that used to handle packets of size 4
29760           (including the start code).
29761
29762 2012-10-09 15:01:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29763
29764         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29765           mpeg2: fix return value for "no-data" conditions.
29766           Fix return value when the second scan for start code fails. This means
29767           there is not enough data to determine the full extents of the current
29768           packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
29769           in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
29770
29771 2012-10-09 14:48:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29772
29773         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29774           decoder: refine semantics of gst_vaapi_decoder_put_buffer().
29775           Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
29776           buffer is passed on. An empty buffer is a buffer with a NULL data pointer
29777           or with a size equals to zero. In this case, that buffer is simply
29778           skipped and the function returns TRUE. A NULL buffer argument still
29779           marks the end-of-stream.
29780
29781 2012-10-09 14:40:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29782
29783         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29784         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29785           decoder: drop unused functions.
29786
29787 2012-08-26 22:29:04 -0400  Wind Yuan <feng.yuan@intel.com>
29788
29789         * gst/vaapi/gstvaapidecode.c:
29790           vaapidecode: flush buffers when receiving EOS.
29791           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29792
29793 2012-10-05 13:36:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29794
29795         * debian.upstream/Makefile.am:
29796           debian: fix make dist for packaging.
29797
29798 2012-10-05 12:06:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29799
29800         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29801         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29802           wayland: cosmetics (remove tabs).
29803
29804 2012-10-04 17:39:52 +0100  Rob Bradford <rob@linux.intel.com>
29805
29806         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29807           wayland: add support for windowed mode.
29808           Rather than always making the surface fullscreen instead implement the
29809           set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
29810           fullscreen on not depending on that.
29811           Reviewed-by: Joe Konno <joe.konno@intel.com>
29812           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29813
29814 2012-10-01 09:21:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29815
29816         * configure.ac:
29817           Bump version for development.
29818
29819 2012-09-28 17:54:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29820
29821         * README:
29822         * configure.ac:
29823           Fix and document build dependencies better.
29824
29825 2012-09-28 17:41:42 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29826
29827         * debian.upstream/control.in:
29828           debian: fix GStreamer build dependencies.
29829
29830 2012-09-28 17:39:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29831
29832         * configure.ac:
29833         * debian.upstream/control.in:
29834           debian: fix Wayland build dependencies.
29835
29836 2012-09-28 17:38:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29837
29838         * debian.upstream/control.in:
29839           debian: fix conditional build of packages.
29840           Make it still possible to build package even if one of the build dependencies
29841           for a specific video backend is not available.
29842
29843 2012-09-27 11:08:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29844
29845         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29846         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29847           utils: drop unused GLX helpers.
29848           Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
29849           extensions since they are not used throughout gstreamer-vaapi.
29850
29851 2012-09-27 11:04:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29852
29853         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29854           utils: fix build with <GL/glext.h> version >= 85.
29855           Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
29856           This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
29857           GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
29858           GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
29859           thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
29860           Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
29861           newer versions of the <GL/glext.h> header.
29862
29863 2012-09-26 16:33:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29864
29865         * configure.ac:
29866           configure: update VA-API version requirements.
29867           VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
29868
29869 2012-09-21 16:43:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29870
29871         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29872           h264: review and report errors accordingly.
29873           Use GST_ERROR() to report real errors instead of hiding them into
29874           GST_DEBUG().
29875
29876 2012-09-20 17:58:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29877
29878         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29879           h264: exclusively use GstAdapter, drop sub-buffer hack.
29880           Maintaining the sub-buffer is rather suboptimal especially since we
29881           were also maintaining a GstAdapter. Now, we only use the GstAdapter
29882           thus requiring minor extra parsing when receiving avcC buffers.
29883
29884 2012-09-20 16:18:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29885
29886         * README:
29887           README: updates.
29888
29889 2012-09-20 16:02:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29890
29891         * NEWS:
29892           NEWS: updates.
29893
29894 2012-09-20 14:38:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29895
29896         * debian.upstream/gstreamer-vaapi.install.in:
29897           debian: fix packaging on recent Ubuntu platforms.
29898           Use explicit GStreamer plugins path.
29899
29900 2012-09-17 17:55:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29901
29902         * docs/reference/libs/libs-docs.xml.in:
29903         * docs/reference/libs/libs.core.types:
29904           docs: fix build for make dist.
29905
29906 2012-09-14 10:30:35 -0400  Kristian Høgsberg <krh@bitplanet.net>
29907
29908         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29909           wayland: set opaque region for YUV surface.
29910           This allows the compositor to optimize redraws and cull away changes
29911           obscured by the video surface.
29912           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29913
29914 2012-09-14 17:30:19 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29915
29916         * configure.ac:
29917           configure: fix check for libva-glx and libva-drm.
29918
29919 2012-09-12 13:42:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29920
29921         * gst-libs/gst/vaapi/glibcompat.h:
29922           glibcompat: add replacement for g_cond_wait_until().
29923
29924 2012-09-12 13:41:47 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29925
29926         * gst/vaapi/gstvaapidecode.c:
29927         * gst/vaapi/gstvaapidownload.c:
29928         * gst/vaapi/gstvaapipostproc.c:
29929         * gst/vaapi/gstvaapisink.c:
29930         * gst/vaapi/gstvaapiupload.c:
29931           plugins: include "sysdeps.h" instead of "config.h".
29932
29933 2012-09-12 10:40:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29934
29935         * gst-libs/gst/codecparsers/gstjpegparser.c:
29936           codecparsers: jpeg: add missing includes.
29937
29938 2012-09-11 17:03:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29939
29940         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29941         * gst-libs/gst/vaapi/gstvaapidecoder.h:
29942         * gst/vaapi/gstvaapidecode.c:
29943           vaapidecode: don't reset decoder if codec type is the same.
29944           Reset, i.e. destroy then create, the decoder in _setcaps() handler only
29945           if the underlying codec type actually changed. This makes it possible
29946           to be more tolerant with certain MPEG-2 streams that get parsed to
29947           form caps that are compatible with the previous state but minor changes
29948           to "codec-data".
29949
29950 2012-09-11 16:41:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29951
29952         * gst/vaapi/gstvaapidecode.c:
29953           vaapidecode: simplify codec lookup from caps.
29954           Add new gst_vaapi_codec_from_caps() helper to determine codec type from
29955           the specified caps. Don't globally expose this function since this is
29956           really trivial and only used in the vaapidecode element.
29957
29958 2012-09-11 15:54:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29959
29960         * gst/vaapi/gstvaapidecode.c:
29961         * gst/vaapi/gstvaapidecode.h:
29962           vaapidecode: improve "no free surface" conditions.
29963           Previously, vaapidecode would wait up to one second until a free surface
29964           is available, or it aborts decoding. Now, vaapidecode waits until the
29965           last decoded surface was to be presented, plus one second. Besides, end
29966           times are now expressed relative to the monotonic clock.
29967
29968 2012-09-11 10:59:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29969
29970         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29971         * gst/vaapi/gstvaapidecode.c:
29972           decoder: propagate buffer duration downstream.
29973
29974 2012-09-11 10:59:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29975
29976         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29977         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29978           surfaceproxy: add "duration" property.
29979
29980 2012-09-10 18:26:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29981
29982         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29983         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29984         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29985         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29986         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29987         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29988         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29989           decoder: cope with new GstVaapiContextInfo based API.
29990           Update decoders to report the maximum number of reference frames to use.
29991
29992 2012-09-10 18:17:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29993
29994         * gst-libs/gst/vaapi/gstvaapicontext.c:
29995           context: JPEG codec does not need any reference frame.
29996
29997 2012-09-10 18:15:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29998
29999         * gst-libs/gst/vaapi/gstvaapicontext.c:
30000         * gst-libs/gst/vaapi/gstvaapicontext.h:
30001           context: allow number of reference frames to be set.
30002           Make it possible to specify the maximum number of references to use within
30003           a single VA context. This helps reducing GPU memory allocations to the useful
30004           number of references to be used.
30005
30006 2012-09-07 16:41:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30007
30008         * gst/vaapi/gstvaapipostproc.c:
30009           vaapipostproc: fix deinterlace-{mode,method} types definition.
30010
30011 2012-09-07 16:15:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30012
30013         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30014           mpeg4: fix debug info for unsupported profile.
30015
30016 2012-09-07 16:14:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30017
30018         * gst-libs/gst/vaapi/gstvaapicontext.c:
30019         * gst-libs/gst/vaapi/gstvaapidecoder.c:
30020         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
30021         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30022         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30023         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
30024         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
30025         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30026         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30027         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30028         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30029         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30030         * gst-libs/gst/vaapi/gstvaapiimage.c:
30031         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
30032         * gst-libs/gst/vaapi/gstvaapiobject.c:
30033         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30034         * gst-libs/gst/vaapi/gstvaapisurface.c:
30035         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
30036         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30037         * gst-libs/gst/vaapi/gstvaapitexture.c:
30038         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30039         * gst-libs/gst/vaapi/gstvaapivalue.c:
30040         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30041         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30042         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30043         * gst-libs/gst/vaapi/gstvaapivideopool.c:
30044         * gst-libs/gst/vaapi/gstvaapiwindow.c:
30045         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30046         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
30047         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30048         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
30049           libs: fix build in strict ISO C mode.
30050
30051 2012-09-07 16:11:12 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30052
30053         * gst/vaapi/gstvaapi.c:
30054         * gst/vaapi/gstvaapidecode.c:
30055         * gst/vaapi/gstvaapidownload.c:
30056         * gst/vaapi/gstvaapipostproc.c:
30057         * gst/vaapi/gstvaapisink.c:
30058         * gst/vaapi/gstvaapiupload.c:
30059           plugins: fix build in strict ISO C mode.
30060
30061 2012-09-07 15:31:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30062
30063         * pkgconfig/gstreamer-vaapi-glx.pc.in:
30064         * pkgconfig/gstreamer-vaapi-x11.pc.in:
30065         * pkgconfig/gstreamer-vaapi.pc.in:
30066           pkgconfig: fix dependencies and slightly improve description.
30067           Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
30068           descriptions with clearer renderer names.
30069
30070 2012-09-04 13:54:19 +0200  Philip Lorenz <philip@bithub.de>
30071
30072         * gst/vaapi/gstvaapidecode.c:
30073           vaapidecode: acquire lock only if the mutex exists.
30074           When playback stops the GstVaapiDecode object is reset into a clean
30075           state. However, surfaces may still be referenced by library users and
30076           unreferencing them after the reset triggers an access to an unset mutex.
30077           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30078
30079 2012-09-07 11:58:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30080
30081         * gst-libs/gst/vaapi/gstvaapidecoder.c:
30082           decoder: drop extraneous return for void function.
30083
30084 2012-09-07 11:57:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30085
30086         * gst-libs/gst/vaapi/gstvaapiimage.c:
30087           image: don't use (void *) pointer arithmetic.
30088
30089 2012-09-04 13:40:04 +0200  Philip Lorenz <philip@bithub.de>
30090
30091         * gst-libs/gst/vaapi/gstvaapidecoder.h:
30092         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30093         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30094         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
30095         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
30096         * gst-libs/gst/vaapi/gstvaapiprofile.h:
30097         * gst-libs/gst/vaapi/gstvaapisurface.h:
30098         * gst-libs/gst/vaapi/gstvaapitypes.h:
30099         * gst/vaapi/gstvaapipostproc.h:
30100           Do not forward declare enums.
30101           Forward declaring enums is not allowed by the C standard and aborts
30102           compilation if the header file is included in a C++ project.
30103           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30104
30105 2012-09-07 11:44:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30106
30107         * configure.ac:
30108           configure: fix check for VA/DRM API.
30109
30110 2012-09-04 11:53:18 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30111
30112         * gst/vaapi/gstvaapisink.c:
30113           vaapisink: fix calculation of window size.
30114           If either dimension is out-of-bounds, then scale window to fit the
30115           display size, even if the output is to be rotated. Use the standard
30116           gst_video_sink_center_rect() function to center and scale the window
30117           wrt. the outer (display) bounds.
30118
30119 2012-08-28 02:45:22 -0400  Wind Yuan <feng.yuan@intel.com>
30120
30121         * gst/vaapi/gstvaapisink.c:
30122         * gst/vaapi/gstvaapisink.h:
30123           vaapisink: add video rotation support.
30124           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30125
30126 2012-09-06 11:47:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30127
30128         * gst/vaapi/gstvaapipluginutil.h:
30129           pluginutils: add G_PRIMITIVE_SWAP() helper macro.
30130           This macro helps swapping variables while maintaining the correct underlying
30131           and primitive type.
30132
30133 2012-09-06 11:51:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30134
30135         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30136           display: fix display aspect ratio when display is rotated.
30137
30138 2012-09-06 11:50:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30139
30140         * configure.ac:
30141         * gst-libs/gst/vaapi/Makefile.am:
30142         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30143         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
30144           display: fix physical display size when display is rotated.
30145
30146 2012-08-30 16:27:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30147
30148         * gst-libs/gst/vaapi/gstvaapivalue.c:
30149           display: fix GstVaapiRotation enumeration of values.
30150
30151 2012-08-29 13:18:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30152
30153         * docs/reference/libs/libs-docs.xml.in:
30154         * docs/reference/libs/libs-sections.txt:
30155         * gst-libs/gst/vaapi/Makefile.am:
30156         * gst-libs/gst/vaapi/gstvaapivideosink.c:
30157         * gst-libs/gst/vaapi/gstvaapivideosink.h:
30158         * gst/vaapi/gstvaapidecode.c:
30159         * gst/vaapi/gstvaapidownload.c:
30160         * gst/vaapi/gstvaapipostproc.c:
30161         * gst/vaapi/gstvaapisink.c:
30162         * gst/vaapi/gstvaapiupload.c:
30163           vaapisink: drop obsolete GstVaapiVideoSink interface.
30164           This interface was deprecated since 0.3.x series when the GstVideoContext
30165           interface was added to the main GStreamer APIs.
30166
30167 2012-08-27 18:34:27 +0300  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30168
30169         * gst/vaapi/gstvaapisink.c:
30170         * gst/vaapi/gstvaapisink.h:
30171           vaapisink: automatically detect overlay rendering mode.
30172           Retain the VA surface until another surface is to be displayed only
30173           if VA display rendering mode is determined to be "overlay" mode.
30174
30175 2012-08-24 16:30:33 +0300  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30176
30177         * gst/vaapi/gstvaapisink.c:
30178         * gst/vaapi/gstvaapisink.h:
30179           vaapisink: retain VA surface until another one is displayed.
30180           Keep VA surface proxy associated with the surface that is currently
30181           being displayed. This makes sure that surface is not released back
30182           to the pool of surfaces free to use for decoding. This is necessary
30183           with VA driver implementations that support rendering to an overlay
30184           pipe. Otherwise, there could be cases where we are decoding into a
30185           surface that is being displayed, hence some flickering.
30186
30187 2012-08-24 14:54:16 +0300  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30188
30189         * gst/vaapi/gstvaapisink.h:
30190           vaapisink: fix build with older toolchains.
30191           Don't re-declare GstVaapiTexture if USE_GLX mode is set.
30192
30193 2012-08-29 10:13:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30194
30195         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30196           display: partially revert 8ebe4d6.
30197           Don't try to fix up the initial values, this could make things worse.
30198           Simply assume the driver does not support the capability in this case.
30199
30200 2012-08-28 16:08:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30201
30202         * tests/test-display.c:
30203           tests: dump VA display properties.
30204
30205 2012-08-28 18:11:32 +0300  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30206
30207         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30208           display: fix validation process of properties during discovery.
30209           Some VA drivers (e.g. EMGD) can have completely random values for initial
30210           display attributes. So, try to improve the discovery process to check the
30211           initial display attribute values actually fall within valid bounds. If not,
30212           try to reset those to some sensible values like the default value reported
30213           through vaQueryDisplayAttributes().
30214
30215 2012-08-28 13:59:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30216
30217         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30218         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30219           display: add color balance properties.
30220           Add support for hue, saturation, brightness and contrast attributes.
30221
30222 2012-08-28 14:05:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30223
30224         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30225           display: initialize default attribute values.
30226           Ensure the display attribute is actually supported by trying to retrieve
30227           its current value during GstVaapiDisplay creation.
30228
30229 2012-08-28 11:09:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30230
30231         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30232           display: raise "notify" for property changes.
30233
30234 2012-08-28 10:55:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30235
30236         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30237         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30238           display: expose display attributes as GObject properties.
30239           Expose VA display "render-mode" and "rotation" attributes as standard
30240           GObject properties.
30241
30242 2012-08-28 16:24:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30243
30244         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30245           display: install properties in batch.
30246           Use g_object_class_install_properties() to install GstVaapiDisplay properties.
30247           It is useful to maintain properties as GParamSpec so that to be able to raise
30248           "notify" signals by id instead of by name in the future.
30249
30250 2012-08-27 19:00:37 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30251
30252         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30253           display: fix gst_vaapi_display_has_property().
30254           Append the "render-mode" and "rotation" properties, should they be supported
30255           by the underlying VA driver.
30256
30257 2012-08-22 02:18:11 -0400  Wind Yuan <feng.yuan@intel.com>
30258
30259         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30260         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30261         * gst-libs/gst/vaapi/gstvaapitypes.h:
30262         * gst-libs/gst/vaapi/gstvaapiutils.c:
30263         * gst-libs/gst/vaapi/gstvaapiutils.h:
30264         * gst-libs/gst/vaapi/gstvaapivalue.c:
30265         * gst-libs/gst/vaapi/gstvaapivalue.h:
30266           display: add support for rotation modes.
30267           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30268
30269 2012-08-27 18:11:37 +0300  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30270
30271         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30272         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30273         * gst-libs/gst/vaapi/gstvaapitypes.h:
30274         * gst-libs/gst/vaapi/gstvaapivalue.c:
30275         * gst-libs/gst/vaapi/gstvaapivalue.h:
30276           display: add support for rendering modes.
30277           A rendering mode can be "overlay" or "texture"'ed blit.
30278           The former mode implies that a VA surface used for rendering can't be
30279           re-used right away for decoding, so the sink shall make provisions to
30280           retain the associated surface proxy until the next surface is to be
30281           displayed.
30282           The latter mode implies that the VA surface is implicitly copied to an
30283           intermediate backing store, or back buffer of a frame buffer, so the
30284           associated surface proxy can be disposed right away.
30285
30286 2012-08-27 17:02:49 +0300  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30287
30288         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30289         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30290         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30291           display: add initial support for display attributes.
30292           The VA display attributes are mapped to properties so that to maintain the
30293           GStreamer terminology. Properties are to be identified by name, but internal
30294           functions are available to lookup the property by the actual VA display
30295           attribute type.
30296
30297 2012-08-24 11:36:16 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30298
30299         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30300           jpeg: fix end-of-image (EOI) handler.
30301           decode_current_picture() was converted to return a gboolean instead
30302           of a GstVaapiDecoderStatus, so we were not getting out of the decode
30303           loop as expected, or could cause an error instead.
30304           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30305
30306 2012-08-24 18:41:47 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30307
30308         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30309           mpeg2: include start code into VA slice data buffer.
30310           Integrate the start code prefix in the slice data buffer that is submitted
30311           to the hardware. VA-API specifies that slice_data_offset is the offset to
30312           the first byte of slice data. And, for MPEG-2, slice() data begins with
30313           the slice_start_code. Some VA driver implementations (EMGD) expect this.
30314
30315 2012-06-28 01:08:03 +0900  Javier Jardón <jjardon@gnome.org>
30316
30317         * autogen.sh:
30318           autogen: fix configure script generation when srcdir != builddir.
30319           This patch allows for regenerating the configure script from a build
30320           directory that is not the actual source directory.
30321           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30322
30323 2012-06-28 00:22:03 +0900  Javier Jardón <jjardon@gnome.org>
30324
30325         * configure.ac:
30326           configure: use new libtool syntax.
30327           This now requires libtool >= 2.2 to regenerate the configure script.
30328           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30329
30330 2012-08-08 12:50:41 +0900  Javier Jardón <jjardon@gnome.org>
30331
30332         * gst-libs/gst/vaapi/gstvaapidecoder.c:
30333           decoder: use g_object_notify_by_pspec().
30334           Use g_object_notify_by_pspec() instead of g_object_notify() so that to
30335           avoid a property name lookup. i.e. this makes notifications faster to
30336           the `vaapidecode' element.
30337           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30338
30339 2012-08-06 19:21:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30340
30341         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30342           wayland: handle de-interlacing flags.
30343           VA/Wayland API was updated to allow flags for bob deinterlacing.
30344           More elaborated filters will require a complete VA/VPP pipeline.
30345
30346 2012-08-02 18:27:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30347
30348         * gst-libs/gst/codecparsers/gstjpegparser.c:
30349           jpeg: fix default quantization tables.
30350           Two elements in the luminance quantization table were wrong. So,
30351           gst_jpeg_get_default_quantization_tables() now reconstructs tables
30352           in zig-zag order from the standard ones (Tables K.1 and K.2).
30353
30354 2012-08-02 15:17:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30355
30356         * gst-libs/gst/codecparsers/gstjpegparser.c:
30357           jpeg: compute default Huffman tables.
30358           ... instead of having them pre-calculated. This saves around 1.5 KB
30359           of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
30360           to do more work. Though, the client application may have to call that
30361           function at most once, only.
30362
30363 2012-08-01 18:30:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30364
30365         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30366           display: drop VAProfileNone entries from debug messages.
30367
30368 2012-07-31 18:24:14 +0800  Yan Yin <yan.yin@intel.com>
30369
30370         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30371           display: query for supported display attributes.
30372           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30373
30374 2012-07-31 18:22:48 +0800  Yan Yin <yan.yin@intel.com>
30375
30376         * gst-libs/gst/vaapi/gstvaapiutils.c:
30377         * gst-libs/gst/vaapi/gstvaapiutils.h:
30378           utils: add string_of_VADisplayAttributeType() helper.
30379           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30380
30381 2012-08-01 15:46:35 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30382
30383         * gst/vaapi/gstvaapisink.c:
30384           vaapisink: handle VA/DRM API.
30385           This is not useful in practice but for raw performance evaluation when
30386           the sink is invoked with display=drm sync=false. fakesink could also be
30387           used though.
30388
30389 2012-08-01 15:46:19 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30390
30391         * gst/vaapi/Makefile.am:
30392         * gst/vaapi/gstvaapipluginutil.c:
30393           plugins: add support for headless pipelines.
30394
30395 2012-08-01 15:44:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30396
30397         * tests/Makefile.am:
30398         * tests/output.c:
30399         * tests/test-display.c:
30400         * tests/test-windows.c:
30401           tests: add support for headless decoding.
30402
30403 2012-08-01 15:44:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30404
30405         * NEWS:
30406         * configure.ac:
30407         * debian.upstream/Makefile.am:
30408         * debian.upstream/control.in:
30409         * debian.upstream/libgstvaapi-drm.install.in:
30410         * gst-libs/gst/vaapi/Makefile.am:
30411         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30412         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30413         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30414         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
30415         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
30416         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30417         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
30418         * pkgconfig/Makefile.am:
30419         * pkgconfig/gstreamer-vaapi-drm.pc.in:
30420           Add initial support for VA/DRM.
30421
30422 2012-07-31 17:58:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30423
30424         * configure.ac:
30425         * gst-libs/gst/vaapi/Makefile.am:
30426           Fix build without X11 (again).
30427           Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
30428           files list wrt. x11, glx and wayland backends.
30429
30430 2012-07-31 11:51:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30431
30432         * configure.ac:
30433         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30434         * gst-libs/gst/vaapi/gstvaapicompat.h:
30435         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30436           jpeg: update to the latest VA-API changes (0.32.1+).
30437
30438 2012-07-27 14:27:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30439
30440         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30441         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30442         * gst/vaapi/gstvaapisink.c:
30443           wayland: implement display ::get_size*() hooks.
30444
30445 2012-07-27 10:45:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30446
30447         * gst/vaapi/gstvaapipluginutil.c:
30448           plugins: prefer X11 rendering over GLX.
30449           Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
30450           for rendering instead of texturing.
30451
30452 2012-07-26 09:28:51 -0400  Kristian Høgsberg <krh@bitplanet.net>
30453
30454         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30455           wayland: use scale fullscreen method.
30456           This makes the compositor scale the surface to fit and preserves aspect
30457           ratio.
30458           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30459
30460 2012-07-26 09:27:47 -0400  Kristian Høgsberg <krh@bitplanet.net>
30461
30462         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30463           wayland: respond to ping/pong protocol so we're not deemed unresponsive.
30464           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30465
30466 2012-07-25 10:39:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30467
30468         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30469           wayland: fix double disconnect of display.
30470
30471 2012-07-24 19:58:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30472
30473         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30474           wayland: mangle display name for cache lookups.
30475
30476 2012-07-24 15:43:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30477
30478         * configure.ac:
30479         * debian.upstream/Makefile.am:
30480         * debian.upstream/control.in:
30481         * debian.upstream/libgstvaapi-wayland.install.in:
30482         * pkgconfig/Makefile.am:
30483         * pkgconfig/gstreamer-vaapi-wayland.pc.in:
30484           wayland: add packaging files.
30485
30486 2012-07-24 15:07:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30487
30488         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30489         * gst/vaapi/gstvaapipluginutil.c:
30490         * gst/vaapi/gstvaapisink.c:
30491         * pkgconfig/Makefile.am:
30492           Fix build without X11.
30493
30494 2012-07-24 09:45:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30495
30496         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30497         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30498         * gst/vaapi/Makefile.am:
30499         * gst/vaapi/gstvaapipluginutil.c:
30500         * gst/vaapi/gstvaapisink.c:
30501           plugins: add support for Wayland.
30502
30503 2012-07-23 12:56:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30504
30505         * tests/Makefile.am:
30506         * tests/output.c:
30507         * tests/test-display.c:
30508         * tests/test-windows.c:
30509           tests: add support for Wayland.
30510
30511 2012-07-19 10:27:23 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30512
30513         * NEWS:
30514         * configure.ac:
30515         * gst-libs/gst/vaapi/Makefile.am:
30516         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30517         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
30518         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30519         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
30520         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30521         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
30522           Add initial support for VA/Wayland.
30523           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30524
30525 2012-07-25 15:11:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30526
30527         * gst/vaapi/gstvaapipluginbuffer.c:
30528           plugins: fix creation of video buffer from surface proxy.
30529           Fix a regression introduced with commit 8ef490a.
30530
30531 2012-07-25 14:51:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30532
30533         * gst/vaapi/gstvaapipluginbuffer.c:
30534         * gst/vaapi/gstvaapipluginutil.c:
30535           plugins: use new display types more.
30536           In particular, simplify gst_vaapi_reply_to_query() with display types.
30537           Likewise for creating new video buffers.
30538
30539 2012-07-25 10:02:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30540
30541         * gst/vaapi/gstvaapidecode.c:
30542         * gst/vaapi/gstvaapidownload.c:
30543         * gst/vaapi/gstvaapipluginutil.c:
30544         * gst/vaapi/gstvaapipluginutil.h:
30545         * gst/vaapi/gstvaapipostproc.c:
30546         * gst/vaapi/gstvaapisink.c:
30547         * gst/vaapi/gstvaapiupload.c:
30548           plugins: fix display type selection and propagation.
30549           If vaapisink is in the GStreamer pipeline, then we shall allocate a
30550           unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
30551           queries from vaapidecode shall get a valid answer from vaapisink.
30552
30553 2012-07-25 11:37:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30554
30555         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30556           display: fix destruction of mutex.
30557
30558 2012-07-25 09:16:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30559
30560         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30561         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30562         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30563         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30564         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30565         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
30566         * gst/vaapi/gstvaapipluginutil.c:
30567         * gst/vaapi/gstvaapipluginutil.h:
30568         * gst/vaapi/gstvaapisink.c:
30569           display: add display types.
30570           Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
30571           we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
30572           type to "any", and add a "display-type" attribute.
30573
30574 2012-07-24 19:43:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30575
30576         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30577           display: use prefixed display names for cache lookups.
30578           This improves display name comparisons by always allocating a valid display
30579           name. This also helps to disambiguate lookups by name in the global display
30580           cache, should a new backend be implemented.
30581
30582 2012-07-24 16:14:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30583
30584         * gst/vaapi/gstvaapipluginutil.h:
30585           plugins: declare helper functions as internal.
30586
30587 2012-07-24 14:31:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30588
30589         * docs/reference/libs/libs-sections.txt:
30590         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30591         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30592         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30593         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30594         * gst/vaapi/Makefile.am:
30595         * gst/vaapi/gstvaapidecode.c:
30596         * gst/vaapi/gstvaapidownload.c:
30597         * gst/vaapi/gstvaapipluginbuffer.c:
30598         * gst/vaapi/gstvaapipluginbuffer.h:
30599         * gst/vaapi/gstvaapipostproc.c:
30600         * gst/vaapi/gstvaapiupload.c:
30601           videobuffer: drop deprecated functions.
30602           Move video buffer creation routines to plugin elements. That exclusively
30603           uses *_typed_new*() variants.
30604
30605 2012-07-24 14:09:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30606
30607         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30608         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30609           videobuffer: mark video buffer creation routines as deprecated.
30610           The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
30611           plugin elements. So deprecate any explicit creation routines that are not the
30612           new *_typed_new*() variants.
30613
30614 2012-07-24 13:52:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30615
30616         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30617         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30618         * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
30619           videobuffer: factor out base and GLX implementations.
30620           Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
30621           This avoids duplication of code, and makes it possible to further implement
30622           generic video buffer creation routines that automatically map to base or GLX
30623           variants.
30624
30625 2012-07-24 10:58:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30626
30627         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30628           utils: fix gl_create_context() with parent context set.
30629           If GLX window was created from a foreign Display, then that same Display shall
30630           be used for subsequent glXMakeCurrent(). This means that gl_create_context()
30631           will now use the same Display that the parent, if available.
30632           This fixes cluttersink with the Intel GenX VA driver.
30633
30634 2012-07-23 18:37:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30635
30636         * gst/vaapi/gstvaapidecode.c:
30637         * gst/vaapi/gstvaapidownload.c:
30638         * gst/vaapi/gstvaapipluginutil.c:
30639         * gst/vaapi/gstvaapipluginutil.h:
30640         * gst/vaapi/gstvaapipostproc.c:
30641         * gst/vaapi/gstvaapisink.c:
30642         * gst/vaapi/gstvaapiupload.c:
30643           pluginutils: improve automatic display type selection.
30644
30645 2012-07-23 18:01:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30646
30647         * gst/vaapi/gstvaapipluginutil.c:
30648         * gst/vaapi/gstvaapipluginutil.h:
30649           pluginutils: cosmetics (indentation fixes).
30650
30651 2012-07-23 17:54:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30652
30653         * configure.ac:
30654           configure: simplify video outputs summary.
30655
30656 2012-07-23 17:49:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30657
30658         * configure.ac:
30659         * gst/vaapi/gstvaapipluginutil.c:
30660         * gst/vaapi/gstvaapipluginutil.h:
30661         * gst/vaapi/gstvaapisink.c:
30662         * gst/vaapi/gstvaapisink.h:
30663           configure: drop check for --enable-vaapisink-glx.
30664           vaapisink is now built with support for multiple display types, whenever
30665           they are enabled. The new "display" attribute is used to select a particular
30666           renderer.
30667
30668 2012-07-23 16:15:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30669
30670         * configure.ac:
30671         * gst-libs/gst/vaapi/gstvaapicompat.h:
30672         * gst/vaapi/Makefile.am:
30673         * gst/vaapi/gstvaapidecode.c:
30674         * gst/vaapi/gstvaapidownload.c:
30675         * gst/vaapi/gstvaapipluginutil.c:
30676         * gst/vaapi/gstvaapipostproc.c:
30677         * gst/vaapi/gstvaapiupload.c:
30678         * tests/test-display.c:
30679           configure: drop check for --enable-vaapi-glx.
30680           This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
30681           support, or fallback to TFP+FBO if this API is not found. Now, we check for
30682           the VA/GLX API by default if --enable-glx is set. If this API is not found,
30683           we now default to use TFP+FBO.
30684           Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
30685           will be removed in the future. If GLX rendering is requested, then the VA/GLX
30686           API shall be used as it covers most usages. e.g. AMD driver can't render to
30687           an X pixmap yet.
30688
30689 2012-07-23 15:20:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30690
30691         * tests/output.c:
30692           tests: allow GLX output, if available and selected.
30693
30694 2012-07-23 15:17:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30695
30696         * tests/Makefile.am:
30697         * tests/output.c:
30698         * tests/output.h:
30699         * tests/test-decode.c:
30700         * tests/test-subpicture.c:
30701         * tests/test-surfaces.c:
30702           tests: use common display and window creation routines.
30703           Add new --output option to select the renderer. Use --list-outputs to
30704           print a list of supported renderers.
30705
30706 2012-07-23 14:15:42 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30707
30708         * tests/Makefile.am:
30709           tests: move encoded bitstreams to libutils.la.
30710
30711 2012-07-23 14:11:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30712
30713         * tests/Makefile.am:
30714           tests: build convenience library for common utilities.
30715
30716 2012-07-20 16:37:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30717
30718         * tests/Makefile.am:
30719         * tests/test-display.c:
30720           tests: simplify build with various display options.
30721
30722 2012-07-23 13:28:42 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30723
30724         * configure.ac:
30725           configure: improve checks for X11.
30726
30727 2012-07-20 15:57:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30728
30729         * tests/Makefile.am:
30730           configure: fix previous commit for GLX deps.
30731
30732 2012-07-20 14:44:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30733
30734         * configure.ac:
30735         * gst-libs/gst/vaapi/Makefile.am:
30736           configure: improve checks for GLX.
30737
30738 2012-07-20 11:45:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30739
30740         * configure.ac:
30741         * gst-libs/gst/vaapi/gstvaapicompat.h:
30742         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30743         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30744         * gst-libs/gst/vaapi/gstvaapiutils.h:
30745           Drop support for obsolete VA-API versions < 0.30.4.
30746
30747 2012-07-20 11:16:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30748
30749         * configure.ac:
30750         * gst-libs/gst/Makefile.am:
30751         * gst-libs/gst/gstutils_version.h.in:
30752         * gst/vaapi/gstvaapisink.c:
30753           vaapisink: drop checks for new APIs used by default.
30754           GStreamer -base plugins >= 0.10.31 are now required, so the checks for
30755           new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
30756           are no longer necessary.
30757
30758 2012-07-20 14:05:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30759
30760         * configure.ac:
30761           configure: cosmetics and some minor changes.
30762           - Better grouping of feature checks
30763           - Sort list of config files to generate
30764
30765 2012-07-19 17:55:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30766
30767         * configure.ac:
30768         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30769         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30770         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30771         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30772         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
30773         * gst-libs/gst/vaapi/gstvaapiutils.h:
30774         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30775         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
30776           Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
30777
30778 2012-07-19 17:41:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30779
30780         * gst-libs/gst/vaapi/Makefile.am:
30781         * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
30782         * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
30783           Drop obsolete GstVaapiTSB.
30784           It has been replaced with a GstAdapter and gst_adapter_prev_pts().
30785
30786 2012-07-19 17:27:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30787
30788         * docs/reference/libs/libs-sections.txt:
30789           docs: add missing entries for the JPEG decoder.
30790
30791 2012-07-19 17:16:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30792
30793         * configure.ac:
30794         * gst-libs/gst/vaapi/Makefile.am:
30795         * gst/vaapi/gstvaapidecode.c:
30796         * tests/test-decode.c:
30797         * tests/test-subpicture.c:
30798           Drop all references to USE_CODEC_PARSERS.
30799
30800 2012-07-19 17:00:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30801
30802         * NEWS:
30803         * configure.ac:
30804         * docs/reference/libs/libs-sections.txt:
30805         * docs/reference/libs/libs.core.types:
30806         * gst-libs/gst/vaapi/Makefile.am:
30807         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
30808         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30809         * gst/vaapi/gstvaapidecode.c:
30810         * gst/vaapi/gstvaapidecode.h:
30811         * tests/test-decode.c:
30812         * tests/test-subpicture.c:
30813           Drop FFmpeg-based decoders.
30814           GStreamer codecparsers-based decoders are the only supported decoders now.
30815           Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
30816
30817 2012-07-01 05:55:05 +0900  Javier Jardón <jjardon@gnome.org>
30818
30819         * configure.ac:
30820         * debian.upstream/control.in:
30821           configure: bump glib required version to 2.28.
30822           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30823
30824 2012-06-29 08:45:47 +0900  Javier Jardón <jjardon@gnome.org>
30825
30826         * gst/vaapi/gstvaapidecode.h:
30827         * gst/vaapi/gstvaapidownload.h:
30828         * gst/vaapi/gstvaapipostproc.h:
30829         * gst/vaapi/gstvaapisink.h:
30830         * gst/vaapi/gstvaapiupload.h:
30831           plugins: declare _get_type() functions as const.
30832           Declaring a function as const enables better optimization of calls to
30833           the function.
30834           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30835
30836 2012-07-01 05:50:17 +0900  Javier Jardón <jjardon@gnome.org>
30837
30838         * gst/vaapi/gstvaapidecode.c:
30839         * gst/vaapi/gstvaapidownload.c:
30840         * gst/vaapi/gstvaapipostproc.c:
30841         * gst/vaapi/gstvaapisink.c:
30842         * gst/vaapi/gstvaapiupload.c:
30843           plugins: use g_clear_object() wherever applicable.
30844           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30845
30846 2012-06-29 15:19:51 +0900  Javier Jardón <jjardon@gnome.org>
30847
30848         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30849         * gst-libs/gst/vaapi/gstvaapicontext.h:
30850         * gst-libs/gst/vaapi/gstvaapidecoder.h:
30851         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30852         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30853         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
30854         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
30855         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
30856         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
30857         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30858         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
30859         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30860         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
30861         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30862         * gst-libs/gst/vaapi/gstvaapiimage.h:
30863         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
30864         * gst-libs/gst/vaapi/gstvaapiobject.h:
30865         * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
30866         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
30867         * gst-libs/gst/vaapi/gstvaapisurface.h:
30868         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
30869         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30870         * gst-libs/gst/vaapi/gstvaapitexture.h:
30871         * gst-libs/gst/vaapi/gstvaapivalue.h:
30872         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30873         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30874         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
30875         * gst-libs/gst/vaapi/gstvaapivideopool.h:
30876         * gst-libs/gst/vaapi/gstvaapivideosink.h:
30877         * gst-libs/gst/vaapi/gstvaapiwindow.h:
30878         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
30879         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
30880           libs: declare _get_type() functions as const.
30881           Declaring a function as const enables better optimization of calls
30882           to the function.
30883           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30884
30885 2012-07-01 05:34:15 +0900  Javier Jardón <jjardon@gnome.org>
30886
30887         * gst-libs/gst/vaapi/glibcompat.h:
30888         * gst-libs/gst/vaapi/gstvaapicontext.c:
30889         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30890         * gst-libs/gst/vaapi/gstvaapiobject.c:
30891         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30892         * gst-libs/gst/vaapi/gstvaapisurface.c:
30893         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30894         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30895         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30896         * gst-libs/gst/vaapi/gstvaapivideopool.c:
30897           libs: use g_clear_object() wherever applicable.
30898           This is a preferred thread-safe version. Also add an inline version of
30899           g_clear_object() if compiling with glib < 2.28.
30900           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30901
30902 2012-07-01 06:02:22 +0900  Javier Jardón <jjardon@gnome.org>
30903
30904         * .gitignore:
30905         * configure.ac:
30906         * docs/reference/libs/Makefile.am:
30907         * gst-libs/gst/vaapi/Makefile.am:
30908         * gst-libs/gst/vaapi/gstvaapimarshal.list:
30909         * gst-libs/gst/vaapi/gstvaapiobject.c:
30910           libs: use generic g_cclosure_marshal_VOID__VOID().
30911           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30912
30913 2012-07-19 14:29:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30914
30915         * configure.ac:
30916         * gst-libs/gst/vaapi/glibcompat.h:
30917           glibcompat: drop explicit check for g_list_free_full().
30918
30919 2012-07-19 13:58:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30920
30921         * configure.ac:
30922           Bump version for development.
30923
30924 2012-07-19 13:57:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30925
30926         * gst-libs/gst/codecparsers/Makefile.am:
30927           jpeg: fix make dist.
30928
30929 2012-06-28 00:39:10 +0900  Javier Jardón <jjardon@gnome.org>
30930
30931         * autogen.sh:
30932         * configure.ac:
30933         * docs/Makefile.am:
30934           configure: fix build without gtk-doc support.
30935           Also do not generate tamplate files as all the documentation is inline.
30936           Drop un-needed code in autogen.sh as well.
30937           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30938
30939 2012-06-28 00:27:31 +0900  Javier Jardón <jjardon@gnome.org>
30940
30941         * Makefile.am:
30942         * autogen.sh:
30943         * configure.ac:
30944           configure: put m4 macros and autogenerated files into m4/ directory.
30945           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30946
30947 2012-06-28 00:20:12 +0900  Javier Jardón <jjardon@gnome.org>
30948
30949         * configure.ac:
30950           configure: drop deprecated autoconf macros.
30951           Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
30952           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30953
30954 2012-06-28 00:04:19 +0900  Javier Jardón <jjardon@gnome.org>
30955
30956         * configure.ac:
30957           configure: don't use AC_SUBST for some variables.
30958           PKG_CHECK_MODULES already does this for us.
30959           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30960
30961 2012-07-19 11:43:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30962
30963         * gst/vaapi/gstvaapidecode.c:
30964         * gst/vaapi/gstvaapidownload.c:
30965         * gst/vaapi/gstvaapipostproc.c:
30966         * gst/vaapi/gstvaapiupload.c:
30967           plugins: add support for GstImplementsInterface.
30968
30969 2012-07-01 02:58:36 +0900  Javier Jardón <jjardon@gnome.org>
30970
30971         * configure.ac:
30972         * gst/vaapi/gstvaapidecode.c:
30973         * gst/vaapi/gstvaapidownload.c:
30974         * gst/vaapi/gstvaapipostproc.c:
30975         * gst/vaapi/gstvaapisink.c:
30976         * gst/vaapi/gstvaapiupload.c:
30977           plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
30978           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30979
30980 2012-07-01 03:57:13 +0900  Javier Jardón <jjardon@gnome.org>
30981
30982         * configure.ac:
30983         * gst/vaapi/gstvaapisink.c:
30984           plugins: do not use deprecated GStreamer -base symbols.
30985           Bump GStreamer plugins -base required version to 0.10.31, needed for
30986           gst_x_overlay_got_window_handle().
30987           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30988
30989 2012-07-01 03:57:13 +0900  Javier Jardón <jjardon@gnome.org>
30990
30991         * configure.ac:
30992         * gst/vaapi/gstvaapidecode.c:
30993         * gst/vaapi/gstvaapidownload.c:
30994         * gst/vaapi/gstvaapipostproc.c:
30995         * gst/vaapi/gstvaapisink.c:
30996         * gst/vaapi/gstvaapiupload.c:
30997           plugins: do not use deprecated core GStreamer symbols.
30998           Bump GStreamer required version to 0.10.14, needed for
30999           gst_element_class_set_details_simple().
31000           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31001
31002 2012-07-19 10:54:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31003
31004         * tests/test-decode.c:
31005           tests: fix build without JPEG decoder support.
31006
31007 2012-07-17 13:44:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31008
31009         * tests/Makefile.am:
31010         * tests/test-decode.c:
31011         * tests/test-jpeg.c:
31012         * tests/test-jpeg.h:
31013           tests: add test for JPEG decoding.
31014
31015 2012-07-17 13:43:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31016
31017         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31018           jpeg: update to match latest parser API.
31019
31020 2012-07-16 17:35:19 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31021
31022         * gst-libs/gst/codecparsers/gstjpegparser.c:
31023         * gst-libs/gst/codecparsers/gstjpegparser.h:
31024           codecparsers: jpeg: tweak parser API.
31025           ... to allow for more consistent parsing API among various codec parsers.
31026           In particular, drop use of GList.
31027
31028 2012-07-16 16:24:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31029
31030         * configure.ac:
31031           jpeg: fix configure check for VA/JPEG decoding API.
31032
31033 2012-06-26 15:18:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31034
31035         * gst-libs/gst/vaapi/gstvaapiprofile.c:
31036           jpeg: fix build with VA-API < 0.32.0.
31037
31038 2012-06-26 15:04:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31039
31040         * NEWS:
31041           NEWS: updates.
31042
31043 2012-06-26 15:02:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31044
31045         * configure.ac:
31046           Bump version for development.
31047
31048 2012-06-26 14:46:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31049
31050         * NEWS:
31051         * configure.ac:
31052           0.3.7.
31053
31054 2012-06-26 13:34:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31055
31056         * NEWS:
31057           NEWS: updates.
31058
31059 2012-06-25 16:07:55 +0800  Yan Yin <yan.yin@intel.com>
31060
31061         * gst/vaapi/gstvaapipluginutil.c:
31062           vaapiplugin: fix build when compiling without GLX.
31063           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31064
31065 2012-06-26 11:03:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31066
31067         * configure.ac:
31068           configure: disable FFmpeg-based decoders.
31069           FFmpeg decoders are still available through the --enable-ffmpeg option
31070           but are no longer maintained.
31071
31072 2012-06-25 17:25:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31073
31074         * gst-libs/gst/vaapi/Makefile.am:
31075           Fix build with recent GStreamer stack.
31076
31077 2012-06-25 17:10:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31078
31079         * configure.ac:
31080         * gst-libs/gst/vaapi/gstvaapicompat.h:
31081         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31082           jpeg: update to current VA/JPEG decoding API.
31083
31084 2012-06-21 16:06:47 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31085
31086         * gst-libs/gst/codecparsers/gstjpegparser.c:
31087         * gst-libs/gst/codecparsers/gstjpegparser.h:
31088         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31089           codecparsers: jpeg: track valid quantization and Huffman tables.
31090           Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
31091           to determine whether a table actually changed since the last user
31092           synchronization point. That way, this makes it possible for some
31093           hardware accelerated decoding solution to upload only those tables
31094           that changed.
31095
31096 2012-06-05 10:10:22 +0800  Wind Yuan <feng.yuan@intel.com>
31097
31098         * gst-libs/gst/codecparsers/gstjpegparser.c:
31099           codecparsers: jpeg: use U_READ_UINT*() wherever possible.
31100           Use GstByteReader *_unchecked() variants as much as possible.
31101           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31102
31103 2012-06-04 16:20:13 +0800  Wind Yuan <feng.yuan@intel.com>
31104
31105         * gst-libs/gst/codecparsers/gstjpegparser.c:
31106         * gst-libs/gst/codecparsers/gstjpegparser.h:
31107         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31108           jpeg: add new GstJpegHuffmanTables structure.
31109           Add new GstJpegHuffmanTables helper structure to hold all possible
31110           AC/DC Huffman tables available to all components.
31111           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31112
31113 2012-06-04 15:52:19 +0800  Wind Yuan <feng.yuan@intel.com>
31114
31115         * gst-libs/gst/codecparsers/gstjpegparser.c:
31116         * gst-libs/gst/codecparsers/gstjpegparser.h:
31117         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31118           jpeg: make gst_jpeg_parse() support multiple scans.
31119           gst_jpeg_parse() now gathers all scans available in the supplied
31120           buffer. A scan comprises of the scan header and any entropy-coded
31121           segments or restart marker following it. The size and offset to
31122           the associated data (ECS + RST segments) are append to a new
31123           GstJpegScanOffsetSize structure.
31124           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31125
31126 2012-04-19 23:50:14 +0800  Wind Yuan <feng.yuan@intel.com>
31127
31128         * gst-libs/gst/codecparsers/gstjpegparser.c:
31129         * gst-libs/gst/codecparsers/gstjpegparser.h:
31130         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31131           jpeg: update to match latest parser API.
31132           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31133
31134 2012-04-13 01:58:39 -0400  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31135
31136         * gst-libs/gst/codecparsers/gstjpegparser.h:
31137           jpeg: simplify and optimize parser API.
31138
31139 2012-04-18 22:30:45 -0400  Wind Yuan <feng.yuan@intel.com>
31140
31141         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31142           mpeg: fix picture used to determine backward_reference_vop_coding_type.
31143           Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
31144           but Gwenole did not apply all the bits.
31145           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31146
31147 2012-04-27 04:13:00 -0400  Wind Yuan <feng.yuan@intel.com>
31148
31149         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31150           mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
31151           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31152
31153 2012-04-27 04:10:17 -0400  Wind Yuan <feng.yuan@intel.com>
31154
31155         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31156           mpeg4: handle skipped frames (vop_hdr->coded = 0).
31157           Gracefully skip non VOP coded frames.
31158           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31159
31160 2012-04-26 04:00:41 -0400  Wind Yuan <feng.yuan@intel.com>
31161
31162         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31163           mpeg4: fix timestamp issues on too fast playback.
31164           Improve generation of presentation timestamps to be less sensitive
31165           to input stream errors. In practise, GOP is also a synchronization
31166           point for PTS calculation.
31167           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31168
31169 2012-04-16 10:02:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31170
31171         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31172           Fix build without JPEG decoder.
31173
31174 2012-04-12 11:48:24 +0200  Wind Yuan <feng.yuan@intel.com>
31175
31176         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31177           mpeg4: fix VOP coding type of backward reference pictures.
31178           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31179
31180 2012-04-11 23:02:45 -0400  Wind Yuan <feng.yuan@intel.com>
31181
31182         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31183           mpeg4: fix handling of temporal reference distances.
31184           TRD and TRB fields are not large enough to hold the difference of PTS
31185           expressed with nanosecond resolution. So, compute them from the original
31186           VOP info.
31187           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31188
31189 2012-04-12 11:00:22 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31190
31191         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31192           dpb: mpeg2: cosmetics.
31193           Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
31194
31195 2012-02-10 00:21:04 +0800  Wind Yuan <feng.yuan@intel.com>
31196
31197         * configure.ac:
31198         * gst-libs/gst/vaapi/Makefile.am:
31199         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31200         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31201         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31202         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
31203         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31204         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31205         * gst-libs/gst/vaapi/gstvaapiprofile.c:
31206         * gst-libs/gst/vaapi/gstvaapiprofile.h:
31207         * gst/vaapi/gstvaapidecode.c:
31208           Add initial JPEG decoder.
31209           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31210
31211 2012-02-10 00:21:04 +0800  Wind Yuan <feng.yuan@intel.com>
31212
31213         * configure.ac:
31214         * gst-libs/gst/Makefile.am:
31215         * gst-libs/gst/codecparsers/Makefile.am:
31216         * gst-libs/gst/codecparsers/gstjpegparser.c:
31217         * gst-libs/gst/codecparsers/gstjpegparser.h:
31218         * gst-libs/gst/vaapi/Makefile.am:
31219           codecparsers: add JPEG parser.
31220           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31221
31222 2012-04-10 13:29:10 +0200  Wind Yuan <feng.yuan@intel.com>
31223
31224         * gst/vaapi/gstvaapidecode.c:
31225           vaapidecode: fix VA display type.
31226           Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
31227           wrapper.
31228           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31229
31230 2012-04-10 14:28:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31231
31232         * gst/vaapi/gstvaapidecode.c:
31233           vaapidecode: fix includes when compiling for a single API.
31234
31235 2012-04-02 18:42:12 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31236
31237         * NEWS:
31238         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31239           mpeg2: fix calculation of macroblock_offset.
31240           Fix decoding of streams with extra slice() information before the first
31241           macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
31242
31243 2012-04-02 18:09:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31244
31245         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31246           mpeg2: fix interpolation of GOP TSN from new PTS.
31247           New GOP TSN base could be mis-calculated. In particular, this fixes
31248           decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
31249
31250 2012-04-02 16:07:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31251
31252         * NEWS:
31253         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31254         * gst-libs/gst/vaapi/gstvaapiprofile.h:
31255           mpeg2: fix decoding of high profile streams.
31256           Allow MPEG-2 High profile streams only if the HW supports that profile
31257           or no High profile specific bits are used, and thus Main profile could
31258           be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
31259           set to 11 and no sequence_scalable_extension() was parsed.
31260
31261 2012-04-02 14:51:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31262
31263         * NEWS:
31264         * gst/vaapi/gstvaapidecode.c:
31265           vaapidecode: report unsupported codec profiles.
31266           Try to gracefully abort when the HW does not support the requested
31267           profile. There is no fallback unless profiles are correctly parsed
31268           and matched through caps beforehand.
31269
31270 2012-02-07 15:23:22 +0100  Holger Kaelberer <holger.k@elberer.de>
31271
31272         * NEWS:
31273         * gst/vaapi/gstvaapisink.c:
31274           vaapisink: don't resize a 'foreign' X-window.
31275           Don't forcibly resize foreign X windows. The user is responsible for
31276           their size and vaapisink shall not change this.
31277           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31278
31279 2012-02-07 15:21:05 +0100  Holger Kaelberer <holger.k@elberer.de>
31280
31281         * NEWS:
31282         * gst/vaapi/gstvaapisink.c:
31283         * gst/vaapi/gstvaapisink.h:
31284           vaapisink: recalculate render rect only if caps are negotiated.
31285           Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
31286           caps got negotiated. Besides, when a foreign window is provided by the
31287           user, so should the render rect.
31288           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31289
31290 2012-04-02 13:07:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31291
31292         * configure.ac:
31293           Bump version for development.
31294
31295 2012-04-02 10:07:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31296
31297         * configure.ac:
31298           0.3.6.
31299
31300 2012-04-02 12:52:54 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31301
31302         * docs/reference/libs/libs-docs.xml.in:
31303         * docs/reference/libs/libs-sections.txt:
31304         * docs/reference/plugins/plugins-docs.xml.in:
31305         * docs/reference/plugins/plugins-sections.txt:
31306         * docs/reference/plugins/plugins.types:
31307         * gst-libs/gst/vaapi/gstvaapiimage.c:
31308         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31309         * gst/vaapi/gstvaapipostproc.c:
31310           Fix a few documentation issues.
31311
31312 2012-04-02 10:05:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31313
31314         * NEWS:
31315         * README:
31316           Update introduction and changelog.
31317
31318 2012-04-02 11:29:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31319
31320         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31321         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31322         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31323           mpeg2: allocate dummy picture for first field based I-frame.
31324           In P-pictures, prediction shall be made from the two most recently
31325           decoded reference fields. However, when the first I-frame is a field,
31326           the next field of the current picture could be a P-picture but only a
31327           single field was decoded so far. In this case, create a dummy picture
31328           with POC = -1 that will be used as reference.
31329           Some VA drivers would error out if P-pictures don't have a forward
31330           reference picture. This is true in general but not in this very specific
31331           initial case.
31332
31333 2012-04-02 10:43:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31334
31335         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31336           mpeg2: fix simple to main profile fallback.
31337           Allow fallback from simple to main profile when the HW decoder does
31338           not support the former profile and that no sequence_header_extension()
31339           is available to point out this.
31340
31341 2012-03-30 03:04:40 -0400  Wind Yuan <feng.yuan@intel.com>
31342
31343         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31344           mpeg4: improve error checking while decoding packets.
31345           decode_picture() could return an error when an MPEG-4 profile is not
31346           supported for example. In this case, the underlying VA context is not
31347           allocated and no other proper action can be taken. Likewise on exit
31348           from decode_slice().
31349           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31350
31351 2012-03-30 17:03:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31352
31353         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31354         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31355         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31356         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31357           decoder: use POC to maintain the DPB.
31358           Introduce a POC field in GstVaapiPicture so that to store simpler sequential
31359           numbers. A signed 32-bit integer should be enough for 1 year of continuous
31360           video streaming at 60 Hz.
31361           Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
31362           This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
31363
31364 2012-03-30 16:23:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31365
31366         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31367           mpeg2: rework generation of presentation timestamps.
31368           Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
31369           i.e. demuxer could not determine the PTS or the generated PTS is lower than
31370           max PTS from past pictures, then try to fix it up based on the duration of
31371           a frame.
31372           For picture PTS, simply use the GOP PTS formerly computed then use TSN to
31373           reconstruct a current time. Also now handle wrapped TSN correctly.
31374
31375 2012-03-30 17:07:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31376
31377         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31378           mpeg2: ignore empty user-data packets.
31379           Fix tcela-8.bits conformance test.
31380
31381 2012-03-29 11:13:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31382
31383         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31384           mpeg2: review and report errors accordingly.
31385           Use GST_ERROR() to report real errors instead of hiding them into
31386           GST_DEBUG().
31387
31388 2012-03-28 19:15:47 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31389
31390         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31391           mpeg2: fix invalid interlaced frame in progressive sequence.
31392           Some streams, badly constructed, could have signaled an interlaced
31393           frame while the sequence was meant to be progressive. Warn and force
31394           frame to be progressive in this case.
31395
31396 2012-03-28 16:08:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31397
31398         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31399         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31400           mpeg2: add support for interlaced streams.
31401           Pictures are submitted to the HW for rendering only when both fields
31402           are decoded or current picture is a full frame.
31403
31404 2012-03-28 14:36:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31405
31406         * gst-libs/gst/vaapi/Makefile.am:
31407         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31408         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31409         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31410           mpeg2: add new decoded picture buffer infrastructure.
31411           Decoded pictures are now maintained into DPB, similarly to H.264.
31412           The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
31413
31414 2012-03-28 17:50:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31415
31416         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31417         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31418         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31419           decoder: add first-field flag to picture.
31420           Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
31421           member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
31422           as the first field. Any subsequent allocated field will become the second field.
31423
31424 2012-03-28 16:05:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31425
31426         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31427         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31428         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31429         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31430           decoder: allow pictures to be cloned for field decoding.
31431           Add gst_vaapi_picture_new_field() function that clones a picture, while
31432           preserving the parent picture surface. i.e. the surface proxy reference
31433           count is increased and other fields copied as is. Besides, the picture
31434           is reset into a "non-output" mode.
31435
31436 2012-03-28 16:07:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31437
31438         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31439         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31440         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31441           decoder: rework picture field flags.
31442           Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
31443           could be propagated to the surface proxy when it is pushed for rendering.
31444           Besides, top and bottom fields are now expressed with picture structure flags
31445           from GstVaapiSurfaceRenderFlags.
31446
31447 2012-03-28 14:28:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31448
31449         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31450         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31451           decoder: add OUTPUT flag to pictures.
31452           Allow pictures to be marked as output gst_vaapi_picture_output().
31453
31454 2012-03-28 14:24:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31455
31456         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31457         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31458         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31459           decoder: fix semantics of SKIPPED pictures.
31460           If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
31461           will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
31462           has nothing to do with rendering. This only means that the currently decoded
31463           picture is just a copy of its reference picture.
31464
31465 2012-03-28 15:16:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31466
31467         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31468         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31469         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31470         * gst/vaapi/gstvaapipostproc.c:
31471           vaapipostproc: get "interlaced" attribute from surface proxy.
31472           Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
31473           vaapipostproc so that to handles cases where bitstream is interlaced
31474           but almost only frame pictures are generated. In this case, we should
31475           not be alternating between top/bottom fields.
31476
31477 2012-03-26 14:37:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31478
31479         * README:
31480         * debian.upstream/control.in:
31481         * gst/vaapi/Makefile.am:
31482         * gst/vaapi/gstvaapi.c:
31483         * gst/vaapi/gstvaapipostproc.c:
31484         * gst/vaapi/gstvaapipostproc.h:
31485           vaapipostproc: add new element for video postprocessing.
31486           Add vaapipostproc element for video postprocessing. So far, only basic
31487           bob deinterlacing is implemented. Interlaced mode is automatically
31488           detected based on sink caps ("interlaced" field).
31489
31490 2012-03-26 12:01:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31491
31492         * docs/reference/libs/libs-sections.txt:
31493         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31494         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31495         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31496         * gst/vaapi/gstvaapisink.c:
31497           videobuffer: add surface render flags.
31498           Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
31499           to be set to the video buffer. In particular, this is mostly useful for
31500           basic deinterlacing.
31501
31502 2012-03-23 17:13:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31503
31504         * gst-libs/gst/vaapi/gstvaapicompat.h:
31505           compat: add compatibility glue with VA-API 0.34+ (WIP).
31506
31507 2012-03-23 17:11:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31508
31509         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31510           h264: skip all Filler Data NALs.
31511
31512 2012-03-22 03:28:22 -0400  Wind Yuan <feng.yuan@intel.com>
31513
31514         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31515           mpeg4: check for decoder status prior to decoding packet.
31516           Make sure there is a VA surface free prior to decoding the current frame.
31517           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31518
31519 2012-03-15 04:58:04 -0400  Wind Yuan <feng.yuan@intel.com>
31520
31521         * gst/vaapi/gstvaapidecode.c:
31522         * gst/vaapi/gstvaapidecode.h:
31523           decode: delay NEWSEGMENT event if vaapidecode element was not linked.
31524           Rationale: playbin2 links all elements at run-time. Once vaapidecode
31525           is created and a NEWSEGMENT event arrives, downstream element may not
31526           be ready yet. So, delay this event until next element is chained in,
31527           otherwise basesink could output "Received buffer without a new-segment.
31528           Assuming timestamps start from 0".
31529           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31530
31531 2012-03-13 20:33:41 -0400  Wind Yuan <feng.yuan@intel.com>
31532
31533         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31534           mpeg2: fix GOP timestamps when incorrect data is received.
31535           Some streams have incorrect GOP timestamps, or nothing set at all.
31536           i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
31537           from demuxer timestamps, which are monotonic.
31538           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31539
31540 2012-03-13 02:03:31 -0400  Wind Yuan <feng.yuan@intel.com>
31541
31542         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31543           mpeg2: don't decode anything before the first sequence_header().
31544           Skip all pictures prior to the first sequence_header(). Besides,
31545           skip all picture_data() if there was no prior picture_header().
31546           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31547
31548 2012-02-07 15:57:14 +0100  Holger Kaelberer <holger.k@elberer.de>
31549
31550         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31551           ffmpeg: add support for interlaced streams.
31552           Evaluate interlaced stream properties.
31553           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31554
31555 2012-02-07 15:54:15 +0100  Holger Kaelberer <holger.k@elberer.de>
31556
31557         * gst/vaapi/gstvaapidecode.c:
31558           vaapidecode: propagate interlaced and TFF properties downstream.
31559           Propagate "interlaced" caps downstream and set "tff" buffer flag
31560           appropriately to output buffers for interlaced pictures.
31561           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31562
31563 2012-02-07 15:54:15 +0100  Holger Kaelberer <holger.k@elberer.de>
31564
31565         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31566         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31567           decoder: maintain caps for interlaced streams.
31568           Extend GstVaapiDecoder base object to maintain caps with "interlaced"
31569           property.
31570           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31571
31572 2012-02-07 15:54:15 +0100  Holger Kaelberer <holger.k@elberer.de>
31573
31574         * docs/reference/libs/libs-sections.txt:
31575         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31576         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31577           surfaceproxy: add TFF property.
31578           Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
31579           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31580
31581 2012-03-16 14:21:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31582
31583         * AUTHORS:
31584           AUTHORS: update to match current authors.
31585
31586 2012-02-28 11:58:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31587
31588         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31589           mpeg2: fix is_first_field calculation.
31590           Reset is_first_field for frame pictures. Factor out locations where
31591           the flag is updated.
31592
31593 2012-02-24 12:56:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31594
31595         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31596           mpeg2: catch incorrect picture_structure from bitstreams.
31597           Assume "frame" picture structure if the syntax element was zero or if
31598           progressive_frame is set.
31599
31600 2012-02-24 12:53:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31601
31602         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31603           mpeg2: fix slice_vertical_position calculation (again).
31604           VA-API expects slice_vertical_position as the initial position from the
31605           bitstream. i.e. the direct slice() information. VA drivers will be fixed
31606           accordingly.
31607
31608 2012-03-02 15:03:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31609
31610         * gst/vaapi/gstvaapidecode.c:
31611           Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
31612           This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
31613           For gst_element_class_get_pad_template(), no unreferencing is necessary
31614           according to the GStreamer documentation.
31615
31616 2012-03-02 13:41:16 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31617
31618         * configure.ac:
31619         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31620           h264: fix slice_data_bit_offset calculation.
31621           Unlike what VA-API documentation defines, the slice_data_bit_offset
31622           represents the offset to the first macroblock in the slice data, minus
31623           any emulation prevention bytes in the slice_header().
31624           This fix copes with binary-only VA drivers that won't be fixed any
31625           time soon. Besides, this aligns with the current FFmpeg behaviour
31626           that was based on those proprietary drivers implementing the API
31627           incorrectly.
31628
31629 2012-02-21 02:11:20 -0500  Wind Yuan <feng.yuan@intel.com>
31630
31631         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31632           h264: skip all Access Unit (AU) NALs.
31633           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31634
31635 2012-02-29 03:08:46 -0500  Wind Yuan <feng.yuan@intel.com>
31636
31637         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31638           h264: fix modification process of reference picture lists.
31639           Construction of RefPicList0/1 could be off by one element.
31640           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31641
31642 2012-02-12 11:21:52 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31643
31644         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31645           mpeg2: fix size calculation from sequence_extension().
31646           Original values from sequence_header() are 12-bit and the remaining
31647           2 most significant bits are coming from sequence_extension().
31648           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31649
31650 2012-02-23 16:39:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31651
31652         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31653           mpeg2: fix slice_vertical_position calculation.
31654           Make sure to adjust slice_vertical_position if picture structure
31655           is a top or bottom field.
31656
31657 2012-02-23 16:23:27 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31658
31659         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31660           decoder: add picture structure flags.
31661
31662 2012-02-23 14:42:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31663
31664         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31665           mpeg2: fix decoding at end-of-sequence.
31666
31667 2012-02-23 14:17:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31668
31669         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31670           mpeg2: fix slice_horizontal_position calculation.
31671
31672 2012-02-23 16:14:02 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31673
31674         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31675           mpeg2: drop useless mb_y and mb_height members.
31676
31677 2012-02-23 11:19:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31678
31679         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31680           mpeg2: fix decoding of multiple slices with same slice_vertical_position.
31681           6.3.15 says that "some slices may have the same slice_vertical_position,
31682           since slices may start and finish anywhere". So, we can't submit the current
31683           picture to the HW right away since subsequent slices would be missing.
31684
31685 2012-02-15 14:08:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31686
31687         * gst-libs/gst/vaapi/gstvaapiimage.c:
31688           image: fix source stride in picture copy.
31689
31690 2012-02-13 10:10:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31691
31692         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31693           decoder: fix double buffer free with some VA drivers.
31694           vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
31695           push the VA buffer object into a list of free buffers to be re-used. However,
31696           reference pictures (and data) that was kept would explicitly release the VA
31697           buffer object later on, thus possibly destroying a valid (re-used) object.
31698           Besides, some other VA drivers don't support correctly the vaRenderPicture()
31699           semantics for VA buffers disposal and would leak memory if there is no explicit
31700           vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
31701           right after vaRenderPicture(). All VA drivers need to be aligned.
31702
31703 2012-02-08 18:08:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31704
31705         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31706           h264: complete any current picture decoder before SPS / PPS change.
31707           This ensures the VA context is clear when the encoded resolution
31708           changes. i.e. make sure older picture is decoded with the older
31709           VA context before it changes.
31710
31711 2012-02-08 18:07:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31712
31713         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31714           h264: create VA context earlier when SPS is parsed.
31715
31716 2012-02-08 17:57:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31717
31718         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31719           h264: don't allocate too big data structures on stack.
31720
31721 2012-02-07 11:07:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31722
31723         * gst-libs/gst/vaapi/glibcompat.h:
31724         * gst-libs/gst/vaapi/gstvaapidisplay.c:
31725         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31726           glib: map deprecated API to glib >= 2.32 equivalents.
31727           GStaticMutex and GStaticRecMutex are now replaced with GMutex and
31728           GRecMutex, which no longer require any prior call to g_thread_init().
31729
31730 2012-02-07 10:01:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31731
31732         * gst-libs/gst/vaapi/gstvaapiutils.h:
31733         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31734         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
31735           glib: fix includes.
31736
31737 2012-02-07 10:05:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31738
31739         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31740         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31741         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31742         * gst-libs/gst/vaapi/gstvaapidisplay.c:
31743           cosmetics: fix warnings (drop unused variables).
31744
31745 2012-02-06 16:11:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31746
31747         * gst/vaapi/gstvaapidecode.c:
31748           vaapidecode: fix another pad template ref leak.
31749
31750 2012-02-06 15:54:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31751
31752         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31753         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31754         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31755           mpeg2: fix crash when there is no free surface to decode into.
31756
31757 2012-01-31 16:38:58 +0800  Zhao Halley <halley.zhao@intel.com>
31758
31759         * gst-libs/gst/vaapi/gstvaapidisplay.c:
31760           display: skip profiles which have no entrypoints.
31761           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31762
31763 2012-02-05 18:28:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31764
31765         * gst/vaapi/gstvaapiupload.c:
31766           vaapiupload: use g_object_unref() for GstVaapiImage.
31767
31768 2012-02-05 18:24:08 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31769
31770         * gst/vaapi/gstvaapidecode.c:
31771         * gst/vaapi/gstvaapidownload.c:
31772         * gst/vaapi/gstvaapisink.c:
31773         * gst/vaapi/gstvaapiupload.c:
31774           plugins: fix pad template ref leaks.
31775
31776 2012-02-02 09:23:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31777
31778         * configure.ac:
31779           Bump version for development.
31780
31781 2012-02-01 23:34:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31782
31783         * NEWS:
31784         * configure.ac:
31785           0.3.4.
31786
31787 2012-02-01 23:32:47 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31788
31789         * README:
31790           README: updates.
31791           Mention codecparsers-based decoders, FFmpeg is now optional. Update
31792           list of support HW.
31793
31794 2012-02-01 23:28:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31795
31796         * NEWS:
31797           NEWS: updates.
31798
31799 2012-01-31 11:34:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31800
31801         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31802           decoder: allocate proxy surface earlier.
31803           This simplifies gst_vaapi_picture_output() to only update the presentation
31804           timestamp and submit the proxy to the decoder for output.
31805
31806 2012-01-31 11:26:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31807
31808         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31809           decoder: fix memory leak of VA objects on exit.
31810           On sequence end, if the last decoded picture is not output for rendering,
31811           then the proxy surface is not created. In this case, the original surface
31812           must be released explicitly to the context.
31813
31814 2012-01-31 10:47:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31815
31816         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31817           mpeg2: use GstAdapter to track input sequence.
31818           This fixes possible memory leaks and improves performance by removing
31819           some extra copies.
31820
31821 2012-01-30 18:25:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31822
31823         * configure.ac:
31824         * gst-libs/gst/vaapi/Makefile.am:
31825         * gst-libs/gst/vaapi/glibcompat.h:
31826         * gst-libs/gst/vaapi/sysdeps.h:
31827           Add glib compatibility glue for older versions.
31828
31829 2012-01-30 18:12:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31830
31831         * gst-libs/gst/vaapi/Makefile.am:
31832         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31833         * gst-libs/gst/vaapi/gstvaapicontext.c:
31834         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31835         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31836         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31837         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31838         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31839         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31840         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31841         * gst-libs/gst/vaapi/gstvaapidisplay.c:
31842         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31843         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31844         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31845         * gst-libs/gst/vaapi/gstvaapiimage.c:
31846         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
31847         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
31848         * gst-libs/gst/vaapi/gstvaapiobject.c:
31849         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
31850         * gst-libs/gst/vaapi/gstvaapiprofile.c:
31851         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31852         * gst-libs/gst/vaapi/gstvaapisurface.c:
31853         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
31854         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31855         * gst-libs/gst/vaapi/gstvaapitexture.c:
31856         * gst-libs/gst/vaapi/gstvaapiutils.c:
31857         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31858         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31859         * gst-libs/gst/vaapi/gstvaapivalue.c:
31860         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31861         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
31862         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31863         * gst-libs/gst/vaapi/gstvaapivideopool.c:
31864         * gst-libs/gst/vaapi/gstvaapivideosink.c:
31865         * gst-libs/gst/vaapi/gstvaapiwindow.c:
31866         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
31867         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
31868         * gst-libs/gst/vaapi/sysdeps.h:
31869           Add header for system-dependent definitions.
31870
31871 2012-01-30 10:15:32 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31872
31873         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31874         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31875         * gst-libs/gst/vaapi/gstvaapiutils.c:
31876         * gst-libs/gst/vaapi/gstvaapiutils.h:
31877           decoder: optimize slice data buffers initialization.
31878           VA drivers may have a faster means to transfer user buffers to GPU
31879           buffers than using memcpy(). In particular, on Intel Gen graphics, we
31880           can use pwrite(). This provides for faster upload of bitstream and can
31881           help higher bitrates.
31882           vaapi_create_buffer() helper function was also updated to allow for
31883           un-mapped buffers and pre-initialized data for buffers.
31884
31885 2012-01-27 17:28:50 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31886
31887         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31888           h264: simplify RefPicList reconstruction.
31889
31890 2012-01-27 16:08:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31891
31892         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31893           h264: flush DPB when the end of the sequence is reached.
31894
31895 2012-01-24 15:38:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31896
31897         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31898           h264: handle Decoded Picture Buffer (DPB).
31899
31900 2012-01-24 09:20:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31901
31902         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31903           h264: fix pred_weight_table() reconstruction.
31904           Only the explicit pred_weight_table(), possibly with the inferred default
31905           values, shall be required. e.g. don't fill in the table if weighted_pred_flag
31906           is not set for P/SP slices.
31907
31908 2012-01-23 15:03:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31909
31910         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31911           h264: execute reference picture marking process (MMCO).
31912
31913 2012-01-23 15:20:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31914
31915         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31916           h264: fix presentation timestamps.
31917
31918 2012-01-18 13:38:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31919
31920         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31921           h264: execute reference picture marking process (sliding window).
31922
31923 2012-01-17 10:42:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31924
31925         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31926           h264: handle avcC format for decoding buffers.
31927
31928 2011-11-25 14:37:00 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31929
31930         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31931           h264: handle codec-data.
31932           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31933
31934 2011-08-12 17:43:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31935
31936         * gst-libs/gst/vaapi/Makefile.am:
31937         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31938         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
31939         * gst/vaapi/gstvaapidecode.c:
31940         * tests/test-decode.c:
31941           Add initial H.264 decoder.
31942
31943 2012-01-26 15:28:42 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31944
31945         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31946         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31947           decoder: retain proxy surface until the GstVaapiPicture is destroyed.
31948           Keep a valid reference to the proxy in GstVaapiPicture so that frames
31949           marked as "used for reference" could be kept during the lifetime of the
31950           picture. i.e. don't release them too soon as they could be re-used right
31951           away.
31952
31953 2012-01-26 15:19:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31954
31955         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31956         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31957         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31958           decoder: properly reference count pictures.
31959           This fixes cases where a GstVaapiPicture would be destroyed whereas
31960           there is still a valid instance of it in either prev, current or
31961           next picture.
31962
31963 2012-01-26 14:54:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31964
31965         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31966         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31967         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31968         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31969           decoder: simplify output of decoded frames.
31970           Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
31971           Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
31972           is already set correctly and reference count increased, if necessary.
31973
31974 2012-01-26 09:48:11 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31975
31976         * gst-libs/gst/vaapi/Makefile.am:
31977         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31978         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31979         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31980         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31981         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31982         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31983         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31984         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31985         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31986           decoder: rework the internal VA objects API.
31987           The new API simplifies a lot reference counting and makes it more
31988           flexible for future additions/changes. The GstVaapiCodecInfo is
31989           also gone. Rather, new helper macros are provided to allocate
31990           picture, slice and quantization matrix parameter buffers.
31991
31992 2012-01-24 10:21:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31993
31994         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31995         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31996           decoder: allow slices to be attached to pictures later.
31997
31998 2011-11-21 18:39:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31999
32000         * gst-libs/gst/vaapi/gstvaapidecoder.c:
32001         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32002           decoder: add ref_count to GstVaapiPicture.
32003
32004 2012-01-23 11:48:42 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32005
32006         * gst/vaapi/gstvaapisink.c:
32007           vaapisink: cap window size to the maximum display size.
32008
32009 2012-01-18 10:23:41 +0100  Zhao Halley <halley.zhao@intel.com>
32010
32011         * gst-libs/gst/vaapi/gstvaapiprofile.c:
32012         * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32013           profile: match video/x-h263 as H.263 Baseline profile.
32014           HACK: qtdemux does not report profiles for H.263. So, assume plain
32015           "video/x-h263" is H.263 Baseline profile.
32016           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32017
32018 2012-01-18 10:22:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32019
32020         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32021         * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32022           display: report H.263 Baseline profile.
32023           HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
32024           profile (VAProfileMPEG4Simple) is supported.
32025
32026 2012-01-24 10:06:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32027
32028         * gst-libs/gst/vaapi/Makefile.am:
32029         * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
32030           Add template for workarounds.
32031
32032 2012-01-18 10:47:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32033
32034         * tests/test-decode.c:
32035           tests: error out if FFmpeg|codecparsers are not supported.
32036
32037 2012-01-18 10:42:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32038
32039         * docs/reference/libs/libs-sections.txt:
32040         * gst-libs/gst/vaapi/gstvaapisurface.h:
32041         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32042           surface: don't expose gst_vaapi_surface_get_parent_context().
32043           gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
32044           It's just an internal helper function. However, it's still possible to get
32045           the parent context through the "parent-context" property.
32046
32047 2012-01-16 14:19:00 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32048
32049         * tests/Makefile.am:
32050         * tests/test-subpicture.c:
32051           tests: fix build without FFmpeg.
32052
32053 2012-01-16 14:09:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32054
32055         * configure.ac:
32056           Bump version for development.
32057
32058 2012-01-16 11:05:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32059
32060         * NEWS:
32061         * configure.ac:
32062           0.3.3.
32063
32064 2012-01-16 11:03:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32065
32066         * README:
32067         * debian.upstream/copyright:
32068         * gst-libs/gst/vaapi/gstvaapicontext.c:
32069         * gst-libs/gst/vaapi/gstvaapidecoder.c:
32070         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32071         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32072         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32073         * gst-libs/gst/vaapi/gstvaapidisplay.h:
32074         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32075         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32076         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32077         * gst-libs/gst/vaapi/gstvaapiimage.c:
32078         * gst-libs/gst/vaapi/gstvaapiimage.h:
32079         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32080         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32081         * gst-libs/gst/vaapi/gstvaapiutils.c:
32082         * gst-libs/gst/vaapi/gstvaapiutils.h:
32083         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32084         * gst-libs/gst/vaapi/gstvaapiwindow.c:
32085         * gst/vaapi/gstvaapi.c:
32086         * gst/vaapi/gstvaapidecode.c:
32087         * gst/vaapi/gstvaapidownload.c:
32088         * gst/vaapi/gstvaapidownload.h:
32089         * gst/vaapi/gstvaapipluginutil.c:
32090         * gst/vaapi/gstvaapipluginutil.h:
32091         * gst/vaapi/gstvaapisink.c:
32092         * gst/vaapi/gstvaapiupload.c:
32093         * gst/vaapi/gstvaapiupload.h:
32094         * tests/test-decode.c:
32095           legal: fix year for some copyright notices.
32096
32097 2012-01-16 10:42:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32098
32099         * gst-libs/gst/vaapi/gstvaapicontext.c:
32100         * gst-libs/gst/vaapi/gstvaapicontext.h:
32101         * gst-libs/gst/vaapi/gstvaapidecoder.h:
32102         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32103         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32104         * gst-libs/gst/vaapi/gstvaapidisplay.h:
32105         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32106         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32107         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32108         * gst-libs/gst/vaapi/gstvaapiimage.c:
32109         * gst-libs/gst/vaapi/gstvaapiimage.h:
32110         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32111         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32112         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32113         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32114         * gst-libs/gst/vaapi/gstvaapisurface.c:
32115         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32116         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32117         * gst-libs/gst/vaapi/gstvaapiutils.c:
32118         * gst-libs/gst/vaapi/gstvaapiutils.h:
32119         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32120         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32121         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32122         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32123         * gst-libs/gst/vaapi/gstvaapiwindow.c:
32124         * gst/vaapi/gstvaapidownload.h:
32125         * gst/vaapi/gstvaapisink.h:
32126         * gst/vaapi/gstvaapiupload.h:
32127         * tests/test-decode.c:
32128           legal: add Intel copyright on modified files.
32129
32130 2012-01-16 10:41:10 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32131
32132         * gst-libs/gst/vaapi/gstvaapi_priv.h:
32133         * gst-libs/gst/vaapi/gstvaapicompat.h:
32134         * gst-libs/gst/vaapi/gstvaapicontext.c:
32135         * gst-libs/gst/vaapi/gstvaapicontext.h:
32136         * gst-libs/gst/vaapi/gstvaapidebug.h:
32137         * gst-libs/gst/vaapi/gstvaapidecoder.c:
32138         * gst-libs/gst/vaapi/gstvaapidecoder.h:
32139         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32140         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
32141         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32142         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32143         * gst-libs/gst/vaapi/gstvaapidisplay.h:
32144         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32145         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
32146         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
32147         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32148         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32149         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
32150         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
32151         * gst-libs/gst/vaapi/gstvaapiimage.c:
32152         * gst-libs/gst/vaapi/gstvaapiimage.h:
32153         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32154         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32155         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
32156         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
32157         * gst-libs/gst/vaapi/gstvaapiobject.c:
32158         * gst-libs/gst/vaapi/gstvaapiobject.h:
32159         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
32160         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
32161         * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
32162         * gst-libs/gst/vaapi/gstvaapiprofile.c:
32163         * gst-libs/gst/vaapi/gstvaapiprofile.h:
32164         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32165         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32166         * gst-libs/gst/vaapi/gstvaapisurface.c:
32167         * gst-libs/gst/vaapi/gstvaapisurface.h:
32168         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
32169         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
32170         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32171         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32172         * gst-libs/gst/vaapi/gstvaapitexture.c:
32173         * gst-libs/gst/vaapi/gstvaapitexture.h:
32174         * gst-libs/gst/vaapi/gstvaapitypes.h:
32175         * gst-libs/gst/vaapi/gstvaapiutils.c:
32176         * gst-libs/gst/vaapi/gstvaapiutils.h:
32177         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32178         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32179         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32180         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
32181         * gst-libs/gst/vaapi/gstvaapivalue.c:
32182         * gst-libs/gst/vaapi/gstvaapivalue.h:
32183         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32184         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32185         * gst-libs/gst/vaapi/gstvaapivideopool.c:
32186         * gst-libs/gst/vaapi/gstvaapivideopool.h:
32187         * gst-libs/gst/vaapi/gstvaapivideosink.c:
32188         * gst-libs/gst/vaapi/gstvaapivideosink.h:
32189         * gst-libs/gst/vaapi/gstvaapiwindow.c:
32190         * gst-libs/gst/vaapi/gstvaapiwindow.h:
32191         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32192         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
32193         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32194         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
32195         * gst/vaapi/gstvaapidecode.c:
32196         * gst/vaapi/gstvaapidecode.h:
32197         * gst/vaapi/gstvaapidownload.c:
32198         * gst/vaapi/gstvaapidownload.h:
32199         * gst/vaapi/gstvaapisink.c:
32200         * gst/vaapi/gstvaapisink.h:
32201         * gst/vaapi/gstvaapiupload.c:
32202         * gst/vaapi/gstvaapiupload.h:
32203         * tests/image.c:
32204         * tests/image.h:
32205         * tests/test-decode.c:
32206         * tests/test-decode.h:
32207         * tests/test-display.c:
32208         * tests/test-h264.c:
32209         * tests/test-h264.h:
32210         * tests/test-mpeg2.c:
32211         * tests/test-mpeg2.h:
32212         * tests/test-surfaces.c:
32213         * tests/test-textures.c:
32214         * tests/test-vc1.c:
32215         * tests/test-vc1.h:
32216         * tests/test-windows.c:
32217           legal: fix copyright notices to include "Copyright" term.
32218
32219 2011-12-09 16:44:03 +0800  Zhao Halley <halley.zhao@intel.com>
32220
32221         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32222         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32223           mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32224           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32225
32226 2011-12-09 16:28:11 +0800  Zhao Halley <halley.zhao@intel.com>
32227
32228         * gst-libs/gst/vaapi/Makefile.am:
32229         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32230         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32231         * gst/vaapi/gstvaapidecode.c:
32232           Add initial MPEG-4 decoder.
32233           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32234
32235 2011-11-18 15:41:40 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32236
32237         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32238         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32239           vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32240           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32241
32242 2011-10-07 11:50:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32243
32244         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32245           vc1: fix codec-data decoding for WMV3 format.
32246
32247 2011-10-07 11:12:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32248
32249         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32250           vc1: fix presentation timestamps.
32251
32252 2011-10-06 15:59:22 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32253
32254         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32255           vc1: fix MV mode packing.
32256
32257 2011-10-05 16:41:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32258
32259         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32260           vc1: handle codec-data.
32261
32262 2011-10-05 15:56:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32263
32264         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32265           vc1: handle encapsulated bitstreams.
32266
32267 2011-10-04 17:51:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32268
32269         * gst-libs/gst/vaapi/gstvaapidecoder.c:
32270         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32271         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32272           vc1: fix bitplanes decoding.
32273
32274 2011-10-04 14:15:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32275
32276         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32277           vc1: fix BFRACTION reconstruction.
32278
32279 2011-09-30 17:16:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32280
32281         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32282           vc1: fix framerate calculation.
32283
32284 2011-09-30 13:40:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32285
32286         * gst-libs/gst/vaapi/Makefile.am:
32287         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32288         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32289         * gst/vaapi/gstvaapidecode.c:
32290         * tests/test-decode.c:
32291           Add initial VC-1 decoder.
32292
32293 2012-01-09 17:37:34 +0100  Zhao Halley <halley.zhao@intel.com>
32294
32295         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32296           mpeg2: fix first field detection.
32297           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32298
32299 2012-01-06 16:44:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32300
32301         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32302           mpeg2: fix quantisation matrix construction.
32303
32304 2011-11-18 15:06:07 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32305
32306         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32307         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32308           mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
32309           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32310
32311 2011-09-14 18:11:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32312
32313         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32314           mpeg2: fix packets spanning over two buffers.
32315
32316 2011-09-12 18:20:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32317
32318         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32319           mpeg2: ignore system start codes (PES headers).
32320
32321 2011-09-12 18:02:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32322
32323         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32324           mpeg2: handle closed_gop.
32325
32326 2011-08-05 11:55:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32327
32328         * gst-libs/gst/vaapi/Makefile.am:
32329         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32330         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32331         * gst/vaapi/gstvaapidecode.c:
32332         * tests/test-decode.c:
32333           Add initial MPEG-2 decoder.
32334
32335 2011-08-12 10:21:19 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32336
32337         * configure.ac:
32338         * gst-libs/gst/vaapi/Makefile.am:
32339         * gst/vaapi/gstvaapidecode.c:
32340         * tests/test-decode.c:
32341           Allow conditional build of GStreamer/FFmpeg bitstream parsers.
32342
32343 2011-08-05 11:53:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32344
32345         * gst-libs/gst/vaapi/gstvaapidecoder.c:
32346         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32347           Add VA decoder helpers.
32348
32349 2011-08-05 11:52:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32350
32351         * gst-libs/gst/vaapi/gstvaapidecoder.h:
32352           decoder: add new error codes.
32353           GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
32354           GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
32355
32356 2011-09-12 13:00:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32357
32358         * gst-libs/gst/vaapi/Makefile.am:
32359         * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
32360         * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
32361           Add timestamp buffer store helper utils.
32362
32363 2011-08-04 17:29:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32364
32365         * gst-libs/gst/vaapi/gstvaapiutils.c:
32366         * gst-libs/gst/vaapi/gstvaapiutils.h:
32367           Add VA buffer helpers.
32368
32369 2012-01-13 15:03:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32370
32371         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32372           utils: slight improvements to gl_bind_texture().
32373
32374 2012-01-13 14:13:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32375
32376         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32377           utils: pretty-print output of gl_get_error_string().
32378
32379 2012-01-13 14:03:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32380
32381         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32382           utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
32383
32384 2012-01-13 12:09:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32385
32386         * gst-libs/gst/vaapi/gstvaapiutils.c:
32387           utils: simplify string of VAProfile/VAEntrypoint.
32388
32389 2012-01-13 11:46:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32390
32391         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32392         * gst-libs/gst/vaapi/gstvaapiutils.c:
32393         * gst-libs/gst/vaapi/gstvaapiutils.h:
32394           utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
32395
32396 2012-01-12 17:18:47 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32397
32398         * NEWS:
32399           NEWS: updates.
32400
32401 2012-01-12 15:34:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32402
32403         * tests/test-decode.c:
32404           tests: check for shared VA displays (display cache).
32405
32406 2012-01-12 15:30:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32407
32408         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32409           display: always free VA display cache if it is empty.
32410
32411 2012-01-12 15:03:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32412
32413         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32414         * gst-libs/gst/vaapi/gstvaapidisplay.h:
32415         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32416         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32417         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32418           display: use VA display cache for X11 and GLX winsys.
32419
32420 2012-01-12 12:46:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32421
32422         * gst-libs/gst/vaapi/Makefile.am:
32423         * gst-libs/gst/vaapi/gstvaapidisplay.h:
32424         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32425         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
32426           display: implement a VA display cache.
32427
32428 2012-01-11 14:13:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32429
32430         * gst/vaapi/gstvaapipluginutil.c:
32431           vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
32432           This ensures the display name provided to gst_vaapi_display_*_new()
32433           maps to the system defaults, instead of forcing "" that could be different
32434           from the current DISPLAY name.
32435
32436 2011-08-26 15:44:25 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32437
32438         * gst/vaapi/gstvaapiupload.c:
32439           vaapiupload: only set caps on newly created buffers.
32440           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32441
32442 2012-01-11 14:11:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32443
32444         * gst/vaapi/gstvaapisink.c:
32445           vaapisink: ensure VA display in GstBaseSink::start() hook.
32446           This ensures a VA display is ready by the time upstream elements request
32447           for it.
32448
32449 2011-08-26 15:44:46 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32450
32451         * gst/vaapi/gstvaapisink.c:
32452           vaapisink: don't leak GL texture.
32453           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32454
32455 2012-01-09 16:51:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32456
32457         * gst/vaapi/gstvaapisink.c:
32458           vaapisink: fix calculation of render region.
32459
32460 2012-01-09 11:23:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32461
32462         * gst/vaapi/gstvaapisink.c:
32463           vaapisink: automatically fit video to window.
32464
32465 2012-01-09 10:37:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32466
32467         * gst/vaapi/gstvaapisink.c:
32468           vaapisink: implement GstXOverlay::set_render_rectangle().
32469
32470 2012-01-09 11:04:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32471
32472         * gst-libs/gst/vaapi/gstvaapiwindow.c:
32473           window: always check geometry when the window is mapped.
32474
32475 2012-01-06 17:51:59 +0100  Zhao Halley <halley.zhao@intel.com>
32476
32477         * gst-libs/gst/vaapi/gstvaapiutils.c:
32478           Add missing profiles from VA-API 0.32.0.
32479           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32480
32481 2012-01-06 16:48:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32482
32483         * .gitignore:
32484           .gitignore: add test-subpicture.
32485
32486 2012-01-06 11:23:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32487
32488         * configure.ac:
32489           Bump version for development.
32490
32491 2012-01-06 11:20:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32492
32493         * NEWS:
32494         * configure.ac:
32495           0.3.2.
32496
32497 2012-01-06 11:18:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32498
32499         * tests/Makefile.am:
32500           tests: fix make dist (ship with test-subpicture-data.h).
32501
32502 2012-01-05 17:35:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32503
32504         * NEWS:
32505           NEWS: updates.
32506
32507 2012-01-05 17:09:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32508
32509         * gst-libs/gst/vaapi/gstvaapidecoder.c:
32510         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32511         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32512           decoder: fix possible leak of VA surfaces.
32513           Under some circumstances, we could have leaked a surface, thus not
32514           releasing it to the pool of available surfaces in the VA context.
32515           The strategy is now to use a proxy earlier and automatically ref/unref
32516           whenever necessary. In particular, during the lifetime needed for FFmpeg.
32517
32518 2012-01-05 16:59:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32519
32520         * docs/reference/libs/libs-sections.txt:
32521         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32522         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32523           surfaceproxy: add helper to retrieve the VA surface ID.
32524
32525 2012-01-05 16:44:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32526
32527         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32528           surfaceproxy: simplify destruction.
32529           Also make sure to always make sure to release the surface back to the
32530           pool of surfaces in the associated VA context, if any.
32531
32532 2012-01-05 16:26:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32533
32534         * gst/vaapi/gstvaapidecode.c:
32535           vaapidecode: fix deinitialization order.
32536
32537 2012-01-05 14:50:26 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32538
32539         * gst-libs/gst/vaapi/gstvaapicontext.c:
32540           context: avoid self reference loops with surfaces.
32541
32542 2012-01-05 11:23:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32543
32544         * debian.upstream/control.in:
32545           debian: update control.in description for new plugins.
32546
32547 2012-01-05 11:01:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32548
32549         * gst/vaapi/gstvaapiupload.c:
32550           vaapiupload: use new gst_vaapi_append_surface_caps() helper.
32551           This also fixes extra structures, beyond the one at index 0, to hold
32552           the right additional values.
32553
32554 2012-01-05 10:55:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32555
32556         * gst/vaapi/gstvaapiupload.c:
32557           vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
32558
32559 2012-01-05 10:50:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32560
32561         * README:
32562         * docs/reference/plugins/plugins-docs.xml.in:
32563         * docs/reference/plugins/plugins-sections.txt:
32564         * docs/reference/plugins/plugins.types:
32565         * gst/vaapi/Makefile.am:
32566         * gst/vaapi/gstvaapi.c:
32567         * gst/vaapi/gstvaapidownload.c:
32568         * gst/vaapi/gstvaapidownload.h:
32569           vaapidownload: add new plugin to download pixels from VA surfaces.
32570
32571 2012-01-05 11:00:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32572
32573         * gst/vaapi/gstvaapipluginutil.c:
32574         * gst/vaapi/gstvaapipluginutil.h:
32575           vaapipluingutils: add helper to append surface caps to YUV caps.
32576
32577 2012-01-05 10:29:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32578
32579         * docs/reference/libs/libs-sections.txt:
32580         * gst-libs/gst/vaapi/gstvaapiimage.c:
32581         * gst-libs/gst/vaapi/gstvaapiimage.h:
32582           image: add helpers to extract pixels to user buffers.
32583
32584 2012-01-04 11:34:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32585
32586         * gst-libs/gst/vaapi/gstvaapiimage.c:
32587           image: simplify initialization of raw images from video buffers.
32588
32589 2012-01-04 11:29:11 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32590
32591         * gst-libs/gst/vaapi/gstvaapiimage.c:
32592           image: fix update from NV12 buffers.
32593
32594 2012-01-03 18:16:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32595
32596         * gst/vaapi/gstvaapiupload.c:
32597           vaapiupload: fix memory leak in _init() function.
32598
32599 2012-01-03 14:34:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32600
32601         * NEWS:
32602         * README:
32603         * debian.upstream/control.in:
32604         * docs/reference/plugins/plugins-docs.xml.in:
32605         * docs/reference/plugins/plugins-sections.txt:
32606         * docs/reference/plugins/plugins.types:
32607         * gst/vaapi/Makefile.am:
32608         * gst/vaapi/gstvaapi.c:
32609         * gst/vaapi/gstvaapiupload.c:
32610         * gst/vaapi/gstvaapiupload.h:
32611           Rename vaapiconvert element to vaapiupload.
32612
32613 2012-01-03 13:54:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32614
32615         * configure.ac:
32616           Bump version for development.
32617
32618 2012-01-03 13:42:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32619
32620         * NEWS:
32621         * configure.ac:
32622           0.3.1.
32623
32624 2011-12-14 15:22:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32625
32626         * NEWS:
32627           NEWS: updates.
32628
32629 2011-12-14 14:40:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32630
32631         * gst-libs/gst/vaapi/gstvaapisurface.c:
32632         * gst-libs/gst/vaapi/gstvaapisurface.h:
32633         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32634         * gst/vaapi/gstvaapisink.c:
32635           surface: apply composition to the parent context, if requested.
32636
32637 2011-12-14 14:35:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32638
32639         * docs/reference/libs/libs-sections.txt:
32640         * gst-libs/gst/vaapi/gstvaapicontext.c:
32641         * gst-libs/gst/vaapi/gstvaapicontext.h:
32642           context: make it possible to apply composition globally.
32643
32644 2011-12-14 14:13:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32645
32646         * gst-libs/gst/vaapi/gstvaapisurface.c:
32647           surface: fix associate subpicture to not report deassociation errors.
32648
32649 2011-12-14 13:46:26 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32650
32651         * gst-libs/gst/vaapi/gstvaapisurface.c:
32652           surface: fix typo in debug message.
32653
32654 2011-12-14 13:16:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32655
32656         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32657         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32658         * gst-libs/gst/vaapi/gstvaapisurface.c:
32659           subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
32660
32661 2011-12-13 16:53:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32662
32663         * docs/reference/libs/libs-sections.txt:
32664         * gst-libs/gst/vaapi/Makefile.am:
32665         * gst-libs/gst/vaapi/gstvaapicontext.c:
32666         * gst-libs/gst/vaapi/gstvaapisurface.c:
32667         * gst-libs/gst/vaapi/gstvaapisurface.h:
32668         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32669           surface: record parent context.
32670
32671 2011-12-13 15:59:02 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32672
32673         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32674         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32675         * gst/vaapi/gstvaapidecode.c:
32676         * gst/vaapi/gstvaapisink.c:
32677           Fix warnings.
32678
32679 2011-12-13 15:51:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32680
32681         * gst-libs/gst/vaapi/gstvaapisurface.c:
32682         * gst-libs/gst/vaapi/gstvaapisurface.h:
32683         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32684         * gst/vaapi/gstvaapisink.c:
32685           Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
32686
32687 2011-12-13 13:40:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32688
32689         * configure.ac:
32690           configure: check for GstVideoOverlayComposition.
32691
32692 2011-12-12 18:42:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32693
32694         * NEWS:
32695           NEWS: updates.
32696
32697 2011-11-25 15:00:25 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32698
32699         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32700           converter: add support for GstVideoOverlayComposition planes.
32701           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32702
32703 2011-11-23 16:45:46 -0300  Thibault Saunier <thibault.saunier@collabora.com>
32704
32705         * gst/vaapi/gstvaapisink.c:
32706           vaapisink: handle GstVideoOverlayComposition planes.
32707           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32708
32709 2011-12-12 18:27:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32710
32711         * gst-libs/gst/vaapi/gstvaapisurface.c:
32712           surface: use unscaled overlay rectangle for blending.
32713
32714 2011-12-12 18:37:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32715
32716         * gst-libs/gst/vaapi/gstvaapisurface.c:
32717           surface: fix VA image leak when an error occurred.
32718
32719 2011-11-25 14:59:56 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32720
32721         * gst-libs/gst/vaapi/gstvaapisurface.c:
32722         * gst-libs/gst/vaapi/gstvaapisurface.h:
32723           surface: add helper to handle GstVideoOverlayComposition.
32724           This helper resets the subpictures to reflect the current composition
32725           layers provided with the buffers.
32726           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32727
32728 2011-12-12 18:13:19 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32729
32730         * docs/reference/libs/libs-sections.txt:
32731         * gst-libs/gst/vaapi/Makefile.am:
32732         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32733         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32734         * gst/vaapi/gstvaapiconvert.c:
32735           image: add gst_vaapi_image_format_from_video() helper.
32736
32737 2011-12-12 16:34:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32738
32739         * gst-libs/gst/vaapi/gstvaapiimage.c:
32740         * gst-libs/gst/vaapi/gstvaapiimage.h:
32741           image: allow updates from GstVaapiImageRaw.
32742
32743 2011-12-12 14:34:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32744
32745         * gst-libs/gst/vaapi/gstvaapiimage.c:
32746         * gst-libs/gst/vaapi/gstvaapiimage.h:
32747         * gst/vaapi/gstvaapiconvert.c:
32748         * tests/test-subpicture.c:
32749           image: allow partial updates.
32750
32751 2011-12-12 15:31:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32752
32753         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32754           subpicture: fix doc for gst_vaapi_subpicture_set_image().
32755
32756 2011-12-12 13:39:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32757
32758         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32759           display: fix has_image_format() to check against subpicture formats.
32760
32761 2011-10-17 18:43:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32762
32763         * tests/test-subpicture.c:
32764           tests: fix subpicture test.
32765
32766 2011-10-14 13:00:12 -0300  Thibault Saunier <thibault.saunier@collabora.com>
32767
32768         * tests/Makefile.am:
32769         * tests/test-subpicture-data.c:
32770         * tests/test-subpicture-data.h:
32771         * tests/test-subpicture.c:
32772           tests: add test for subpictures.
32773           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32774
32775 2011-11-25 12:28:04 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32776
32777         * gst/vaapi/gstvaapiconvert.c:
32778         * gst/vaapi/gstvaapidecode.c:
32779           Add missing video context queries.
32780           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32781
32782 2011-12-12 13:22:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32783
32784         * configure.ac:
32785           Bump version for development.
32786
32787 2011-12-12 10:04:32 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32788
32789         * gst-libs/gst/video/Makefile.am:
32790         * gst-libs/gst/video/gstbasevideocodec.c:
32791         * gst-libs/gst/video/gstbasevideocodec.h:
32792         * gst-libs/gst/video/gstbasevideodecoder.c:
32793         * gst-libs/gst/video/gstbasevideodecoder.h:
32794         * gst-libs/gst/video/gstbasevideoutils.c:
32795         * gst-libs/gst/video/gstbasevideoutils.h:
32796           Drop unused copy of GstBaseVideoDecoder.
32797
32798 2011-12-09 11:46:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32799
32800         * NEWS:
32801         * configure.ac:
32802           0.3.0.
32803
32804 2011-12-09 11:38:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32805
32806         * README:
32807           README: update dependencies.
32808
32809 2011-12-09 11:38:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32810
32811         * NEWS:
32812           NEWS: updates.
32813
32814 2011-12-09 11:20:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32815
32816         * configure.ac:
32817           configure: check for GstBaseSink 'query' vfunc.
32818
32819 2011-12-09 10:45:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32820
32821         * gst/vaapi/Makefile.am:
32822           vaapiplugin: include local build dir to CFLAGS for generated files.
32823
32824 2011-12-09 10:44:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32825
32826         * autogen.sh:
32827           autogen: don't configure if NO_CONFIGURE variable is set.
32828
32829 2011-12-08 11:54:59 +0100  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32830
32831         * gst/vaapi/gstvaapidecode.c:
32832         * gst/vaapi/gstvaapidecode.h:
32833           vaapidecode: return sink caps template if decoder is in NULL state.
32834           Otherwise, the decoder would always create its own X display instead
32835           of probing it from the downstream element, which is not reliable.
32836           e.g. DISPLAY is not :0 or when running on Wayland.
32837           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32838
32839 2011-12-08 15:44:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32840
32841         * gst/vaapi/gstvaapiconvert.c:
32842         * gst/vaapi/gstvaapidecode.c:
32843           vaapiplugin: properly set surface type to "vaapi" in caps.
32844
32845 2011-12-08 15:16:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32846
32847         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32848           decoder: drop unused headers.
32849
32850 2011-11-04 19:47:25 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32851
32852         * gst/vaapi/gstvaapiconvert.c:
32853         * gst/vaapi/gstvaapidecode.c:
32854           vaapiplugin: properly set opengl support in caps.
32855           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32856
32857 2011-11-04 20:07:52 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32858
32859         * gst/vaapi/gstvaapiconvert.c:
32860         * gst/vaapi/gstvaapidecode.c:
32861           vaapiplugin: allocate GLX buffers when supported.
32862           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32863
32864 2011-11-04 19:47:09 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32865
32866         * gst-libs/gst/vaapi/Makefile.am:
32867         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32868         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
32869         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
32870         * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
32871         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32872         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
32873           videobuffer: add GLX buffer support.
32874           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32875
32876 2011-10-06 16:06:15 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32877
32878         * gst-libs/gst/vaapi/Makefile.am:
32879         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32880         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32881           Port to GstSurfaceBuffer interface.
32882           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32883
32884 2011-10-06 16:04:37 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32885
32886         * gst/vaapi/gstvaapidecode.c:
32887         * gst/vaapi/gstvaapisink.c:
32888           Don't use downstream buffer allocation.
32889           With the new video/x-surface abstraction, we can't rely on having a VA
32890           specific sink downstream. Also, there was no particular reason to do that.
32891           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32892
32893 2011-11-04 17:16:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32894
32895         * gst-libs/gst/vaapi/Makefile.am:
32896         * gst-libs/gst/vaapi/gstvaapicontext.c:
32897         * gst-libs/gst/vaapi/gstvaapisurface.h:
32898         * gst/vaapi/gstvaapiconvert.c:
32899         * gst/vaapi/gstvaapisink.c:
32900         * tests/Makefile.am:
32901         * tests/test-surfaces.c:
32902           Change caps to use new video/x-surface generic type.
32903           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32904
32905 2011-11-04 16:50:15 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32906
32907         * configure.ac:
32908         * gst-libs/gst/vaapi/Makefile.am:
32909         * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
32910         * gst/vaapi/Makefile.am:
32911         * gst/vaapi/gstvaapiconvert.c:
32912         * gst/vaapi/gstvaapidecode.c:
32913         * gst/vaapi/gstvaapipluginutil.c:
32914         * gst/vaapi/gstvaapipluginutil.h:
32915         * gst/vaapi/gstvaapisink.c:
32916         * gst/vaapi/gstvaapisink.h:
32917           Port to GstVideoContext interface.
32918           This new interface allows for upstream and downstream display sharing
32919           that works in both static and dynamic pipelines.
32920           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32921
32922 2011-12-08 14:57:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32923
32924         * gst/vaapi/gstvaapisink.c:
32925           vaapisink: use GST_ERROR to print error messages.
32926
32927 2011-12-08 13:30:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32928
32929         * gst/vaapi/Makefile.am:
32930           vaapiplugin: link against VA/GLX when enabled.
32931
32932 2011-12-07 19:09:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32933
32934         * gst/vaapi/gstvaapiconvert.c:
32935         * gst/vaapi/gstvaapisink.c:
32936           Add Intel copyright information.
32937
32938 2011-12-07 19:04:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32939
32940         * gst/vaapi/gstvaapisink.c:
32941           vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
32942
32943 2011-12-07 18:40:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32944
32945         * .gitignore:
32946         * configure.ac:
32947         * gst-libs/gst/Makefile.am:
32948         * gst-libs/gst/gstutils_version.h.in:
32949           Add new GStreamer version check utilities.
32950
32951 2011-07-28 11:14:49 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32952
32953         * gst/vaapi/gstvaapisink.c:
32954           vaapisink: replace the deprecated xoverlay API with the new one.
32955           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32956
32957 2011-12-07 17:31:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32958
32959         * configure.ac:
32960           configure: allow for pre-releases.
32961
32962 2011-10-13 17:08:13 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32963
32964         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32965           display: destroy display on creation failure.
32966           This allows element to detect that the display creation has actually
32967           failed.
32968           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32969
32970 2011-10-13 17:07:35 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32971
32972         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32973           display: don't crash when config is empty.
32974           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32975
32976 2011-12-07 14:42:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32977
32978         * README:
32979         * debian.upstream/copyright:
32980           doc: mention Collabora copyrights.
32981
32982 2011-12-07 14:40:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32983
32984         * .gitignore:
32985           .gitignore: refine for generated docs.
32986
32987 2011-09-14 15:12:41 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32988
32989         * configure.ac:
32990         * docs/reference/plugins/Makefile.am:
32991         * gst/Makefile.am:
32992         * gst/vaapi/Makefile.am:
32993         * gst/vaapi/gstvaapi.c:
32994         * gst/vaapi/gstvaapiconvert.c:
32995         * gst/vaapi/gstvaapiconvert.h:
32996         * gst/vaapi/gstvaapidecode.c:
32997         * gst/vaapi/gstvaapidecode.h:
32998         * gst/vaapi/gstvaapisink.c:
32999         * gst/vaapi/gstvaapisink.h:
33000         * gst/vaapiconvert/Makefile.am:
33001         * gst/vaapidecode/Makefile.am:
33002           Group all plugins into the same bundle
33003           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33004
33005 2011-07-21 14:31:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33006
33007         * configure.ac:
33008           Bump version for development.
33009
33010 2011-12-07 14:17:32 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33011
33012         * configure.ac:
33013         * debian.upstream/control.in:
33014           debian: build against upstream libva packages.
33015
33016 2011-12-07 13:52:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33017
33018         * docs/reference/libs/Makefile.am:
33019         * docs/reference/plugins/Makefile.am:
33020         * tests/Makefile.am:
33021           Fix build on Ubuntu 11.10 (Oneric).
33022
33023 2011-12-07 13:14:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33024
33025         * NEWS:
33026           0.2.7.
33027
33028 2011-09-12 16:20:16 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
33029
33030         * .gitignore:
33031           Adding ignore file
33032           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33033
33034 2011-10-24 16:18:16 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
33035
33036         * gst/vaapiconvert/gstvaapiconvert.c:
33037         * gst/vaapidecode/gstvaapidecode.c:
33038         * gst/vaapisink/gstvaapisink.c:
33039           Update license in plugin definition
33040           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33041
33042 2011-10-12 14:00:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33043
33044         * NEWS:
33045         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33046           decoder: fix use of invalid data at the end-of-stream.
33047
33048 2011-10-19 14:47:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33049
33050         * gst/vaapiconvert/gstvaapiconvert.c:
33051           vaapiconvert: fix some warnings.
33052
33053 2011-10-19 14:43:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33054
33055         * configure.ac:
33056         * debian.upstream/changelog.in:
33057         * debian.upstream/control.in:
33058         * debian.upstream/copyright:
33059         * gst/vaapiconvert/gstvaapiconvert.c:
33060         * gst/vaapidecode/gstvaapidecode.c:
33061         * gst/vaapisink/gstvaapisink.c:
33062           Update with my current e-mail address.
33063
33064 2011-10-19 14:39:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33065
33066         * NEWS:
33067         * README:
33068           Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
33069
33070 2011-10-18 09:18:20 +0200  warly <warly@warly.org>
33071
33072         * tests/image.c:
33073         * tests/image.h:
33074         * tests/test-decode.c:
33075         * tests/test-decode.h:
33076         * tests/test-display.c:
33077         * tests/test-h264.c:
33078         * tests/test-h264.h:
33079         * tests/test-mpeg2.c:
33080         * tests/test-mpeg2.h:
33081         * tests/test-surfaces.c:
33082         * tests/test-textures.c:
33083         * tests/test-vc1.c:
33084         * tests/test-vc1.h:
33085         * tests/test-windows.c:
33086           switch tests licence to LGPL v2.1+
33087
33088 2011-10-18 09:06:52 +0200  warly <warly@warly.org>
33089
33090         * COPYING:
33091         * README:
33092         * debian.upstream/copyright:
33093         * gst/vaapiconvert/gstvaapiconvert.c:
33094         * gst/vaapiconvert/gstvaapiconvert.h:
33095         * gst/vaapidecode/gstvaapidecode.c:
33096         * gst/vaapidecode/gstvaapidecode.h:
33097         * gst/vaapisink/gstvaapisink.c:
33098         * gst/vaapisink/gstvaapisink.h:
33099           move plugins to LGPL v2.1+
33100
33101 2011-09-14 13:07:18 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33102
33103         * gst/vaapidecode/gstvaapidecode.c:
33104           vaapidecode: fix sink caps to not expose size information.
33105           This fixes this particular issue:
33106           GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
33107           a real subset of its template caps
33108
33109 2011-09-14 11:34:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33110
33111         * NEWS:
33112         * gst/vaapidecode/gstvaapidecode.c:
33113           vaapidecode: fix decoding of MPEG-2 PS files.
33114
33115 2011-09-12 13:00:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33116
33117         * gst-libs/gst/vaapi/Makefile.am:
33118           Cosmetics (sort source files).
33119
33120 2011-09-08 14:50:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33121
33122         * gst/vaapiconvert/gstvaapiconvert.c:
33123         * gst/vaapiconvert/gstvaapiconvert.h:
33124           vaapiconvert: fix direct-rendering caps detection.
33125
33126 2011-09-08 14:40:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33127
33128         * gst-libs/gst/vaapi/gstvaapiimage.c:
33129           Fix gst_vaapi_image_new_with_image().
33130
33131 2011-09-08 13:09:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33132
33133         * gst/vaapiconvert/gstvaapiconvert.c:
33134           vaapiconvert: warn when surface failed to be updated with image.
33135
33136 2011-09-06 18:34:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33137
33138         * gst/vaapiconvert/gstvaapiconvert.c:
33139           vaapiconvert: fix autodetection for vaDeriveImage() support.
33140
33141 2011-09-06 17:47:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33142
33143         * gst/vaapiconvert/gstvaapiconvert.c:
33144           vaapiconvert: fix memory leak (VA surface image).
33145
33146 2011-09-05 16:20:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33147
33148         * NEWS:
33149         * gst/vaapiconvert/gstvaapiconvert.c:
33150           vaapiconvert: fix direct-rendering mode.
33151
33152 2011-09-06 16:49:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33153
33154         * docs/reference/libs/libs-sections.txt:
33155         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33156         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33157           Add gst_vaapi_video_buffer_new_from_buffer().
33158           Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
33159           Any image, surface or surface proxy will be inherited from the source buffer
33160           if it is a GstVaapiVideoBuffer.
33161
33162 2011-09-05 17:23:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33163
33164         * gst/vaapiconvert/gstvaapiconvert.c:
33165           vaapiconvert: protect access to direct_rendering.
33166
33167 2011-09-05 16:18:14 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33168
33169         * gst/vaapiconvert/gstvaapiconvert.c:
33170           vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
33171
33172 2011-08-01 14:15:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33173
33174         * NEWS:
33175         * README:
33176         * debian.upstream/copyright:
33177         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33178         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33179         * gst-libs/gst/vaapi/gstvaapisurface.h:
33180         * gst/vaapidecode/gstvaapidecode.c:
33181         * gst/vaapidecode/gstvaapidecode.h:
33182           Add Intel copyright information.
33183
33184 2011-07-22 15:59:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33185
33186         * NEWS:
33187           Updates.
33188
33189 2011-07-22 15:55:47 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33190
33191         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33192           Fix build with newer FFmpeg versions.
33193
33194 2011-07-22 15:39:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33195
33196         * gst/vaapidecode/gstvaapidecode.c:
33197         * gst/vaapidecode/gstvaapidecode.h:
33198           Fix decoding of MPEG-2 TS files.
33199
33200 2011-07-22 15:34:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33201
33202         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33203           Report caps update only once per video resolution change.
33204
33205 2011-07-22 15:33:13 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33206
33207         * gst-libs/gst/vaapi/gstvaapisurface.h:
33208           Add canonical form (type name) of VA surface caps.
33209
33210 2011-07-22 15:42:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33211
33212         * configure.ac:
33213           Bump version for development.
33214
33215 2011-07-19 17:38:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33216
33217         * configure.ac:
33218           Use pretty build output with automake >= 1.11.
33219
33220 2011-07-15 16:08:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33221
33222         * gst/vaapiconvert/Makefile.am:
33223         * gst/vaapidecode/Makefile.am:
33224         * gst/vaapisink/Makefile.am:
33225         * tests/Makefile.am:
33226           Fix build with libva headers not in a standard include dir.
33227
33228 2011-06-14 15:59:08 +0200  Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33229
33230         * configure.ac:
33231           0.2.6.
33232
33233 2011-06-14 13:52:56 +0200  Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33234
33235         * gst-libs/gst/vaapi/gstvaapi_priv.h:
33236         * gst-libs/gst/vaapi/gstvaapicompat.h:
33237         * gst-libs/gst/vaapi/gstvaapicontext.c:
33238         * gst-libs/gst/vaapi/gstvaapicontext.h:
33239         * gst-libs/gst/vaapi/gstvaapidebug.h:
33240         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33241         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33242         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33243         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33244         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33245         * gst-libs/gst/vaapi/gstvaapidisplay.c:
33246         * gst-libs/gst/vaapi/gstvaapidisplay.h:
33247         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33248         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33249         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33250         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33251         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33252         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33253         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33254         * gst-libs/gst/vaapi/gstvaapiimage.c:
33255         * gst-libs/gst/vaapi/gstvaapiimage.h:
33256         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33257         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33258         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33259         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33260         * gst-libs/gst/vaapi/gstvaapiobject.c:
33261         * gst-libs/gst/vaapi/gstvaapiobject.h:
33262         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33263         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33264         * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33265         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33266         * gst-libs/gst/vaapi/gstvaapiprofile.h:
33267         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33268         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33269         * gst-libs/gst/vaapi/gstvaapisurface.c:
33270         * gst-libs/gst/vaapi/gstvaapisurface.h:
33271         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33272         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33273         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33274         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33275         * gst-libs/gst/vaapi/gstvaapitexture.c:
33276         * gst-libs/gst/vaapi/gstvaapitexture.h:
33277         * gst-libs/gst/vaapi/gstvaapitypes.h:
33278         * gst-libs/gst/vaapi/gstvaapiutils.c:
33279         * gst-libs/gst/vaapi/gstvaapiutils.h:
33280         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33281         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33282         * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33283         * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33284         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33285         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33286         * gst-libs/gst/vaapi/gstvaapivalue.c:
33287         * gst-libs/gst/vaapi/gstvaapivalue.h:
33288         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33289         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33290         * gst-libs/gst/vaapi/gstvaapivideopool.c:
33291         * gst-libs/gst/vaapi/gstvaapivideopool.h:
33292         * gst-libs/gst/vaapi/gstvaapivideosink.c:
33293         * gst-libs/gst/vaapi/gstvaapivideosink.h:
33294         * gst-libs/gst/vaapi/gstvaapiwindow.c:
33295         * gst-libs/gst/vaapi/gstvaapiwindow.h:
33296         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33297         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33298         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33299         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33300         * gst/vaapiconvert/gstvaapiconvert.c:
33301         * gst/vaapiconvert/gstvaapiconvert.h:
33302         * gst/vaapidecode/gstvaapidecode.c:
33303         * gst/vaapidecode/gstvaapidecode.h:
33304         * gst/vaapisink/gstvaapisink.c:
33305         * gst/vaapisink/gstvaapisink.h:
33306         * tests/image.c:
33307         * tests/image.h:
33308         * tests/test-decode.c:
33309         * tests/test-decode.h:
33310         * tests/test-display.c:
33311         * tests/test-h264.c:
33312         * tests/test-h264.h:
33313         * tests/test-mpeg2.c:
33314         * tests/test-mpeg2.h:
33315         * tests/test-surfaces.c:
33316         * tests/test-textures.c:
33317         * tests/test-vc1.c:
33318         * tests/test-vc1.h:
33319         * tests/test-windows.c:
33320           Update copyright notice.
33321
33322 2011-06-14 13:51:41 +0200  Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33323
33324         * NEWS:
33325         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33326         * gst-libs/gst/vaapi/gstvaapisurface.c:
33327         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33328         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33329         * gst-libs/gst/vaapi/gstvaapitexture.c:
33330         * gst-libs/gst/vaapi/gstvaapiutils.c:
33331         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33332         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33333         * gst-libs/gst/vaapi/gstvaapivalue.c:
33334         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33335         * gst-libs/gst/vaapi/gstvaapivideopool.c:
33336         * gst-libs/gst/vaapi/gstvaapivideosink.c:
33337         * gst-libs/gst/vaapi/gstvaapiwindow.c:
33338         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33339         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33340           Fix licensing terms.
33341
33342 2010-07-20 11:23:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33343
33344         * NEWS:
33345           0.2.5.
33346
33347 2010-07-20 11:21:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33348
33349         * debian.upstream/copyright:
33350           Fix license terms...
33351
33352 2010-07-01 13:19:29 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33353
33354         * gst/vaapisink/gstvaapisink.c:
33355           Render pretty background only in use-reflection=true mode.
33356
33357 2010-07-01 11:43:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33358
33359         * NEWS:
33360           Updates.
33361
33362 2010-07-01 11:41:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33363
33364         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33365           Drop the GLX 1.3 requirement.
33366
33367 2010-07-01 11:38:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33368
33369         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33370         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33371           Call the GLX/Pixmap related functions through the vtable.
33372
33373 2010-07-01 11:11:18 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33374
33375         * NEWS:
33376         * configure.ac:
33377         * gst-libs/gst/vaapi/Makefile.am:
33378         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33379           Drop dependency on libavformat.
33380
33381 2010-06-22 15:15:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33382
33383         * gst-libs/gst/video/gstbasevideodecoder.c:
33384         * gst-libs/gst/video/gstbasevideodecoder.h:
33385           Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
33386
33387 2010-06-22 14:06:25 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33388
33389         * gst-libs/gst/video/gstbasevideodecoder.c:
33390         * gst-libs/gst/video/gstbasevideoutils.c:
33391         * gst-libs/gst/video/gstbasevideoutils.h:
33392           Drop superfluous functions.
33393
33394 2010-06-22 13:57:33 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33395
33396         * gst-libs/gst/video/gstbasevideodecoder.c:
33397           Really drop any dependency on libgstvideo. i.e. inline the helpers.
33398
33399 2010-06-22 13:48:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33400
33401         * gst-libs/gst/video/gstbasevideodecoder.c:
33402           Further drop dependency on libgstvideo.
33403
33404 2010-06-22 12:57:06 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33405
33406         * gst-libs/gst/video/Makefile.am:
33407         * gst-libs/gst/video/gstbasevideocodec.c:
33408         * gst-libs/gst/video/gstbasevideocodec.h:
33409         * gst-libs/gst/video/gstbasevideodecoder.c:
33410         * gst-libs/gst/video/gstbasevideodecoder.h:
33411         * gst-libs/gst/video/gstbasevideoutils.c:
33412         * gst-libs/gst/video/gstbasevideoutils.h:
33413           Add GstBaseVideoDecoder from gst-plugins-bad git.
33414
33415 2010-06-15 12:36:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33416
33417         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33418           Fix GLX version check.
33419
33420 2010-06-14 14:46:41 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33421
33422         * NEWS:
33423         * configure.ac:
33424           Bump version for development.
33425
33426 2010-06-14 14:14:42 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33427
33428         * NEWS:
33429         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33430           Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
33431
33432 2010-06-14 12:58:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33433
33434         * NEWS:
33435           Update changelog.
33436
33437 2010-06-14 09:20:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33438
33439         * gst-libs/gst/vaapi/gstvaapicompat.h:
33440           Fix build with older VA-API 0.29-sds.
33441
33442 2010-05-18 11:22:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33443
33444         * gst/vaapisink/gstvaapisink.c:
33445         * gst/vaapisink/gstvaapisink.h:
33446           Fix upscaling in foreign window (Totem).
33447
33448 2010-05-17 12:32:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33449
33450         * gst/vaapisink/gstvaapisink.c:
33451           Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
33452
33453 2010-05-17 08:55:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33454
33455         * NEWS:
33456         * gst/vaapisink/gstvaapisink.c:
33457           Fix video rendering rect within an embedder window (Totem).
33458
33459 2010-05-17 08:28:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33460
33461         * NEWS:
33462         * gst/vaapisink/gstvaapisink.c:
33463           Disable GLX rendering when vaapisink uses a foreign X window.
33464
33465 2010-05-17 08:24:42 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33466
33467         * gst/vaapisink/gstvaapisink.c:
33468           Simplify GLX rendering code.
33469
33470 2010-05-17 07:32:10 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33471
33472         * configure.ac:
33473           Bump version for development.
33474
33475 2010-05-16 21:44:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33476
33477         * NEWS:
33478           0.2.3.
33479
33480 2010-05-16 21:35:14 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33481
33482         * gst/vaapidecode/gstvaapidecode.c:
33483           Wait for at most one second for a VA surface to become available.
33484
33485 2010-05-16 21:18:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33486
33487         * README:
33488         * configure.ac:
33489           Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
33490
33491 2010-05-16 21:17:49 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33492
33493         * NEWS:
33494         * README:
33495         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33496           Fix decoder caps to report codec aliases.
33497
33498 2010-05-16 21:04:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33499
33500         * NEWS:
33501         * gst/vaapidecode/gstvaapidecode.c:
33502         * gst/vaapidecode/gstvaapidecode.h:
33503           Fix VC-1 decoding through the playbin2 pipeline.
33504
33505 2010-05-15 15:33:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33506
33507         * docs/reference/libs/libs-sections.txt:
33508         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33509         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33510         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33511         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33512           Regularly update and expose decoder caps.
33513
33514 2010-05-15 09:43:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33515
33516         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33517         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33518         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33519           Add mechanism to reinsert buffer leftovers into the queue.
33520
33521 2010-05-15 06:59:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33522
33523         * NEWS:
33524         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33525           Fix memory leak of encoded buffers.
33526
33527 2010-05-15 05:36:15 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33528
33529         * docs/reference/libs/libs-sections.txt:
33530         * gst-libs/gst/vaapi/gstvaapicontext.c:
33531         * gst-libs/gst/vaapi/gstvaapicontext.h:
33532         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33533         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33534           Check for out-of-free-surfaces condition.
33535
33536 2010-05-15 04:35:00 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33537
33538         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33539           Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
33540
33541 2010-05-15 04:25:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33542
33543         * gst/vaapisink/gstvaapisink.c:
33544           Improve debug info for gst_vaapisink_ensure_render_rect().
33545
33546 2010-05-14 05:02:05 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33547
33548         * configure.ac:
33549           Bump version for development.
33550
33551 2010-05-13 21:52:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33552
33553         * NEWS:
33554           0.2.2.
33555
33556 2010-05-13 21:39:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33557
33558         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33559           Improve previous fix.
33560
33561 2010-05-13 21:27:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33562
33563         * NEWS:
33564         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33565           Fix a crash in the FFmpeg decoder on close.
33566
33567 2010-05-13 16:41:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33568
33569         * README:
33570           Sort platforms by name.
33571
33572 2010-05-13 09:40:52 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33573
33574         * NEWS:
33575         * configure.ac:
33576           Bump version for development.
33577
33578 2010-05-13 09:38:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33579
33580         * gst/vaapisink/gstvaapisink.c:
33581           Add debug info for _show_frame().
33582
33583 2010-05-13 07:19:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33584
33585         * Makefile.am:
33586           Nuke older build dir.
33587
33588 2010-05-13 07:19:21 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33589
33590         * debian.upstream/control.in:
33591           Fix packaging deps.
33592
33593 2010-05-13 06:12:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33594
33595         * NEWS:
33596           Cosmetics.
33597
33598 2010-05-13 06:11:42 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33599
33600         * NEWS:
33601         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33602           Fix OpenGL texture internal format (Clutter).
33603
33604 2010-05-13 04:40:40 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33605
33606         * NEWS:
33607           Respin release.
33608
33609 2010-05-13 04:27:44 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33610
33611         * gst/vaapisink/gstvaapisink.c:
33612           Debug video & display PARs.
33613
33614 2010-05-13 04:22:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33615
33616         * gst/vaapisink/gstvaapisink.c:
33617           Use XGetGeometry() to retrieve the window size.
33618
33619 2010-05-12 19:40:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33620
33621         * gst/vaapisink/gstvaapisink.c:
33622           Move code around.
33623
33624 2010-05-12 19:35:45 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33625
33626         * gst/vaapisink/gstvaapisink.c:
33627           Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
33628
33629 2010-05-12 19:18:04 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33630
33631         * README:
33632           Drop obsolete comment.
33633
33634 2010-05-12 19:14:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33635
33636         * NEWS:
33637           0.2.1.
33638
33639 2010-05-12 19:14:35 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33640
33641         * gst/vaapidecode/gstvaapidecode.c:
33642           Fix GstVaapiDisplay refcounting in vaapidecode.
33643
33644 2010-05-12 14:10:38 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33645
33646         * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33647           Fix comment.
33648
33649 2010-05-12 12:58:53 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33650
33651         * gst/vaapisink/gstvaapisink.c:
33652         * gst/vaapisink/gstvaapisink.h:
33653           Fix render rect when the foreign window size changes.
33654
33655 2010-05-12 11:43:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33656
33657         * NEWS:
33658         * configure.ac:
33659         * gst/vaapisink/Makefile.am:
33660         * gst/vaapisink/gstvaapisink.c:
33661           Add GstXOverlay interface to vaapisink (e.g. for Totem).
33662
33663 2010-05-12 10:51:21 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33664
33665         * README:
33666           Update deps to match configure.ac versions.
33667
33668 2010-05-12 09:34:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33669
33670         * gst/vaapiconvert/gstvaapiconvert.c:
33671         * gst/vaapidecode/gstvaapidecode.c:
33672         * gst/vaapisink/gstvaapisink.c:
33673           Cosmetics.
33674
33675 2010-05-12 09:22:49 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33676
33677         * NEWS:
33678         * gst/vaapidecode/Makefile.am:
33679         * gst/vaapidecode/gstvaapidecode.c:
33680         * gst/vaapidecode/gstvaapidecode.h:
33681           Fix vaapidecode to expose the HW supported caps only.
33682
33683 2010-05-12 08:32:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33684
33685         * gst/vaapidecode/gstvaapidecode.c:
33686           Initialize decoder earlier.
33687
33688 2010-05-12 08:02:45 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33689
33690         * NEWS:
33691         * README:
33692         * gst/vaapidecode/gstvaapidecode.c:
33693           Fix integration within the playbin2 pipeline.
33694
33695 2010-05-12 08:02:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33696
33697         * docs/reference/libs/Makefile.am:
33698           Exclude gstvaapiutils_gst.h from docs for now.
33699
33700 2010-05-12 08:00:09 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33701
33702         * gst/vaapiconvert/gstvaapiconvert.c:
33703         * gst/vaapidecode/gstvaapidecode.c:
33704         * gst/vaapisink/gstvaapisink.c:
33705           Raise VA-API plugins ranks.
33706
33707 2010-05-12 07:57:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33708
33709         * gst-libs/gst/vaapi/Makefile.am:
33710         * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33711         * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33712           Add gst_vaapi_display_lookup_downstream() helper.
33713
33714 2010-05-11 16:23:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33715
33716         * gst/vaapidecode/gstvaapidecode.c:
33717           Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
33718
33719 2010-05-11 16:19:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33720
33721         * docs/reference/libs/libs-sections.txt:
33722         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33723         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33724         * gst/vaapisink/gstvaapisink.c:
33725           Expose VA display through GstVaapiVideoBuffer.
33726
33727 2010-05-11 16:09:49 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33728
33729         * gst/vaapidecode/gstvaapidecode.c:
33730           Simplify gst_vaapidecode_set_caps() and fix memory leak.
33731
33732 2010-05-11 12:06:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33733
33734         * docs/reference/libs/libs-sections.txt:
33735         * gst-libs/gst/vaapi/gstvaapivideopool.c:
33736         * gst-libs/gst/vaapi/gstvaapivideopool.h:
33737           Expose video pool display.
33738
33739 2010-05-11 12:03:13 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33740
33741         * gst-libs/gst/vaapi/gstvaapivideosink.c:
33742           Stop iteration if there is no more element to examine.
33743
33744 2010-05-10 09:32:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33745
33746         * gst/vaapiconvert/gstvaapiconvert.c:
33747         * gst/vaapidecode/gstvaapidecode.c:
33748         * gst/vaapisink/gstvaapisink.c:
33749           Improve plugin details.
33750
33751 2010-05-07 06:35:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33752
33753         * gst-libs/gst/vaapi/gstvaapisurface.h:
33754         * gst/vaapiconvert/gstvaapiconvert.c:
33755         * gst/vaapidecode/gstvaapidecode.c:
33756         * gst/vaapisink/gstvaapisink.c:
33757           Factor out VA surface caps.
33758
33759 2010-05-05 15:36:25 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33760
33761         * gst/vaapidecode/gstvaapidecode.c:
33762           Add gst_vaapidecode_ensure_display() helper for set-caps.
33763
33764 2010-05-05 12:57:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33765
33766         * configure.ac:
33767           Bump version for development.
33768
33769 2010-05-05 12:29:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33770
33771         * NEWS:
33772           Really make it 0.2.0.
33773
33774 2010-05-05 12:28:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33775
33776         * README:
33777           More docs.
33778
33779 2010-05-05 11:48:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33780
33781         * docs/reference/libs/Makefile.am:
33782           Don't exclude GstVaapiParamSpecs.
33783
33784 2010-05-05 11:44:06 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33785
33786         * docs/reference/libs/Makefile.am:
33787         * docs/reference/libs/libs-sections.txt:
33788         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33789         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33790           Fix docs.
33791
33792 2010-05-05 06:06:02 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33793
33794         * gst/vaapiconvert/gstvaapiconvert.c:
33795         * gst/vaapidecode/gstvaapidecode.c:
33796         * gst/vaapisink/gstvaapisink.c:
33797           Lower plugins rank for now since playbin2 auto-plugging is not working properly. User applications will have to create their own pipeline or with some hacks around playbin2.
33798
33799 2010-05-04 15:03:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33800
33801         * gst-libs/gst/vaapi/Makefile.am:
33802           Really link all helper libraries with libtool -no-undefined.
33803
33804 2010-05-04 15:02:29 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33805
33806         * gst-libs/gst/vaapi/Makefile.am:
33807           Link helper libraries with libtool -no-undefined.
33808
33809 2010-05-04 14:59:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33810
33811         * configure.ac:
33812         * debian.upstream/gstreamer-vaapi.install.in:
33813         * gst/vaapiconvert/Makefile.am:
33814         * gst/vaapidecode/Makefile.am:
33815         * gst/vaapisink/Makefile.am:
33816           Don't build plugins with SONAME. Make them plain *.so.
33817
33818 2010-05-04 08:59:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33819
33820         * README:
33821           Improve documentation for release.
33822
33823 2010-05-03 22:50:56 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33824
33825         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33826           Fix build with older VA-API 0.29.
33827
33828 2010-05-03 22:43:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33829
33830         * NEWS:
33831           0.2.0.
33832
33833 2010-05-03 22:42:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33834
33835         * tests/Makefile.am:
33836           Fix make dist.
33837
33838 2010-05-03 22:36:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33839
33840         * docs/reference/libs/Makefile.am:
33841         * docs/reference/libs/libs-docs.xml.in:
33842         * docs/reference/libs/libs-sections.txt:
33843         * docs/reference/libs/libs.core.types:
33844         * docs/reference/plugins/Makefile.am:
33845         * docs/reference/plugins/plugins-docs.xml.in:
33846         * docs/reference/plugins/plugins-sections.txt:
33847         * docs/reference/plugins/plugins.types:
33848           Add missing docs.
33849
33850 2010-05-03 22:34:53 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33851
33852         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33853           Fix doc.
33854
33855 2010-05-03 22:28:02 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33856
33857         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33858         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33859         * gst/vaapidecode/gstvaapidecode.c:
33860         * tests/test-decode.c:
33861           Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
33862
33863 2010-05-03 22:02:41 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33864
33865         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33866         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33867           Extract framerate information from caps.
33868
33869 2010-05-03 21:49:35 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33870
33871         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33872         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33873         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33874           Move caps initialization to parent class.
33875
33876 2010-05-03 21:25:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33877
33878         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33879           Simplify.
33880
33881 2010-05-03 21:25:26 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33882
33883         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33884           Fix doc.
33885
33886 2010-05-03 21:14:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33887
33888         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33889         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33890           More simplifications.
33891
33892 2010-05-03 20:55:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33893
33894         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33895         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33896         * tests/test-decode.c:
33897           Simplify GstVaapiDecoder API.
33898
33899 2010-05-03 20:40:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33900
33901         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33902           Drop obsolete defs.
33903
33904 2010-05-03 20:34:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33905
33906         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33907           Drop obsolete decls.
33908
33909 2010-05-03 17:36:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33910
33911         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33912         * gst/vaapidecode/gstvaapidecode.c:
33913           Add more aliases for MPEG-4 decoding.
33914
33915 2010-05-03 17:04:00 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33916
33917         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33918           Use avctx->coded_{width,height} info to create the VA context.
33919
33920 2010-05-03 16:54:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33921
33922         * tests/test-decode.c:
33923         * tests/test-decode.h:
33924           Use gst_vaapi_decoder_ffmpeg_new_from_caps().
33925
33926 2010-05-03 16:41:13 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33927
33928         * tests/test-decode.c:
33929         * tests/test-decode.h:
33930         * tests/test-h264.c:
33931         * tests/test-h264.h:
33932         * tests/test-mpeg2.c:
33933         * tests/test-mpeg2.h:
33934         * tests/test-vc1.c:
33935         * tests/test-vc1.h:
33936           Simplify tests info.
33937
33938 2010-05-03 16:17:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33939
33940         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33941           Try to improve heuristics to use an AVCodecContextParser.
33942
33943 2010-05-03 15:35:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33944
33945         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33946           Fix VC-1 decoding, it does not require any specific parser.
33947
33948 2010-05-03 15:34:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33949
33950         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33951           Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
33952
33953 2010-05-03 15:29:18 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33954
33955         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33956         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33957           Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
33958
33959 2010-05-03 15:11:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33960
33961         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33962         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33963         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33964         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33965         * gst/vaapidecode/gstvaapidecode.c:
33966         * gst/vaapidecode/gstvaapidecode.h:
33967           Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
33968
33969 2010-05-03 14:53:18 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33970
33971         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33972         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33973         * gst-libs/gst/vaapi/gstvaapiprofile.h:
33974           Improve WMV3 detection yet further.
33975
33976 2010-05-03 13:44:41 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33977
33978         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33979           Fix detection of plain old WMV3 contents.
33980
33981 2010-05-03 12:25:07 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33982
33983         * tests/test-vc1.c:
33984           Add End-of-Sequence start code.
33985
33986 2010-05-03 11:44:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33987
33988         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33989         * gst/vaapidecode/gstvaapidecode.c:
33990           Fix VC-1 detection.
33991
33992 2010-05-03 08:51:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33993
33994         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33995           Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
33996
33997 2010-05-03 08:34:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33998
33999         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34000         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34001           Drop obsolete (and wrong) code.
34002
34003 2010-05-03 08:33:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34004
34005         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34006           Cosmetics (spelling).
34007
34008 2010-05-03 08:32:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34009
34010         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34011         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34012         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34013           Try to fix timestamps (step 1). Looks OK on H55.
34014
34015 2010-05-03 07:10:04 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34016
34017         * debian.upstream/Makefile.am:
34018           Ship with COPYING.LIB.
34019
34020 2010-05-03 07:07:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34021
34022         * COPYING.LIB:
34023         * NEWS:
34024         * README:
34025         * gst-libs/gst/vaapi/gstvaapi_priv.h:
34026         * gst-libs/gst/vaapi/gstvaapicompat.h:
34027         * gst-libs/gst/vaapi/gstvaapicontext.c:
34028         * gst-libs/gst/vaapi/gstvaapicontext.h:
34029         * gst-libs/gst/vaapi/gstvaapidebug.h:
34030         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34031         * gst-libs/gst/vaapi/gstvaapidecoder.h:
34032         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34033         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34034         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34035         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34036         * gst-libs/gst/vaapi/gstvaapidisplay.h:
34037         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34038         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34039         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34040         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34041         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34042         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34043         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34044         * gst-libs/gst/vaapi/gstvaapiimage.c:
34045         * gst-libs/gst/vaapi/gstvaapiimage.h:
34046         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34047         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34048         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
34049         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
34050         * gst-libs/gst/vaapi/gstvaapiobject.c:
34051         * gst-libs/gst/vaapi/gstvaapiobject.h:
34052         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34053         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34054         * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
34055         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34056         * gst-libs/gst/vaapi/gstvaapiprofile.h:
34057         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34058         * gst-libs/gst/vaapi/gstvaapisurface.h:
34059         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
34060         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34061         * gst-libs/gst/vaapi/gstvaapitexture.h:
34062         * gst-libs/gst/vaapi/gstvaapitypes.h:
34063         * gst-libs/gst/vaapi/gstvaapiutils.h:
34064         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34065         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34066         * gst-libs/gst/vaapi/gstvaapivalue.h:
34067         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34068         * gst-libs/gst/vaapi/gstvaapivideopool.h:
34069         * gst-libs/gst/vaapi/gstvaapivideosink.h:
34070         * gst-libs/gst/vaapi/gstvaapiwindow.h:
34071         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34072         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34073           Relicense gst-libs/ code to LGPL v2.1+.
34074
34075 2010-05-03 06:49:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34076
34077         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34078           Drop extraneous comma.
34079
34080 2010-05-03 06:49:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34081
34082         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34083           Drop variant=itu field to help codec detection.
34084
34085 2010-04-30 15:50:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34086
34087         * gst/vaapidecode/gstvaapidecode.c:
34088           Decode as many surfaces as possible in gst_vaapidecode_step().
34089
34090 2010-04-30 15:37:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34091
34092         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34093         * gst-libs/gst/vaapi/gstvaapidecoder.h:
34094         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34095         * gst/vaapidecode/gstvaapidecode.c:
34096         * gst/vaapidecode/gstvaapidecode.h:
34097         * tests/test-decode.c:
34098           Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
34099
34100 2010-04-30 13:13:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34101
34102         * configure.ac:
34103           0.2.0.
34104
34105 2010-04-30 12:04:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34106
34107         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34108           Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
34109
34110 2010-04-30 09:52:29 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34111
34112         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34113         * gst-libs/gst/vaapi/gstvaapidisplay.h:
34114           Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
34115
34116 2010-04-30 09:48:41 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34117
34118         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34119         * gst-libs/gst/vaapi/gstvaapiprofile.h:
34120           Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
34121
34122 2010-04-30 08:18:07 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34123
34124         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34125           Document H.264 / AVC1 format case better.
34126
34127 2010-04-29 23:09:07 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34128
34129         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34130           Fix H.264 decoding with AVC1 format bitstreams.
34131
34132 2010-04-29 22:00:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34133
34134         * gst/vaapidecode/gstvaapidecode.c:
34135           Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
34136
34137 2010-04-29 21:59:14 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34138
34139         * gst/vaapisink/gstvaapisink.c:
34140           Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
34141
34142 2010-04-29 21:56:10 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34143
34144         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34145         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34146           Export gst_vaapi_video_buffer_new().
34147
34148 2010-04-29 21:12:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34149
34150         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34151           Fix gst_vaapi_profile_get_caps() to include the "profile" field.
34152
34153 2010-04-29 17:56:42 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34154
34155         * configure.ac:
34156           Fix comment.
34157
34158 2010-04-29 17:55:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34159
34160         * NEWS:
34161         * configure.ac:
34162         * gst/Makefile.am:
34163         * gst/vaapidecode/Makefile.am:
34164         * gst/vaapidecode/gstvaapidecode.c:
34165         * gst/vaapidecode/gstvaapidecode.h:
34166           Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
34167
34168 2010-04-29 17:51:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34169
34170         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34171         * gst-libs/gst/vaapi/gstvaapidecoder.h:
34172           Add gst_vaapi_decoder_pause().
34173
34174 2010-04-29 17:11:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34175
34176         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34177         * gst-libs/gst/vaapi/gstvaapidecoder.h:
34178         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34179           Use a GstTask with start/stop semantics for the decoder thread.
34180
34181 2010-04-29 16:08:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34182
34183         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34184           Drop extraneous var.
34185
34186 2010-04-29 15:45:44 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34187
34188         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34189         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34190           Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
34191
34192 2010-04-29 14:58:45 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34193
34194         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34195           Fix gst_vaapi_decoder_get_surface() status.
34196
34197 2010-04-29 14:28:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34198
34199         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34200         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34201           Try to set correct timestamps to the decoded surface proxy.
34202
34203 2010-04-29 12:52:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34204
34205         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34206         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34207         * tests/test-decode.c:
34208           Add timestamps to GstVaapiSurfaceProxy.
34209
34210 2010-04-29 09:43:40 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34211
34212         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34213           Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
34214
34215 2010-04-29 09:40:38 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34216
34217         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34218           Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
34219
34220 2010-04-29 09:35:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34221
34222         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34223           Prefer profile from codec-data if any was found there.
34224
34225 2010-04-29 09:34:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34226
34227         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34228           Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
34229
34230 2010-04-28 23:09:52 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34231
34232         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34233           Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
34234
34235 2010-04-28 22:30:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34236
34237         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34238           Fix VC-1 codec initialization, it really needs an extradata buffer.
34239
34240 2010-04-28 22:16:10 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34241
34242         * gst-libs/gst/vaapi/gstvaapidecoder.h:
34243         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34244           Split decoder creation with actual resources allocation and codec setup (probe). This fixes a memory leak (avctx, pctx) on destroy and most interestingly makes it possible to detect unsupported codecs.
34245
34246 2010-04-28 21:58:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34247
34248         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34249           Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
34250
34251 2010-04-28 21:50:44 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34252
34253         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34254         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34255         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34256         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34257         * tests/test-decode.c:
34258           Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
34259
34260 2010-04-28 21:20:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34261
34262         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34263           Cosmetics (weird indentation).
34264
34265 2010-04-28 21:15:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34266
34267         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34268           Cosmetics (extraneous variable, debug message).
34269
34270 2010-04-28 09:07:45 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34271
34272         * configure.ac:
34273           Fix check for VA-API enabled FFmpeg.
34274
34275 2010-04-27 15:26:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34276
34277         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34278         * gst-libs/gst/vaapi/gstvaapidecoder.h:
34279         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34280         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34281           - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
34282
34283 2010-04-27 11:59:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34284
34285         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34286         * gst-libs/gst/vaapi/gstvaapidecoder.h:
34287           Add more error codes. Fix documentation.
34288
34289 2010-04-26 13:30:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34290
34291         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34292           Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
34293
34294 2010-04-26 11:44:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34295
34296         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34297         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34298         * tests/test-decode.c:
34299           Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
34300
34301 2010-04-26 11:36:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34302
34303         * tests/test-vc1.c:
34304           Drop useless End-of-Sequence marker.
34305
34306 2010-04-26 08:53:18 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34307
34308         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34309           Flush stream only if avcodec_decode_video() read something. Otherwise, we might still have to seek into the stream. i.e. keep the data longer.
34310
34311 2010-04-26 08:40:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34312
34313         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34314         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34315           Use a recursive mutex so that a single thread can lock several times. This fixes decoding of MPEG-2 and H.264 because those created a GstVaapiContext later through avcodec_decode_video() that was a protected call.
34316
34317 2010-04-26 08:15:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34318
34319         * tests/test-h264.c:
34320         * tests/test-vc1.c:
34321           Regenerate correct clips.
34322
34323 2010-04-23 16:11:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34324
34325         * tests/Makefile.am:
34326         * tests/test-decode.c:
34327         * tests/test-h264.c:
34328         * tests/test-h264.h:
34329         * tests/test-mpeg2.c:
34330         * tests/test-mpeg2.h:
34331         * tests/test-vc1.c:
34332         * tests/test-vc1.h:
34333           Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
34334           XXX: only VC-1 decoding works at this time because of awful
34335           bugs left in GstVaapiDecoderFfmpeg et al.
34336
34337 2010-04-23 16:05:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34338
34339         * configure.ac:
34340         * gst-libs/gst/vaapi/Makefile.am:
34341         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34342         * gst-libs/gst/vaapi/gstvaapidecoder.h:
34343         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34344         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34345         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34346           Add initial (multithreaded) decoder based on FFmpeg.
34347           There are tons of bugs left:
34348           - Decoder API not nice enough with error conditions
34349           - FFmpeg parser is sometimes broken
34350           - Packets queue can be lost
34351
34352 2010-04-23 16:00:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34353
34354         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34355         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34356           Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
34357
34358 2010-04-23 15:59:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34359
34360         * gst-libs/gst/vaapi/gstvaapicontext.c:
34361         * gst-libs/gst/vaapi/gstvaapicontext.h:
34362           Add VA context abstraction.
34363
34364 2010-04-23 10:58:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34365
34366         * gst-libs/gst/vaapi/gstvaapiprofile.h:
34367           Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
34368
34369 2010-04-21 15:03:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34370
34371         * gst-libs/gst/vaapi/gstvaapivideopool.c:
34372         * gst-libs/gst/vaapi/gstvaapivideopool.h:
34373           Add a means to cap the number of objects allocated in the pool.
34374
34375 2010-04-21 15:02:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34376
34377         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34378         * gst-libs/gst/vaapi/gstvaapiprofile.h:
34379           Add VA entrypoint abstraction.
34380
34381 2010-04-20 13:36:04 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34382
34383         * docs/reference/libs/libs-docs.xml.in:
34384         * docs/reference/libs/libs-sections.txt:
34385         * gst-libs/gst/vaapi/Makefile.am:
34386         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34387         * gst-libs/gst/vaapi/gstvaapidisplay.h:
34388         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34389         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34390         * gst-libs/gst/vaapi/gstvaapiprofile.h:
34391         * tests/test-display.c:
34392           Add VA profile abstraction.
34393
34394 2010-04-20 07:51:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34395
34396         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34397           Fix OpenGL rendering on G45 systems.
34398
34399 2010-04-16 13:47:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34400
34401         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34402           Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
34403
34404 2010-04-02 11:27:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34405
34406         * gst-libs/gst/vaapi/gstvaapitexture.c:
34407         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34408         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34409           Fix TFP logic and simplify the FBO model. i.e. it's not necessary to create another texture (and storage) for the TFP, simply a new texture name.
34410
34411 2010-04-01 16:11:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34412
34413         * gst-libs/gst/vaapi/gstvaapitexture.c:
34414           Fix get-out conditions.
34415
34416 2010-04-01 15:38:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34417
34418         * gst-libs/gst/vaapi/gstvaapitexture.c:
34419         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34420           The shared GL context in GstVaapiTexture is only useful for cases where TFP+FBO are used, thus avoiding the need fully preserve the states and call into glGet*() functions that need synchronization.
34421
34422 2010-04-01 13:55:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34423
34424         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34425           Shorter structs.
34426
34427 2010-04-01 13:41:24 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34428
34429         * docs/reference/libs/libs-sections.txt:
34430         * gst-libs/gst/vaapi/Makefile.am:
34431         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34432         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34433         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34434         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34435         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34436         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34437         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34438         * gst-libs/gst/vaapi/gstvaapitexture.c:
34439         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34440         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34441         * tests/test-windows.c:
34442           Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
34443
34444 2010-04-01 09:47:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34445
34446         * gst-libs/gst/vaapi/Makefile.am:
34447         * gst-libs/gst/vaapi/gstvaapi_priv.h:
34448         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34449         * gst-libs/gst/vaapi/gstvaapidisplay.h:
34450         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34451         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34452         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34453         * gst-libs/gst/vaapi/gstvaapiimage.c:
34454         * gst-libs/gst/vaapi/gstvaapiobject.c:
34455         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34456         * gst-libs/gst/vaapi/gstvaapisurface.c:
34457         * gst-libs/gst/vaapi/gstvaapitexture.c:
34458         * gst-libs/gst/vaapi/gstvaapiwindow.c:
34459         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34460         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34461           Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
34462
34463 2010-03-31 15:25:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34464
34465         * gst-libs/gst/vaapi/gstvaapitexture.c:
34466         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34467         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34468         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34469           Improve handling of GL contexts.
34470
34471 2010-03-30 16:41:21 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34472
34473         * configure.ac:
34474           Simplify summary.
34475
34476 2010-03-30 13:33:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34477
34478         * configure.ac:
34479           Bump version for development.
34480
34481 2010-03-30 13:29:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34482
34483         * configure.ac:
34484         * debian.upstream/Makefile.am:
34485         * debian.upstream/control.in:
34486           Rename -dev package to libgstvaapi-dev.
34487
34488 2010-03-30 13:17:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34489
34490         * NEWS:
34491         * README:
34492           Updates.
34493
34494 2010-03-30 13:05:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34495
34496         * gst-libs/gst/vaapi/gstvaapiutils.c:
34497           Fix build with VA-API < 0.30.
34498
34499 2010-03-30 13:01:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34500
34501         * configure.ac:
34502         * gst-libs/gst/vaapi/gstvaapicompat.h:
34503         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34504         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34505         * gst-libs/gst/vaapi/gstvaapitexture.c:
34506         * tests/test-display.c:
34507           Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
34508
34509 2010-03-30 12:59:15 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34510
34511         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34512         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34513           Add TFP and FBO helpers.
34514
34515 2010-03-30 12:55:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34516
34517         * gst-libs/gst/vaapi/gstvaapiutils.c:
34518         * gst-libs/gst/vaapi/gstvaapiutils.h:
34519           Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
34520
34521 2010-03-30 08:13:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34522
34523         * gst-libs/gst/vaapi/gstvaapitexture.c:
34524         * gst-libs/gst/vaapi/gstvaapiutils.c:
34525         * gst-libs/gst/vaapi/gstvaapiutils.h:
34526         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34527           Use a shorter function name.
34528
34529 2010-03-30 08:11:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34530
34531         * docs/reference/libs/libs-sections.txt:
34532         * gst-libs/gst/vaapi/gstvaapisurface.c:
34533         * gst-libs/gst/vaapi/gstvaapisurface.h:
34534         * gst-libs/gst/vaapi/gstvaapiutils.c:
34535         * gst-libs/gst/vaapi/gstvaapiutils.h:
34536           Add gst_vaapi_surface_query_status() wrapper.
34537
34538 2010-03-30 07:50:11 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34539
34540         * docs/reference/plugins/Makefile.am:
34541           Fix leftover during migration.
34542
34543 2010-03-30 07:46:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34544
34545         * Makefile.am:
34546         * configure.ac:
34547         * docs/reference/plugins/Makefile.am:
34548         * gst/Makefile.am:
34549         * gst/vaapiconvert/Makefile.am:
34550         * gst/vaapiconvert/gstvaapiconvert.c:
34551         * gst/vaapiconvert/gstvaapiconvert.h:
34552         * gst/vaapisink/Makefile.am:
34553         * gst/vaapisink/gstvaapisink.c:
34554         * gst/vaapisink/gstvaapisink.h:
34555           Rename to gst/ as sys/ was too vague.
34556
34557 2010-03-30 07:39:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34558
34559         * gst-libs/gst/vaapi/gstvaapiimage.c:
34560         * gst-libs/gst/vaapi/gstvaapiimage.h:
34561         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34562         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34563         * gst-libs/gst/vaapi/gstvaapisurface.c:
34564         * gst-libs/gst/vaapi/gstvaapisurface.h:
34565           Try to not reference VA-API types directly.
34566
34567 2010-03-29 16:24:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34568
34569         * sys/vaapisink/gstvaapisink.c:
34570           Fix reflection code to preserve aspect ratio.
34571
34572 2010-03-29 16:17:38 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34573
34574         * sys/vaapisink/gstvaapisink.c:
34575         * sys/vaapisink/gstvaapisink.h:
34576           Fix fullscreen mode.
34577
34578 2010-03-29 15:59:44 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34579
34580         * sys/vaapisink/gstvaapisink.c:
34581         * sys/vaapisink/gstvaapisink.h:
34582           Add OpenGL reflection effect ("use-reflection").
34583
34584 2010-03-29 15:51:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34585
34586         * configure.ac:
34587         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34588           Use a projection suitable for rotation around the Y axis.
34589
34590 2010-03-29 15:03:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34591
34592         * configure.ac:
34593         * sys/vaapisink/Makefile.am:
34594         * sys/vaapisink/gstvaapisink.c:
34595         * sys/vaapisink/gstvaapisink.h:
34596           Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
34597
34598 2010-03-29 14:50:52 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34599
34600         * configure.ac:
34601         * debian.upstream/Makefile.am:
34602         * debian.upstream/control.in:
34603         * debian.upstream/libgstvaapi-glx.install.in:
34604           Add libgstvaapi-glx-0 package.
34605
34606 2010-03-29 14:47:49 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34607
34608         * pkgconfig/Makefile.am:
34609           Really fix make distclean.
34610
34611 2010-03-29 14:43:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34612
34613         * docs/reference/libs/Makefile.am:
34614           Fix make dist.
34615
34616 2010-03-29 14:42:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34617
34618         * pkgconfig/Makefile.am:
34619           Fix make distclean.
34620
34621 2010-03-29 14:40:26 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34622
34623         * tests/Makefile.am:
34624           Fix make dist.
34625
34626 2010-03-29 14:31:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34627
34628         * docs/reference/libs/Makefile.am:
34629         * docs/reference/libs/libs.core.types:
34630         * docs/reference/libs/libs.glx.types:
34631         * docs/reference/libs/libs.x11.types:
34632           Fix doc build.
34633
34634 2010-03-29 14:21:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34635
34636         * sys/vaapisink/gstvaapisink.h:
34637           Fix build without GLX.
34638
34639 2010-03-29 14:13:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34640
34641         * NEWS:
34642           0.1.2.
34643
34644 2010-03-29 14:13:26 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34645
34646         * sys/vaapisink/Makefile.am:
34647         * sys/vaapisink/gstvaapisink.c:
34648         * sys/vaapisink/gstvaapisink.h:
34649           Add VA/GLX support to vaapisink.
34650
34651 2010-03-29 13:40:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34652
34653         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34654         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34655         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34656           Add glXSwapBuffers() workaround for NVIDIA.
34657
34658 2010-03-29 13:27:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34659
34660         * tests/Makefile.am:
34661         * tests/test-textures.c:
34662           Improve VA/GLX textures test.
34663
34664 2010-03-29 12:51:38 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34665
34666         * gst-libs/gst/vaapi/gstvaapitexture.c:
34667         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34668         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34669           Fix texture rendering.
34670
34671 2010-03-29 11:25:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34672
34673         * docs/reference/libs/libs-docs.xml.in:
34674         * docs/reference/libs/libs-sections.txt:
34675         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34676         * gst-libs/gst/vaapi/gstvaapitexture.c:
34677           Fix documentation.
34678
34679 2010-03-29 10:40:26 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34680
34681         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34682         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34683           Add gst_vaapi_window_glx_put_texture() helper.
34684
34685 2010-03-29 09:09:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34686
34687         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34688           Fix typos.
34689
34690 2010-03-26 17:00:45 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34691
34692         * tests/image.c:
34693         * tests/image.h:
34694         * tests/test-windows.c:
34695           Move code around.
34696
34697 2010-03-26 16:52:07 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34698
34699         * gst-libs/gst/vaapi/Makefile.am:
34700         * gst-libs/gst/vaapi/gstvaapitexture.c:
34701         * gst-libs/gst/vaapi/gstvaapitexture.h:
34702         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34703         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34704           Add initial VA/GLX texture abstraction though the API is not good enough yet.
34705
34706 2010-03-26 15:22:00 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34707
34708         * docs/reference/libs/libs-sections.txt:
34709         * gst-libs/gst/vaapi/gstvaapiobject.c:
34710         * gst-libs/gst/vaapi/gstvaapiobject.h:
34711           Add gst_vaapi_object_{,un}lock_display() helpers.
34712
34713 2010-03-26 15:16:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34714
34715         * tests/Makefile.am:
34716         * tests/image.c:
34717         * tests/image.h:
34718         * tests/test-windows.c:
34719           Factor out image utilities.
34720
34721 2010-03-26 11:54:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34722
34723         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34724           MT-Safe: lock display.
34725
34726 2010-03-26 11:50:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34727
34728         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34729           Make sure window resize completed prior to resizing the GL viewport.
34730
34731 2010-03-26 11:39:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34732
34733         * gst-libs/gst/vaapi/Makefile.am:
34734           gstvaapicompat.h is a private header, don't install it.
34735
34736 2010-03-26 11:35:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34737
34738         * docs/reference/libs/libs-sections.txt:
34739         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34740         * gst-libs/gst/vaapi/gstvaapidisplay.h:
34741         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34742           Add gst_vaapi_display_{sync,flush}() helpers.
34743
34744 2010-03-26 11:30:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34745
34746         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34747         * sys/vaapisink/gstvaapisink.c:
34748         * sys/vaapisink/gstvaapisink.h:
34749           Add "synchronous" mode.
34750
34751 2010-03-26 11:02:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34752
34753         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34754         * gst-libs/gst/vaapi/gstvaapidisplay.h:
34755           Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
34756
34757 2010-03-26 10:09:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34758
34759         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34760           Restore GLX context only if there is one.
34761
34762 2010-03-26 09:41:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34763
34764         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34765         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34766         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34767         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34768           Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
34769
34770 2010-03-26 08:35:24 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34771
34772         * gst-libs/gst/vaapi/gstvaapiwindow.c:
34773           Check GstVaapiWindow::render() is available prior to calling it.
34774
34775 2010-03-26 08:10:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34776
34777         * tests/Makefile.am:
34778         * tests/test-display.c:
34779         * tests/test-textures.c:
34780           Add VA/GLX display tests.
34781
34782 2010-03-26 08:00:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34783
34784         * configure.ac:
34785         * gst-libs/gst/vaapi/Makefile.am:
34786           Fix compile flags.
34787
34788 2010-03-25 17:39:06 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34789
34790         * docs/reference/libs/Makefile.am:
34791         * docs/reference/libs/libs-docs.xml.in:
34792         * docs/reference/libs/libs-sections.txt:
34793         * docs/reference/libs/libs.types:
34794           Add missing API documentation.
34795
34796 2010-03-25 17:28:49 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34797
34798         * configure.ac:
34799         * gst-libs/gst/vaapi/Makefile.am:
34800         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34801         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34802         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34803         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34804         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34805         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34806         * pkgconfig/Makefile.am:
34807         * pkgconfig/gstreamer-vaapi-glx.pc.in:
34808         * tests/Makefile.am:
34809         * tests/test-textures.c:
34810           Add initial VA/GLX support.
34811
34812 2010-03-25 17:21:56 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34813
34814         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34815           Add missing includes (for vaapi_check_status()).
34816
34817 2010-03-25 17:21:13 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34818
34819         * gst-libs/gst/vaapi/gstvaapidebug.h:
34820           Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
34821
34822 2010-03-25 17:18:36 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34823
34824         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34825         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34826           Add gst_vaapi_window_x11_is_foreign_xid() helper.
34827
34828 2010-03-25 17:18:06 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34829
34830         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34831         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34832         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34833         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34834           Allow derived classes to specify custom Visual and Colormap.
34835
34836 2010-03-25 13:54:06 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34837
34838         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34839         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34840         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34841           Allow window creation with a specific visual (e.g. for GLX support).
34842
34843 2010-03-25 13:21:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34844
34845         * gst-libs/gst/vaapi/gstvaapiimage.c:
34846           Fix return value on error (though it's the same in the end).
34847
34848 2010-03-25 12:39:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34849
34850         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34851         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34852           Simplify initialization of VADisplay.
34853
34854 2010-03-25 10:04:39 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34855
34856         * configure.ac:
34857           Move __attribute__((visibility("hidden"))) check down.
34858
34859 2010-03-25 09:49:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34860
34861         * docs/reference/libs/libs-sections.txt:
34862         * gst-libs/gst/vaapi/gstvaapiimage.c:
34863         * gst-libs/gst/vaapi/gstvaapiimage.h:
34864         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34865         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34866         * gst-libs/gst/vaapi/gstvaapisurface.c:
34867         * gst-libs/gst/vaapi/gstvaapisurface.h:
34868         * tests/test-surfaces.c:
34869           Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
34870
34871 2010-03-25 09:39:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34872
34873         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34874           Use the parent display object, no need to maintain another one.
34875           In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
34876
34877 2010-03-25 09:37:40 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34878
34879         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34880           Add more internal helpers.
34881
34882 2010-03-24 17:40:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34883
34884         * gst-libs/gst/vaapi/gstvaapiimage.c:
34885         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34886         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34887         * gst-libs/gst/vaapi/gstvaapisurface.c:
34888         * gst-libs/gst/vaapi/gstvaapiwindow.c:
34889         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34890           Rename to GST_VAAPI_OBJECT_DISPLAY().
34891
34892 2010-03-24 17:38:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34893
34894         * docs/reference/libs/libs-sections.txt:
34895         * gst-libs/gst/vaapi/gstvaapiimage.c:
34896         * gst-libs/gst/vaapi/gstvaapiobject.c:
34897         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34898         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34899         * gst-libs/gst/vaapi/gstvaapisurface.c:
34900         * gst-libs/gst/vaapi/gstvaapitypes.h:
34901         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34902           All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
34903
34904 2010-03-24 17:22:18 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34905
34906         * gst-libs/gst/vaapi/gstvaapiwindow.c:
34907         * gst-libs/gst/vaapi/gstvaapiwindow.h:
34908         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34909           Make GstVaapiWindow* derive from GstVaapiObject.
34910
34911 2010-03-24 16:37:35 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34912
34913         * configure.ac:
34914           Factor out use gstreamer-vaapi (PACKAGE name).
34915
34916 2010-03-24 16:35:36 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34917
34918         * configure.ac:
34919           Improve versioning summary.
34920
34921 2010-03-24 16:27:36 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34922
34923         * gst-libs/gst/vaapi/Makefile.am:
34924           gstvaapicompat.h is now a private header (not installed).
34925
34926 2010-03-24 16:25:56 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34927
34928         * gst-libs/gst/vaapi/gstvaapiimage.c:
34929         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34930         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34931         * gst-libs/gst/vaapi/gstvaapiobject.c:
34932         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34933         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34934           Include gstvaapicompat.h in source files only, not headers.
34935
34936 2010-03-24 16:21:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34937
34938         * configure.ac:
34939         * gst-libs/gst/vaapi/Makefile.am:
34940         * sys/vaapiconvert/Makefile.am:
34941         * sys/vaapisink/Makefile.am:
34942         * tests/Makefile.am:
34943           Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
34944
34945 2010-03-24 16:17:49 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34946
34947         * NEWS:
34948         * configure.ac:
34949         * gst-libs/gst/vaapi/Makefile.am:
34950         * gst-libs/gst/vaapi/gstvaapicompat.h:
34951         * gst-libs/gst/vaapi/gstvaapidisplay.h:
34952         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34953         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34954         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34955         * gst-libs/gst/vaapi/gstvaapisurface.c:
34956         * gst-libs/gst/vaapi/gstvaapiutils.c:
34957         * gst-libs/gst/vaapi/gstvaapiutils.h:
34958         * pkgconfig/gstreamer-vaapi-x11.pc.in:
34959         * pkgconfig/gstreamer-vaapi.pc.in:
34960         * sys/vaapiconvert/Makefile.am:
34961         * sys/vaapisink/Makefile.am:
34962         * tests/Makefile.am:
34963           Add compatibility with the original VA-API 0.29.
34964
34965 2010-03-24 15:18:33 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34966
34967         * gst-libs/gst/vaapi/gstvaapivalue.h:
34968           Add missing file (gstvaapivalue.h).
34969
34970 2010-03-24 15:12:56 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34971
34972         * gst-libs/gst/vaapi/gstvaapiimage.c:
34973         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34974         * gst-libs/gst/vaapi/gstvaapisurface.c:
34975           Fix g_warning() invocation.
34976
34977 2010-03-24 15:11:26 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34978
34979         * gst-libs/gst/vaapi/gstvaapisurface.c:
34980           Deassociate subpictures while destroying the surface.
34981
34982 2010-03-24 14:57:33 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34983
34984         * gst-libs/gst/vaapi/gstvaapisurface.c:
34985           Fix destruction order of subpictures. They should be destroyed first.
34986
34987 2010-03-24 14:46:33 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34988
34989         * NEWS:
34990         * gst-libs/gst/vaapi/gstvaapiimage.c:
34991         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34992         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34993         * tests/test-windows.c:
34994           Add support for AYUV format.
34995
34996 2010-03-24 14:36:39 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34997
34998         * tests/test-windows.c:
34999           Simplify upload process and fallback to subpictures.
35000
35001 2010-03-24 13:44:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35002
35003         * docs/reference/libs/libs-docs.xml.in:
35004         * docs/reference/libs/libs-sections.txt:
35005         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35006           Fix documentation.
35007
35008 2010-03-24 13:37:38 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35009
35010         * gst-libs/gst/vaapi/Makefile.am:
35011         * gst-libs/gst/vaapi/gstvaapiobject.c:
35012         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35013         * gst-libs/gst/vaapi/gstvaapitypes.h:
35014         * gst-libs/gst/vaapi/gstvaapivalue.c:
35015           Move GValue specific stuff to a dedicated file.
35016
35017 2010-03-24 13:22:25 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35018
35019         * tests/test-surfaces.c:
35020           Cosmetics (lowercase for consistency).
35021
35022 2010-03-24 13:21:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35023
35024         * gst-libs/gst/vaapi/gstvaapiobject.c:
35025           Cosmetics (vertical alignment).
35026
35027 2010-03-24 13:20:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35028
35029         * gst-libs/gst/vaapi/gstvaapiobject.c:
35030           Fix return value on error.
35031
35032 2010-03-24 13:19:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35033
35034         * docs/reference/libs/libs-sections.txt:
35035         * gst-libs/gst/vaapi/gstvaapiimage.c:
35036         * gst-libs/gst/vaapi/gstvaapiimage.h:
35037         * gst-libs/gst/vaapi/gstvaapiobject.c:
35038         * gst-libs/gst/vaapi/gstvaapiobject.h:
35039         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35040         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35041         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35042         * gst-libs/gst/vaapi/gstvaapisurface.c:
35043         * gst-libs/gst/vaapi/gstvaapisurface.h:
35044         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35045         * tests/test-surfaces.c:
35046           Move "id" down to the GstVaapiObject base.
35047
35048 2010-03-24 12:59:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35049
35050         * gst-libs/gst/vaapi/gstvaapitypes.c:
35051           Cosmetics (drop extraneous empty line).
35052
35053 2010-03-24 12:57:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35054
35055         * gst-libs/gst/vaapi/Makefile.am:
35056         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
35057         * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
35058           Add GParamSpecs for GstVaapiID.
35059
35060 2010-03-24 12:54:52 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35061
35062         * docs/reference/libs/libs.types:
35063           Drop gst_vaapi_id_get_type().
35064
35065 2010-03-24 12:38:40 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35066
35067         * docs/reference/libs/libs-sections.txt:
35068         * gst-libs/gst/vaapi/gstvaapitypes.h:
35069           Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
35070
35071 2010-03-24 09:52:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35072
35073         * docs/reference/libs/libs-sections.txt:
35074         * docs/reference/libs/libs.types:
35075         * gst-libs/gst/vaapi/Makefile.am:
35076         * gst-libs/gst/vaapi/gstvaapitypes.c:
35077         * gst-libs/gst/vaapi/gstvaapitypes.h:
35078           Add GstVaapiID abstraction.
35079
35080 2010-03-24 09:22:00 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35081
35082         * docs/reference/libs/libs.types:
35083           Sort types.
35084
35085 2010-03-24 08:35:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35086
35087         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35088         * gst-libs/gst/vaapi/gstvaapiimage.c:
35089         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35090         * gst-libs/gst/vaapi/gstvaapisurface.c:
35091           Drop useless include (<va/va_backend.h>).
35092
35093 2010-03-24 08:34:11 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35094
35095         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35096           Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
35097
35098 2010-03-24 08:32:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35099
35100         * gst-libs/gst/vaapi/Makefile.am:
35101         * gst-libs/gst/vaapi/gstvaapiimage.c:
35102         * gst-libs/gst/vaapi/gstvaapiobject.c:
35103         * gst-libs/gst/vaapi/gstvaapiobject.h:
35104         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
35105         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35106         * gst-libs/gst/vaapi/gstvaapisurface.c:
35107         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35108           Move private definitions and accessors to gstvaapiobject_priv.h.
35109
35110 2010-03-24 08:16:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35111
35112         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35113         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35114         * gst-libs/gst/vaapi/gstvaapiimage.c:
35115         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35116         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35117         * gst-libs/gst/vaapi/gstvaapiobject.c:
35118         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35119         * gst-libs/gst/vaapi/gstvaapisurface.c:
35120         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35121         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35122         * gst-libs/gst/vaapi/gstvaapivideopool.c:
35123         * gst-libs/gst/vaapi/gstvaapivideosink.c:
35124         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35125         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35126           Fix short descriptions.
35127
35128 2010-03-23 18:45:09 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35129
35130         * Makefile.am:
35131         * configure.ac:
35132         * debian.upstream/Makefile.am:
35133         * debian.upstream/changelog.in:
35134         * debian.upstream/compat:
35135         * debian.upstream/control.in:
35136         * debian.upstream/copyright:
35137         * debian.upstream/gstreamer-vaapi-doc.install.in:
35138         * debian.upstream/gstreamer-vaapi.install.in:
35139         * debian.upstream/libgstvaapi-dev.install.in:
35140         * debian.upstream/libgstvaapi-x11.install.in:
35141         * debian.upstream/libgstvaapi.install.in:
35142         * debian.upstream/rules:
35143           Generate upstream packages through make deb.upstream.
35144
35145 2010-03-23 17:40:03 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35146
35147         * configure.ac:
35148           Bump version for development.
35149
35150 2010-03-23 17:29:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35151
35152         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35153           Use a black background for new windows.
35154
35155 2010-03-23 17:18:35 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35156
35157         * NEWS:
35158           0.1.1.
35159
35160 2010-03-23 17:12:40 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35161
35162         * configure.ac:
35163         * docs/reference/libs/libs.types:
35164         * gst-libs/gst/vaapi/Makefile.am:
35165         * gst-libs/gst/vaapi/gstvaapimarshal.list:
35166         * gst-libs/gst/vaapi/gstvaapiobject.c:
35167         * gst-libs/gst/vaapi/gstvaapiobject.h:
35168         * tests/test-surfaces.c:
35169           Add "destroy" signal.
35170
35171 2010-03-23 16:25:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35172
35173         * docs/reference/libs/libs-docs.xml.in:
35174           Improve gst-plugins-vaapi Library reference template.
35175
35176 2010-03-23 16:21:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35177
35178         * docs/reference/libs/libs-docs.xml.in:
35179         * docs/reference/libs/libs-sections.txt:
35180         * gst-libs/gst/vaapi/Makefile.am:
35181         * gst-libs/gst/vaapi/gstvaapiimage.c:
35182         * gst-libs/gst/vaapi/gstvaapiimage.h:
35183         * gst-libs/gst/vaapi/gstvaapiobject.c:
35184         * gst-libs/gst/vaapi/gstvaapiobject.h:
35185         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35186         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35187         * gst-libs/gst/vaapi/gstvaapisurface.c:
35188         * gst-libs/gst/vaapi/gstvaapisurface.h:
35189         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35190           Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
35191
35192 2010-03-23 16:11:21 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35193
35194         * sys/vaapisink/gstvaapisink.c:
35195           Fix return value.
35196
35197 2010-03-23 15:34:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35198
35199         * sys/vaapisink/gstvaapisink.c:
35200           Make sure VA display is valid when created with an explicit "display" name.
35201
35202 2010-03-23 15:28:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35203
35204         * sys/vaapisink/gstvaapisink.c:
35205           Use plain "display" property for the X11 display name.
35206
35207 2010-03-23 15:22:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35208
35209         * sys/vaapiconvert/gstvaapiconvert.c:
35210         * sys/vaapisink/gstvaapisink.c:
35211           Document vaapiconvert & vaapisink plugins.
35212
35213 2010-03-23 14:19:21 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35214
35215         * configure.ac:
35216         * docs/reference/Makefile.am:
35217         * docs/reference/plugins/Makefile.am:
35218         * docs/reference/plugins/plugins-docs.xml.in:
35219         * docs/reference/plugins/plugins-overrides.txt:
35220         * docs/reference/plugins/plugins-sections.txt:
35221         * docs/reference/plugins/plugins.types:
35222           Add plugins documentation template.
35223
35224 2010-03-23 14:06:42 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35225
35226         * sys/vaapisink/gstvaapisink.c:
35227         * sys/vaapisink/gstvaapisink.h:
35228           Don't export gst_vaapisink_get_display().
35229
35230 2010-03-23 13:32:36 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35231
35232         * configure.ac:
35233         * docs/reference/libs/libs-docs.xml.in:
35234         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35235         * gst-libs/gst/vaapi/gstvaapiimage.c:
35236         * gst-libs/gst/vaapi/gstvaapisurface.c:
35237         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35238           Drop introspection annotations since they require gtk-doc >= 1.12.
35239
35240 2010-03-23 10:51:35 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35241
35242         * gst-libs/gst/vaapi/gstvaapisurface.c:
35243           Add note about the fact that the surface holds an extra reference to the subpicture.
35244
35245 2010-03-23 10:49:33 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35246
35247         * gst-libs/gst/vaapi/gstvaapiimage.c:
35248         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35249         * gst-libs/gst/vaapi/gstvaapisurface.c:
35250           Improve debugging messages.
35251
35252 2010-03-23 10:48:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35253
35254         * tests/test-windows.c:
35255           Unref subpicture earlier as the surface is supposed to hold a reference to it.
35256
35257 2010-03-23 10:36:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35258
35259         * docs/reference/libs/libs-sections.txt:
35260         * gst-libs/gst/vaapi/gstvaapisurface.c:
35261         * gst-libs/gst/vaapi/gstvaapisurface.h:
35262         * tests/test-windows.c:
35263           Add gst_vaapi_surface_{,de}associate_subpicture() API.
35264
35265 2010-03-23 08:13:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35266
35267         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35268           Wait for MapNotify or UnmapNotify events on foreign windows too.
35269
35270 2010-03-23 07:42:05 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35271
35272         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35273           Check whether the foreign XID is mapped at binding time.
35274
35275 2010-03-23 07:34:15 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35276
35277         * sys/vaapisink/gstvaapisink.c:
35278           Add missing includes.
35279
35280 2010-03-23 07:31:04 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35281
35282         * configure.ac:
35283         * debian/Makefile.am:
35284         * debian/control.in:
35285         * debian/gstreamer-vaapi-doc.install.in:
35286         * debian/rules:
35287           Add -doc package.
35288
35289 2010-03-23 06:41:29 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35290
35291         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35292           Fix warnings (drop extraneous var).
35293
35294 2010-03-23 06:40:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35295
35296         * docs/reference/libs/libs-sections.txt:
35297         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35298           Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
35299
35300 2010-03-22 16:59:29 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35301
35302         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35303           Shorten condition.
35304
35305 2010-03-22 16:57:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35306
35307         * gst-libs/gst/vaapi/Makefile.am:
35308         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35309         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35310         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35311         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35312           Try to improve switch to fullscreen mode.
35313
35314 2010-03-22 16:01:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35315
35316         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35317         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35318         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35319           Improve display locking and rework X event wait functions.
35320
35321 2010-03-22 13:06:41 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35322
35323         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35324         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35325           Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
35326
35327 2010-03-22 13:05:05 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35328
35329         * gst-libs/gst/vaapi/Makefile.am:
35330         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35331         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35332           Add private API to set window size & fullscreen modes without triggering any notification or virtual functions. This is useful for derived class to fix up sizes whenever appropriate.
35333
35334 2010-03-22 12:47:13 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35335
35336         * docs/reference/libs/libs-sections.txt:
35337         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35338         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35339           Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
35340
35341 2010-03-22 12:39:02 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35342
35343         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35344         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35345         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35346           Add gst_vaapi_window_get_display() to base.
35347
35348 2010-03-22 12:16:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35349
35350         * docs/reference/libs/libs-docs.xml.in:
35351         * docs/reference/libs/libs-sections.txt:
35352         * gst-libs/gst/vaapi/Makefile.am:
35353         * gst-libs/gst/vaapi/gstvaapitypes.h:
35354         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35355         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35356         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35357         * sys/vaapisink/gstvaapisink.c:
35358         * sys/vaapisink/gstvaapisink.h:
35359           Add GstVaapiPoint & GstVaapiRectangle data structures.
35360
35361 2010-03-22 12:05:11 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35362
35363         * NEWS:
35364           0.1.1.
35365
35366 2010-03-22 12:03:26 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35367
35368         * NEWS:
35369         * sys/vaapisink/gstvaapisink.c:
35370         * sys/vaapisink/gstvaapisink.h:
35371           Allow `vaapisink` to render videos in fullscreen mode.
35372
35373 2010-03-22 10:51:49 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35374
35375         * docs/reference/libs/libs-sections.txt:
35376         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35377         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35378         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35379           Add gst_vaapi_window_set_fullscreen() API.
35380
35381 2010-03-22 10:03:24 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35382
35383         * sys/vaapisink/gstvaapisink.c:
35384           Size window so that to respect the video and pixel aspect ratio.
35385
35386 2010-03-22 09:32:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35387
35388         * docs/reference/libs/libs-sections.txt:
35389         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35390         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35391         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35392         * tests/test-display.c:
35393           Add gst_vaapi_display_get_pixel_aspect_ratio().
35394
35395 2010-03-22 08:45:03 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35396
35397         * docs/reference/libs/libs-sections.txt:
35398           Updates.
35399
35400 2010-03-22 08:44:38 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35401
35402         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35403         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35404         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35405         * tests/test-display.c:
35406           Add display size accessors.
35407
35408 2010-03-22 08:03:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35409
35410         * configure.ac:
35411         * debian/control.in:
35412           Build-Requires: gstreamer-plugins-base >= 0.10.16.
35413
35414 2010-03-21 08:45:09 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35415
35416         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35417         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35418         * gst-libs/gst/vaapi/gstvaapiimage.h:
35419         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35420         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35421         * gst-libs/gst/vaapi/gstvaapisurface.h:
35422         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35423         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35424         * gst-libs/gst/vaapi/gstvaapivideopool.h:
35425         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35426         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35427           Fix documentation of *Class'es.
35428
35429 2010-03-21 08:38:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35430
35431         * gst-libs/gst/vaapi/gstvaapiutils.c:
35432         * gst-libs/gst/vaapi/gstvaapiutils.h:
35433         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35434           Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
35435
35436 2010-03-21 08:22:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35437
35438         * docs/reference/libs/libs-sections.txt:
35439         * gst-libs/gst/vaapi/gstvaapisurface.h:
35440         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35441           Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
35442
35443 2010-03-21 08:12:52 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35444
35445         * docs/reference/libs/libs-sections.txt:
35446         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35447         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35448         * sys/vaapisink/gstvaapisink.c:
35449         * tests/test-windows.c:
35450           Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
35451
35452 2010-03-19 17:15:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35453
35454         * docs/reference/libs/Makefile.am:
35455           Fix make dist for --enable-gtk-doc builds.
35456
35457 2010-03-19 17:13:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35458
35459         * autogen.sh:
35460           Improve autogen.sh.
35461
35462 2010-03-19 17:11:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35463
35464         * Makefile.am:
35465         * autogen.sh:
35466           Generate gtk-doc.make from gtkdocize.
35467
35468 2010-03-19 17:04:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35469
35470         * Makefile.am:
35471         * NEWS:
35472         * configure.ac:
35473         * docs/Makefile.am:
35474         * docs/reference/Makefile.am:
35475         * docs/reference/libs/Makefile.am:
35476         * docs/reference/libs/libs-docs.xml.in:
35477         * docs/reference/libs/libs-overrides.txt:
35478         * docs/reference/libs/libs-sections.txt:
35479         * docs/reference/libs/libs.types:
35480           Document public API for libgstvaapi-*.so.*.
35481
35482 2010-03-19 16:41:52 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35483
35484         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35485         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35486           Document GstVaapiVideoBuffer.
35487
35488 2010-03-19 16:08:48 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35489
35490         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35491         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35492         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35493         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35494         * gst-libs/gst/vaapi/gstvaapivideopool.c:
35495         * gst-libs/gst/vaapi/gstvaapivideopool.h:
35496           Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
35497
35498 2010-03-19 15:45:21 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35499
35500         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35501         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35502         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35503         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35504         * gst-libs/gst/vaapi/gstvaapiimage.c:
35505         * gst-libs/gst/vaapi/gstvaapiimage.h:
35506         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35507         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35508         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35509         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35510         * gst-libs/gst/vaapi/gstvaapisurface.c:
35511         * gst-libs/gst/vaapi/gstvaapisurface.h:
35512         * gst-libs/gst/vaapi/gstvaapivideosink.c:
35513         * gst-libs/gst/vaapi/gstvaapivideosink.h:
35514         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35515         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35516         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35517         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35518           Add tedious documentation.
35519
35520 2010-03-19 10:42:11 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35521
35522         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35523           Beautify append_formats().
35524
35525 2010-03-19 10:38:45 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35526
35527         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35528           Simplify GstVaapiDisplay (use GArray).
35529
35530 2010-03-19 08:42:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35531
35532         * NEWS:
35533         * sys/vaapiconvert/gstvaapiconvert.c:
35534         * sys/vaapiconvert/gstvaapiconvert.h:
35535           Factor out direct-rendering infrastructure.
35536
35537 2010-03-18 16:18:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35538
35539         * sys/vaapiconvert/gstvaapiconvert.c:
35540         * sys/vaapiconvert/gstvaapiconvert.h:
35541           Allow user to specify inout-buffers & derive-image optimizations.
35542
35543 2010-03-18 15:58:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35544
35545         * sys/vaapiconvert/gstvaapiconvert.c:
35546           Reduce number of debug messaged printed out.
35547
35548 2010-03-18 15:53:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35549
35550         * sys/vaapiconvert/gstvaapiconvert.c:
35551         * sys/vaapiconvert/gstvaapiconvert.h:
35552           Add vaDeriveImage() optimization.
35553
35554 2010-03-18 15:52:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35555
35556         * gst-libs/gst/vaapi/gstvaapiimage.c:
35557           Fix gst_vaapi_image_create() from a foreign VA image.
35558
35559 2010-03-18 15:28:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35560
35561         * gst-libs/gst/vaapi/gstvaapiimage.c:
35562         * gst-libs/gst/vaapi/gstvaapiimage.h:
35563         * gst-libs/gst/vaapi/gstvaapisurface.c:
35564         * gst-libs/gst/vaapi/gstvaapisurface.h:
35565           Add gst_vaapi_surface_derive_image() API.
35566
35567 2010-03-18 13:49:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35568
35569         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35570         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35571         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35572           Make it possible to bin an X11 window to GstVaapiWindowX11 with plain g_object_new() and "xid" property. i.e. get foreign window size in gst_vaapi_window_x11_create().
35573
35574 2010-03-18 13:08:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35575
35576         * tests/test-windows.c:
35577           Try YV12 & I420 image formats too.
35578
35579 2010-03-18 12:59:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35580
35581         * gst-libs/gst/vaapi/gstvaapiimage.c:
35582           Split map/unmap functions into internal functions that don't check preconditions.
35583
35584 2010-03-18 12:56:53 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35585
35586         * gst-libs/gst/vaapi/gstvaapiimage.c:
35587           Improve gst_vaapi_image_new() sanity checks.
35588
35589 2010-03-18 12:52:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35590
35591         * tests/test-windows.c:
35592           Fix typo.
35593
35594 2010-03-18 08:45:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35595
35596         * sys/vaapiconvert/gstvaapiconvert.c:
35597           Check if our inout buffer is still alive or default to a separate output buffer.
35598
35599 2010-03-18 08:16:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35600
35601         * sys/vaapiconvert/gstvaapiconvert.c:
35602         * sys/vaapiconvert/gstvaapiconvert.h:
35603           Factor out buffers negotiation and optimization checks.
35604
35605 2010-03-18 08:02:25 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35606
35607         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35608         * gst-libs/gst/vaapi/gstvaapiimage.c:
35609         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35610         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35611         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35612         * sys/vaapiconvert/gstvaapiconvert.h:
35613           Use gtypes.
35614
35615 2010-03-17 10:43:02 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35616
35617         * gst-libs/gst/vaapi/gstvaapiimage.c:
35618           Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
35619
35620 2010-03-17 07:59:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35621
35622         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35623         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35624         * gst-libs/gst/vaapi/gstvaapiimage.c:
35625         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35626         * gst-libs/gst/vaapi/gstvaapisurface.c:
35627         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35628           Add VA display locking utilities.
35629
35630 2010-03-17 07:20:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35631
35632         * sys/vaapisink/gstvaapisink.c:
35633           Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
35634
35635 2010-03-17 07:17:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35636
35637         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35638         * tests/test-windows.c:
35639           Don't show window by default during creation.
35640
35641 2010-03-17 06:49:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35642
35643         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35644           Fix gst_vaapi_window_x11_destroy().
35645
35646 2010-03-16 17:57:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35647
35648         * sys/vaapiconvert/gstvaapiconvert.c:
35649         * sys/vaapiconvert/gstvaapiconvert.h:
35650           Alias sink & src pad buffers whenever possible.
35651
35652 2010-03-16 17:57:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35653
35654         * gst-libs/gst/vaapi/gstvaapiimage.c:
35655         * gst-libs/gst/vaapi/gstvaapiimage.h:
35656           Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
35657
35658 2010-03-16 17:10:02 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35659
35660         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35661         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35662           Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
35663
35664 2010-03-16 14:37:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35665
35666         * sys/vaapiconvert/gstvaapiconvert.c:
35667           Fix image & surface size cache.
35668
35669 2010-03-16 14:12:40 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35670
35671         * configure.ac:
35672           Move gstreamer-vaapi package versioning to the top.
35673
35674 2010-03-16 14:11:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35675
35676         * configure.ac:
35677           Bump version for development.
35678
35679 2010-03-16 14:07:53 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35680
35681         * configure.ac:
35682           Cosmetics (shorten lines).
35683
35684 2010-03-16 13:58:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35685
35686         * NEWS:
35687         * README:
35688           Update docs.
35689
35690 2010-03-16 13:53:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35691
35692         * debian/Makefile.am:
35693         * debian/changelog.in:
35694         * debian/compat:
35695         * debian/control.in:
35696         * debian/copyright:
35697         * debian/gstreamer-vaapi.install.in:
35698         * debian/libgstvaapi-dev.install.in:
35699         * debian/libgstvaapi-x11.install.in:
35700         * debian/libgstvaapi.install.in:
35701         * debian/rules:
35702           Add debian packaging.
35703
35704 2010-03-16 13:53:09 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35705
35706         * Makefile.am:
35707         * configure.ac:
35708           Add debian packaging.
35709
35710 2010-03-16 10:13:36 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35711
35712         * pkgconfig/Makefile.am:
35713           Silence GNU make extensions warning.
35714
35715 2010-03-16 09:59:03 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35716
35717         * configure.ac:
35718           Add AM_PROG_CC_C_O, thus fixing this warning: tests/Makefile.am:16: compiling `test-display.c' with per-target flags requires `AM_PROG_CC_C_O' in `configure.ac'
35719
35720 2010-03-16 09:57:25 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35721
35722         * Makefile.am:
35723         * configure.ac:
35724         * pkgconfig/Makefile.am:
35725         * pkgconfig/gstreamer-vaapi-x11.pc.in:
35726         * pkgconfig/gstreamer-vaapi.pc.in:
35727           Add pkgconfig files.
35728
35729 2010-03-16 09:39:07 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35730
35731         * configure.ac:
35732         * gst-libs/gst/vaapi/Makefile.am:
35733         * sys/vaapisink/Makefile.am:
35734         * tests/Makefile.am:
35735           Split X11 support to libgstvaapi-x11-*.so.*
35736
35737 2010-03-16 09:21:15 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35738
35739         * gst-libs/gst/vaapi/Makefile.am:
35740           Don't install private headers.
35741
35742 2010-03-16 09:18:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35743
35744         * gst-libs/gst/vaapi/gstvaapidebug.h:
35745         * gst-libs/gst/vaapi/gstvaapiutils.c:
35746         * gst-libs/gst/vaapi/gstvaapiutils.h:
35747           Fix header guards.
35748
35749 2010-03-16 09:17:41 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35750
35751         * gst-libs/gst/vaapi/Makefile.am:
35752         * gst-libs/gst/vaapi/gstvaapidebug.h:
35753         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35754         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35755         * gst-libs/gst/vaapi/gstvaapiimage.c:
35756         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35757         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35758         * gst-libs/gst/vaapi/gstvaapisurface.c:
35759         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35760         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35761         * gst-libs/gst/vaapi/gstvaapivideopool.c:
35762         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35763         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35764           Rename vaapi_debug.h to gstvaapidebug.h.
35765
35766 2010-03-16 09:15:48 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35767
35768         * gst-libs/gst/vaapi/Makefile.am:
35769         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35770         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35771         * gst-libs/gst/vaapi/gstvaapiimage.c:
35772         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35773         * gst-libs/gst/vaapi/gstvaapisurface.c:
35774         * gst-libs/gst/vaapi/gstvaapiutils.c:
35775         * gst-libs/gst/vaapi/gstvaapiutils.h:
35776         * gst-libs/gst/vaapi/vaapi_debug.h:
35777           Move vaapi_utils.* to gstvaapiutils.*
35778
35779 2010-03-16 09:13:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35780
35781         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35782           Cosmetics (remove an extra line).
35783
35784 2010-03-16 09:12:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35785
35786         * gst-libs/gst/vaapi/Makefile.am:
35787         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35788         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35789         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35790           Move X11 utilties to gstvaapiutils_x11.[ch].
35791
35792 2010-03-16 09:03:10 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35793
35794         * gst-libs/gst/vaapi/Makefile.am:
35795         * gst-libs/gst/vaapi/gstvaapivideosink.c:
35796         * gst-libs/gst/vaapi/gstvaapivideosink.h:
35797         * sys/vaapiconvert/gstvaapiconvert.c:
35798         * sys/vaapisink/gstvaapisink.c:
35799           Rename GstVaapiSinkBase to GstVaapiVideoSink.
35800
35801 2010-03-16 08:49:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35802
35803         * configure.ac:
35804         * tests/Makefile.am:
35805         * tests/examples/Makefile.am:
35806         * tests/examples/generic/Makefile.am:
35807         * tests/test-display.c:
35808         * tests/test-surfaces.c:
35809         * tests/test-windows.c:
35810           Move tests to top-level tests/ directory.
35811
35812 2010-03-16 08:43:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35813
35814         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35815         * gst-libs/gst/vaapi/gstvaapiimage.c:
35816         * sys/vaapiconvert/gstvaapiconvert.c:
35817         * sys/vaapiconvert/gstvaapiconvert.h:
35818           Handle I420 formats internally in GstVaapiImage.
35819
35820 2010-03-15 17:44:35 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35821
35822         * sys/vaapiconvert/gstvaapiconvert.c:
35823         * sys/vaapiconvert/gstvaapiconvert.h:
35824           Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
35825
35826 2010-03-15 17:43:29 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35827
35828         * gst-libs/gst/vaapi/gstvaapiimage.c:
35829           Implement I420 and YV12 if the underlying implementation does not.
35830
35831 2010-03-15 17:10:56 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35832
35833         * sys/vaapiconvert/Makefile.am:
35834         * sys/vaapiconvert/gstvaapiconvert.c:
35835         * sys/vaapiconvert/gstvaapiconvert.h:
35836           Add initial vaapiconvert plugin.
35837
35838 2010-03-15 17:09:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35839
35840         * sys/vaapisink/gstvaapisink.c:
35841         * sys/vaapisink/gstvaapisink.h:
35842           Display frames.
35843
35844 2010-03-15 16:57:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35845
35846         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35847           Factor out.
35848
35849 2010-03-15 16:57:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35850
35851         * tests/examples/generic/test-windows.c:
35852           Generate R/G/B rects.
35853
35854 2010-03-15 16:13:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35855
35856         * gst-libs/gst/vaapi/gstvaapisurface.c:
35857         * gst-libs/gst/vaapi/gstvaapisurface.h:
35858           Add gst_vaapi_surface_sync().
35859
35860 2010-03-15 16:13:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35861
35862         * gst-libs/gst/vaapi/gstvaapiimage.c:
35863           Cosmetics (reverse args order).
35864
35865 2010-03-15 15:55:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35866
35867         * gst-libs/gst/vaapi/gstvaapiimage.c:
35868         * gst-libs/gst/vaapi/gstvaapiimage.h:
35869         * gst-libs/gst/vaapi/gstvaapisurface.c:
35870           Cosmetics.
35871
35872 2010-03-15 15:12:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35873
35874         * gst-libs/gst/vaapi/Makefile.am:
35875         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35876         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35877         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35878         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35879         * tests/examples/generic/Makefile.am:
35880         * tests/examples/generic/test-windows.c:
35881           Add VA/X11 window abstraction.
35882
35883 2010-03-15 14:57:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35884
35885         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35886         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35887           Add VA and X11 display accessors.
35888
35889 2010-03-15 14:57:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35890
35891         * gst-libs/gst/vaapi/gstvaapiimage.c:
35892           Fix preconditions.
35893
35894 2010-03-15 13:32:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35895
35896         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35897           Cosmetics.
35898
35899 2010-03-15 11:49:03 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35900
35901         * gst-libs/gst/vaapi/gstvaapiimage.c:
35902         * gst-libs/gst/vaapi/gstvaapiimage.h:
35903         * gst-libs/gst/vaapi/gstvaapisurface.c:
35904         * gst-libs/gst/vaapi/gstvaapisurface.h:
35905           Add gst_vaapi_{get,put}_image() API.
35906
35907 2010-03-15 10:27:10 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35908
35909         * gst-libs/gst/vaapi/gstvaapiimage.c:
35910         * gst-libs/gst/vaapi/gstvaapiimage.h:
35911           Add gst_vaapi_image_update_from_buffer() helper.
35912
35913 2010-03-12 23:53:48 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35914
35915         * sys/vaapisink/Makefile.am:
35916         * sys/vaapisink/gstvaapisink.c:
35917         * sys/vaapisink/gstvaapisink.h:
35918           Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
35919
35920 2010-03-12 23:50:09 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35921
35922         * tests/examples/generic/Makefile.am:
35923         * tests/examples/generic/test-surfaces.c:
35924           Add surface tests.
35925
35926 2010-03-12 23:48:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35927
35928         * gst-libs/gst/vaapi/Makefile.am:
35929         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35930         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35931           Add basic GstVaapiVideoBuffer.
35932
35933 2010-03-12 23:47:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35934
35935         * gst-libs/gst/vaapi/Makefile.am:
35936         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35937         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35938         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35939         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35940         * gst-libs/gst/vaapi/gstvaapivideopool.c:
35941         * gst-libs/gst/vaapi/gstvaapivideopool.h:
35942           Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
35943
35944 2010-03-12 22:32:35 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35945
35946         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35947           Simplify format conversion code.
35948
35949 2010-03-12 22:28:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35950
35951         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35952         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35953           Add gst_vaapi_image_format_from_caps() helper.
35954
35955 2010-03-12 17:45:18 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35956
35957         * gst-libs/gst/vaapi/Makefile.am:
35958         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35959         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35960           Add VA surface pool (lazy allocator).
35961
35962 2010-03-12 17:39:11 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35963
35964         * gst-libs/gst/vaapi/gstvaapisurface.c:
35965         * gst-libs/gst/vaapi/gstvaapisurface.h:
35966           Add gst_vaapi_surface_get_size() helper.
35967
35968 2010-03-12 10:52:08 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35969
35970         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35971           Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
35972
35973 2010-03-11 15:35:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35974
35975         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35976           Reset display-name if the user provided his own X11 display.
35977
35978 2010-03-11 15:21:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35979
35980         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35981         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35982         * tests/examples/generic/test-display.c:
35983           Add gst_vaapi_display_x11_new_with_display() API.
35984
35985 2010-03-11 15:04:18 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35986
35987         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35988         * gst-libs/gst/vaapi/gstvaapiimage.h:
35989         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35990         * gst-libs/gst/vaapi/gstvaapisurface.h:
35991           Fix *_GET_CLASS() definitions...
35992
35993 2010-03-11 15:01:00 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35994
35995         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35996         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35997         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35998         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35999         * tests/examples/generic/test-display.c:
36000           API change: gst_vaapi_display_x11_new() now takes an X11 display name.
36001
36002 2010-03-11 13:58:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36003
36004         * gst-libs/gst/vaapi/gstvaapisurface.c:
36005         * gst-libs/gst/vaapi/gstvaapisurface.h:
36006           Use GstVaapiChromaType abstraction.
36007
36008 2010-03-11 12:30:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36009
36010         * gst-libs/gst/vaapi/gstvaapiimage.c:
36011         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36012         * gst-libs/gst/vaapi/gstvaapisurface.c:
36013           New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
36014
36015 2010-03-11 12:14:10 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36016
36017         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36018           Don't warn on failure, just return an appropriate error or value.
36019
36020 2010-03-11 12:11:36 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36021
36022         * gst-libs/gst/vaapi/gstvaapidisplay.c:
36023         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36024         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36025           Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
36026
36027 2010-03-11 10:50:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36028
36029         * gst-libs/gst/vaapi/Makefile.am:
36030         * gst-libs/gst/vaapi/gstvaapisinkbase.c:
36031         * gst-libs/gst/vaapi/gstvaapisinkbase.h:
36032           Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
36033
36034 2010-03-10 13:13:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36035
36036         * gst-libs/gst/vaapi/gstvaapidisplay.c:
36037         * gst-libs/gst/vaapi/gstvaapiimage.c:
36038         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36039         * gst-libs/gst/vaapi/gstvaapisurface.c:
36040         * gst-libs/gst/vaapi/vaapi_debug.h:
36041           Use GST_DEBUG.
36042
36043 2010-03-10 13:10:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36044
36045         * gst-libs/gst/vaapi/gstvaapiimage.c:
36046         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36047           Fix GstVaapiImage and GstVaapiSubpicture initialization.
36048
36049 2010-03-10 13:02:45 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36050
36051         * gst-libs/gst/vaapi/gstvaapisurface.c:
36052           Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
36053
36054 2010-03-10 12:25:38 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36055
36056         * tests/examples/generic/test-display.c:
36057           Dump caps.
36058
36059 2010-03-10 12:25:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36060
36061         * gst-libs/gst/vaapi/gstvaapidisplay.c:
36062         * gst-libs/gst/vaapi/gstvaapidisplay.h:
36063         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36064           Fix GstVaapiDisplay initialization.
36065
36066 2010-03-10 10:43:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36067
36068         * gst-libs/gst/vaapi/gstvaapidisplay.c:
36069         * gst-libs/gst/vaapi/gstvaapidisplay.h:
36070           Get VA image & subpicture formats as GstCaps.
36071
36072 2010-03-10 10:41:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36073
36074         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36075         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36076           Add helper to convert from GstVaapiImageFormat to GstCaps.
36077
36078 2010-03-09 12:00:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36079
36080         * gst-libs/gst/vaapi/gstvaapidisplay.c:
36081         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36082         * gst-libs/gst/vaapi/gstvaapisurface.c:
36083           Cosmetics (drop unused variables).
36084
36085 2010-03-05 17:11:52 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36086
36087         * configure.ac:
36088         * sys/vaapiconvert/Makefile.am:
36089         * sys/vaapiconvert/gstvaapiconvert.c:
36090         * sys/vaapiconvert/gstvaapiconvert.h:
36091         * sys/vaapisink/Makefile.am:
36092         * sys/vaapisink/gstvaapisink.c:
36093         * sys/vaapisink/gstvaapisink.h:
36094           Add boilerplate for vaapiconvert and vaapisink elements.
36095
36096 2010-03-05 15:29:04 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36097
36098         * configure.ac:
36099         * sys/Makefile.am:
36100         * sys/vaapiconvert/Makefile.am:
36101           Add vaapiconvert element hierarchy.
36102
36103 2010-03-05 15:26:36 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36104
36105         * sys/vaapisink/Makefile.am:
36106           Rename to vaapisink.
36107
36108 2010-03-05 10:07:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36109
36110         * gst-libs/gst/vaapi/gstvaapisurface.c:
36111           Shorter code (and more correct).
36112
36113 2010-03-05 10:04:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36114
36115         * gst-libs/gst/vaapi/gstvaapisurface.c:
36116         * gst-libs/gst/vaapi/gstvaapisurface.h:
36117           Add helper to get GstVaapiDisplay from a surface.
36118
36119 2010-03-05 08:52:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36120
36121         * gst-libs/gst/vaapi/gstvaapidisplay.c:
36122           Fix subpicture formats list length.
36123
36124 2010-03-04 17:41:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36125
36126         * gst-libs/gst/vaapi/gstvaapidisplay.c:
36127         * gst-libs/gst/vaapi/gstvaapidisplay.h:
36128           Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
36129
36130 2010-03-04 17:40:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36131
36132         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36133         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36134           Cosmetics (more checks, includes).
36135
36136 2010-03-04 17:39:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36137
36138         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36139         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
36140           Really add VA subpicture abstraction.
36141
36142 2010-03-04 17:39:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36143
36144         * gst-libs/gst/vaapi/Makefile.am:
36145         * gst-libs/gst/vaapi/gstvaapiimage.c:
36146         * gst-libs/gst/vaapi/gstvaapiimage.h:
36147         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36148         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36149         * gst-libs/gst/vaapi/gstvaapisurface.c:
36150         * gst-libs/gst/vaapi/gstvaapisurface.h:
36151           Add VA surface, image, subpicture abstractions. Ported over from Gnash.
36152
36153 2010-01-25 16:15:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36154
36155         * configure.ac:
36156         * gst-libs/gst/vaapi/Makefile.am:
36157         * gst-libs/gst/vaapi/gstvaapidisplay.c:
36158         * gst-libs/gst/vaapi/gstvaapidisplay.h:
36159         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36160         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36161         * gst-libs/gst/vaapi/vaapi_debug.h:
36162         * gst-libs/gst/vaapi/vaapi_utils.c:
36163         * gst-libs/gst/vaapi/vaapi_utils.h:
36164         * tests/examples/generic/Makefile.am:
36165         * tests/examples/generic/test-display.c:
36166           Add initial VA display abstraction.
36167
36168 2010-01-25 15:04:10 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36169
36170         * Makefile.am:
36171         * configure.ac:
36172         * tests/Makefile.am:
36173         * tests/examples/Makefile.am:
36174         * tests/examples/generic/Makefile.am:
36175           Add tests infrastructure.
36176
36177 2010-01-25 14:59:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36178
36179         * configure.ac:
36180           Clean up VA-API checks.
36181
36182 2010-01-25 13:49:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36183
36184         * configure.ac:
36185           Check for __attribute__((visibility("hidden"))).
36186