vaapidecodebin: Misc enhancements.
[platform/upstream/gstreamer.git] / subprojects / gstreamer-vaapi / ChangeLog
1 === release 1.19.3 ===
2
3 2021-11-03 15:43:36 +0000  Tim-Philipp Müller <tim@centricular.com>
4
5         * NEWS:
6         * RELEASE:
7         * gstreamer-vaapi.doap:
8         * meson.build:
9           Release 1.19.3
10
11 2021-11-03 15:43:32 +0000  Tim-Philipp Müller <tim@centricular.com>
12
13         * ChangeLog:
14           Update ChangeLogs for 1.19.3
15
16 2021-10-18 15:47:00 +0100  Tim-Philipp Müller <tim@centricular.com>
17
18         * tests/check/meson.build:
19           meson: update for meson.build_root() and .build_source() deprecation
20           -> use meson.project_build_root() or .global_build_root() instead.
21           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
22
23 2021-10-18 00:40:14 +0100  Tim-Philipp Müller <tim@centricular.com>
24
25         * docs/meson.build:
26         * gst-libs/gst/vaapi/meson.build:
27         * meson.build:
28         * tests/check/meson.build:
29           meson: update for dep.get_pkgconfig_variable() deprecation
30           ... in favour of dep.get_variable('foo', ..) which in some
31           cases allows for further cleanups in future since we can
32           extract variables from pkg-config dependencies as well as
33           internal dependencies using this mechanism.
34           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
35
36 2021-10-14 18:38:26 +0100  Tim-Philipp Müller <tim@centricular.com>
37
38         * meson.build:
39           meson: bump meson requirement to >= 0.59
40           For monorepo build and ugly/bad, for advanced feature
41           option API like get_option('xyz').required(..) which
42           we use in combination with the 'gpl' option.
43           For rest of modules for consistency (people will likely
44           use newer features based on the top-level requirement).
45           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
46
47 2021-10-15 00:33:39 +0800  He Junyan <junyan.he@intel.com>
48
49         * docs/index.md:
50           Docs: Fix a typo for Intel's vaapi driver name.
51           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1151>
52
53 2021-09-28 10:11:15 +1000  Brad Hards <bradh@frogmouth.net>
54
55         * RELEASE:
56           doc: update IRC links to OFTC
57           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/945>
58
59 2021-09-26 01:07:02 +0100  Tim-Philipp Müller <tim@centricular.com>
60
61         * meson.build:
62           Back to development
63           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/925>
64
65 === release 1.19.2 ===
66
67 2021-09-23 01:35:54 +0100  Tim-Philipp Müller <tim@centricular.com>
68
69         * ChangeLog:
70         * NEWS:
71         * RELEASE:
72         * gstreamer-vaapi.doap:
73         * meson.build:
74           Release 1.19.2
75
76 2021-08-26 15:06:53 +0800  Zhang Yuankun <yuankunx.zhang@intel.com>
77
78         * gst/vaapi/gstvaapidecode.c:
79           vaapi: decoder: modify the condition to judge whether dma buffer is supported
80           It seems "GST_VAAPI_PLUGIN_BASE_SRC_PAD_CAN_DMABUF (decode)" will
81           return false even if this platform support the mem_type dma buffer.
82           And media-driver will return GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
83           on Gen12(such as TGL).
84           Without this patch, The command such as:
85           gst-launch-1.0 videotestsrc num-buffers=100 ! video/x-raw, format=I420 ! \
86           x264enc ! h264parse ! vaapih264dec ! video/x-raw\(memory:DMABuf\) ! fakesink
87           will return not-negotiated.
88           Signed-off-by: Zhang Yuankun <yuankunx.zhang@intel.com>
89           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/437>
90
91 2021-05-14 12:04:04 +0800  He Junyan <junyan.he@intel.com>
92
93         * gst-libs/gst/vaapi/gstvaapidisplay.c:
94         * gst/vaapi/gstvaapivideocontext.c:
95           Display: Add a property to export the VA display handle.
96           Just like what we do in VA plugins. The display can be seen as a
97           generic gst object and we can add a property to get the internal
98           VA handle.
99           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
100
101 2021-05-14 11:49:01 +0800  He Junyan <junyan.he@intel.com>
102
103         * gst/vaapi/gstvaapivideomemory.c:
104         * gst/vaapi/gstvaapivideomemory.h:
105           plugins: video memory: Add a GST_MAP_VAAPI flag to peek the surface.
106           Just like what we do in VA plugins, the GST_MAP_VAAPI can directly
107           peek the surface of the VA buffers. The old flag 0 just peek the
108           surface proxy, which may not be convenient for the users who do not
109           want to include our headers.
110           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/435>
111
112 2021-07-09 11:01:14 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
113
114         * gst/vaapi/gstvaapi.c:
115         * gst/vaapi/gstvaapidecode.c:
116           Revert "vaapi: Demote vaapidecodebin to rank NONE."
117           This reverts commit 7a25c5d4ec95aefeca6515ac023b23c5dd330194.
118           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/436>
119
120 2021-06-23 16:23:00 +0800  He Junyan <junyan.he@intel.com>
121
122         * gst/vaapi/gstvaapiencode.c:
123           plugins: encode: fix a deadlock because of _drain()
124           We call gst_vaapiencode_drain() in gst_vaapiencode_change_state(),
125           whose context does not hold the stream lock of the encoder. The
126           current gst_vaapiencode_drain inside unlock/lock pair adds a extra
127           lock count to the stream lock of encoder and causes hang later.
128           We just remove the gst_vaapiencode_drain() and expand its logic
129           correctly according to the lock/unlock context.
130           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/433>
131
132 2021-06-29 15:09:13 +0800  He Junyan <junyan.he@intel.com>
133
134         * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
135           libs: decoder: av1: Clean the film_grain_info field.
136           We need to clean all film_grain_info fields when the film grain
137           feature is not enabled. It may have random data because the picture
138           parameter buffer is not cleaned.
139           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/434>
140
141 2021-06-03 22:12:04 +0800  He Junyan <junyan.he@intel.com>
142
143         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
144         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
145           libs: encoder: mpeg2: Add highP level for 1080@50p/60p.
146           The MPEG2 spec has amendment 3 to introduce a new level highP, which
147           is used for 1080@50p/60p streams. We need to add this level to avoid
148           encoding failure because of the level check.
149           Fix: #306
150           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/432>
151
152 2021-05-11 16:59:07 +0800  He Junyan <junyan.he@intel.com>
153
154         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
155           Decoder: H264: Add the support for frame packing arrangement SEI message.
156           Frame packing arrangement SEI message is an alternative simple stereo 3D
157           manner for AVC. We need to recognize that SEI message and report the correct
158           3D caps.
159           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/420>
160
161 2021-05-22 18:54:49 +0100  Tim-Philipp Müller <tim@centricular.com>
162
163         * gst-libs/gst/vaapi/gstvaapifilter.c:
164         * meson.build:
165           Use g_memdup2() where available and add fallback for older GLib versions
166           Alloc size is based on existing allocations and struct sizes.
167           g_memdup() is deprecated since GLib 2.68 and we want to avoid
168           deprecation warnings with recent versions of GLib.
169           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/431>
170
171 2021-06-01 15:29:16 +0100  Tim-Philipp Müller <tim@centricular.com>
172
173         * meson.build:
174           Back to development
175
176 === release 1.19.1 ===
177
178 2021-06-01 00:16:31 +0100  Tim-Philipp Müller <tim@centricular.com>
179
180         * ChangeLog:
181         * NEWS:
182         * RELEASE:
183         * gstreamer-vaapi.doap:
184         * meson.build:
185           Release 1.19.1
186
187 2021-04-23 19:01:54 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
188
189         * gst/vaapi/gstvaapi.c:
190         * gst/vaapi/gstvaapidecode.c:
191           vaapi: Demote vaapidecodebin to rank NONE.
192           One of the main reasons of vaapidecodebin was because it mitigated the
193           possible surface exhaustion. But that problem is currently
194           solved. Nowadays, vaapidecodebin brings more problems than it
195           solves. Thus this patch demotes vaapidecodebin to NONE rank while
196           bumping PRIMARY + 1 the most common decoders.
197           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/426>
198
199 2021-05-20 10:28:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
200
201         * gst/vaapi/gstvaapi.c:
202         * gst/vaapi/gstvaapioverlay.c:
203           plugins: Demote rank of vaapipostproc and vaapioverlay.
204           Since almost all video filters have rank NONE, these both elements
205           should be NONE too.
206           This is useful for autovideoconvert and other bins, and users might
207           force to use these by setting the environment variable
208           GST_PLUGIN_FEATURE_RANK.
209           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/429>
210
211 2021-04-21 10:55:45 +0200  François Laignel <fengalin@free.fr>
212
213         * tests/check/elements/vaapioverlay.c:
214           Use gst_element_request_pad_simple...
215           Instead of the deprecated gst_element_get_request_pad.
216           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/425>
217
218 2021-04-23 11:02:05 +0800  Zhang yuankun <yuankunx.zhang@intel.com>
219
220         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
221           libs: encoder: VP9: fix > 4k encode fail issue
222           The VP9 spec defines the MAX_TILE_WIDTH_B64(64), which is the maximum
223           width of a tile in units of superblocks. So the max width of one tile
224           should not be larger than 64x64=4096. When the width exceeds 4k, we
225           need to split it into multiple tiles in columns. The current vp9 encoder
226           does not handle this correctly.
227           The command such as:
228           gst-launch-1.0 videotestsrc ! video/x-raw,width=7680,height=4320 ! \
229           vaapivp9enc ! fakesink
230           will crash.
231           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/424>
232
233 2021-04-02 15:43:45 +0800  Haihao Xiang <haihao.xiang@intel.com>
234
235         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
236           libs: display: drm: don't fallback to default device if explicitly specified device can't load/init
237           Otherwise user will be misled that the specified device is using
238           This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/issues/305
239           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/422>
240
241 2021-03-22 13:41:13 +0800  He Junyan <junyan.he@intel.com>
242
243         * gst-libs/gst/vaapi/gstvaapiencoder.c:
244         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
245         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
246           decoder: H265: Enable cu_qp_delta_enabled_flag when ROI
247           If ROI is enabled, the CUs within the ROI region may have different
248           QP from the other part of the picture. This needs us to enable the
249           cu_qp_delta_enabled_flag even in the CQP mode.
250           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/419>
251
252 2021-03-19 17:42:36 +1100  Matthew Waters <matthew@centricular.com>
253
254         * gst-libs/gst/vaapi/gstvaapicontext.c:
255         * gst-libs/gst/vaapi/gstvaapicontext.h:
256         * gst-libs/gst/vaapi/gstvaapiencoder.c:
257         * gst-libs/gst/vaapi/gstvaapifilter.c:
258         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
259         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
260         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
261         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
262         * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
263         * gst-libs/gst/vaapi/gstvaapivalue.c:
264         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
265         * gst/vaapi/gstvaapipluginbase.c:
266         * gst/vaapi/gstvaapisink.c:
267         * gst/vaapi/gstvaapisink.h:
268         * gst/vaapi/gstvaapivideocontext.c:
269         * gst/vaapi/gstvaapivideomemory.c:
270         * tests/internal/simple-decoder.c:
271           gst: don't use volatile to mean atomic
272           volatile is not sufficient to provide atomic guarantees and real atomics
273           should be used instead.  GCC 11 has started warning about using volatile
274           with atomic operations.
275           https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719
276           Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868
277           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/418>
278
279 2021-02-24 17:41:02 +0100  Paul Goulpié <paul.goulpie@ubicast.eu>
280
281         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
282           gstvaapiencoder_h264: add ENCODER_EXPOSURE on aud propertie
283           forgot during the following mainline commit: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/bc2f8fd19e924aa0e193708307326acd037691ce#
284           Signed-off-by: Paul Goulpié <paul.goulpie@ubicast.eu>
285
286 2021-02-04 15:05:55 +0800  He Junyan <junyan.he@intel.com>
287
288         * gst/vaapi/gstvaapipostproc.c:
289           plugins: postproc: Fix a problem of propose_allocation when passthrough.
290           We should query the downstream element to answer a precise allocation
291           query when the passthrough mode is enabled.
292           The current way still decides the allocation by the postproc itself. The
293           pipeline such as:
294           gst-launch-1.0 -v filesrc location=xxx.264 ! h264parse ! vaapih264dec ! \
295           vaapipostproc ! fakevideosink silent=false sync=true
296           will lose some info such as the GST_VIDEO_META_API_TYPE.
297           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/413>
298
299 2021-01-27 12:05:44 +0800  Haihao Xiang <haihao.xiang@intel.com>
300
301         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
302         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
303         * gst/vaapi/gstvaapivideocontext.c:
304           libs: display: drm: support gst.vaapi.app.Display context for drm backend
305           Attributes for drm backend:
306           - va-display : ponter of VADisplay
307           - drm-device-fd : the DRM device file descriptor
308           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
309
310 2021-01-13 14:43:20 +0800  Haihao Xiang <haihao.xiang@intel.com>
311
312         * docs/index.md:
313         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
314           libs: display: drm: allow user specify a drm device via an env variable
315           Currently the default drm device is always used on a system with
316           multiple drm devices. This patch allows user to specify the required
317           drm device via GST_VAAPI_DRM_DEVICE env variable
318           Example:
319           GST_VAAPI_DRM_DEVICE=/dev/dri/renderD129 gst-launch-1.0 videotestsrc !
320           vaapih264enc ! fakesink
321           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/409>
322
323 2021-01-25 14:45:47 +0800  Haihao Xiang <haihao.xiang@intel.com>
324
325         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
326           libs: display: drm: fix set_device_path_from_fd
327           drmGetBusid() (GET_UNIQUE ioctl) won't return a valid bus id when
328           drmSetInterfaceVersion() (SET_VERSION ioctl) hasn't been called(see[1]),
329           so we can't get the right device path. Running test-display will get the
330           error below:
331           ** (test-display:18630): ERROR **: 10:26:00.434: could not create Gst/VA
332           display
333           Calling drmSetInterfaceVersion() before drmGetBusid() can't fix this
334           issue because a special permission is required for SET_VERSION ioctl.
335           This patch retrieves the device path from file descriptor via
336           g_file_read_link()
337           [1] https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/drm_ioctl.c#L48-L104
338           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/412>
339
340 2021-01-20 10:42:09 +0100  Rafał Dzięgiel <rafostar.github@gmail.com>
341
342         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
343           glx: Iterate over FBConfig and select 8 bit color size
344           Texture upload mechanism used by gstreamer-vaapi relies on 8 bpc.
345           In latest mesa versions the first fbconfig might not be 8 bit, so iterate
346           over it to find the correct config with supported values.
347           This also adds 8 bit alpha size to the framebuffer configuration which is
348           required to get it working properly.
349           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/410>
350
351 2021-01-11 09:57:03 +0800  Ung, Teng En <teng.en.ung@intel.com>
352
353         * gst-libs/gst/vaapi/gstvaapiutils.c:
354           vaapipostproc: fix code style.
355           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
356
357 2020-12-21 05:42:00 +0000  Ung, Teng En <teng.en.ung@intel.com>
358
359         * gst-libs/gst/vaapi/gstvaapidisplay.c:
360         * gst-libs/gst/vaapi/gstvaapidisplay.h:
361         * gst-libs/gst/vaapi/gstvaapifilter.c:
362           vaapipostproc: Remove YUV to/from RGB color primary quirk since iHD driver has fixed in https://github.com/intel/media-driver/commit/a39fe9bc051a8c3efa8f35122a1585981ec7f816.
363           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
364
365 2020-12-21 05:36:29 +0000  Ung, Teng En <teng.en.ung@intel.com>
366
367         * gst-libs/gst/vaapi/gstvaapiutils.c:
368           vaapipostproc: Added gstreamer BT2020 color standard support.
369           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/407>
370
371 2021-01-09 16:05:48 +0800  He Junyan <junyan.he@intel.com>
372
373         * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
374           decoder: AV1: Fix a static analysis problem of update_state().
375           No need to check the picture pointer after we have already dereferenced it.
376           Fix: #298
377           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/408>
378
379 2020-12-22 23:43:52 +0800  He Junyan <junyan.he@intel.com>
380
381         * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
382         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
383         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
384           libs: decoder: Add decode_with_surface_id for AV1 film_grain.
385           The AV1 film_graim feature needs two surfaces the same time for
386           decoding. One is for recon surface which will be used as reference
387           later, and the other one is for display. The GstVaapiPicture should
388           contain the surface for display, while the vaBeginPicture() need
389           the recon surface as the target.
390           We add a gst_vaapi_picture_decode_with_surface_id API to handle this
391           kind of requirement.
392           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
393
394 2020-08-27 21:46:41 +0800  He Junyan <junyan.he@intel.com>
395
396         * gst-libs/gst/vaapi/gstvaapidecoder_av1.c:
397         * gst-libs/gst/vaapi/gstvaapidecoder_av1.h:
398         * gst-libs/gst/vaapi/gstvaapiprofile.c:
399         * gst-libs/gst/vaapi/gstvaapiprofile.h:
400         * gst-libs/gst/vaapi/gstvaapiutils.c:
401         * gst-libs/gst/vaapi/meson.build:
402         * gst/vaapi/gstvaapidecode.c:
403         * meson.build:
404           libs: decoder: AV1: Add the av1 decoder support.
405           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
406
407 2020-08-27 21:39:35 +0800  He Junyan <junyan.he@intel.com>
408
409         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
410         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
411         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
412         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
413           libs: codecobject: Add number of elements when create codec object.
414           One slice data may need several slice parameter buffers at one time.
415           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/191>
416
417 2020-12-12 10:30:41 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
418
419         * gst/vaapi/gstvaapidecodebin.c:
420         * gst/vaapi/gstvaapipluginbase.c:
421         * gst/vaapi/gstvaapivideobufferpool.c:
422           vaapi: use gst_clear_object instead of g_clear_object
423           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/406>
424
425 2020-12-08 13:34:35 +0800  He Junyan <junyan.he@intel.com>
426
427         * gst/vaapi/gstvaapiencode.c:
428           plugins: encode: unlock the stream lock before _flush()
429           The current encoder will hang when EOS comes. When we call the
430           gst_vaapi_encoder_encode_and_queue(), we should release the stream
431           lock, just like what we do in gst_vaapiencode_handle_frame().
432           The deadlock happens when: The input thread holding the stream lock
433           is using gst_vaapi_encoder_create_coded_buffer() to acquire a coded
434           buffer, while the output thread which holding the coded buffer resource
435           is acquiring the stream lock in _push_frame() to push the data to
436           down stream element.
437           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/404>
438
439 2020-12-09 00:04:33 +0800  He Junyan <junyan.he@intel.com>
440
441         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
442           libs: encoder: H264: Fix one assert in get_pending_reordered().
443           gst_vaapi_encoder_h264_get_pending_reordered() does not consider the
444           case for HIERARCHICAL_B mode. The pipeline:
445           gst-launch-1.0  videotestsrc num-buffers=48 ! vaapih264enc prediction-type=2 \
446           keyframe-period=32 ! fakesink
447           get a assert:
448           ERROR:../gst-libs/gst/vaapi/gstvaapiencoder_h264.c:1996:reflist1_init_hierarchical_b:
449           assertion failed: (count != 0)
450           The last few B frames are not fetched in correct order when HIERARCHICAL_B
451           is enabled.
452           We also fix a latent bug for normal mode. The g_queue_pop_tail() of B frames
453           make the last several frames encoded in reverse order. The NAL of last few
454           frames come in reverse order in the bit stream, though it can still output
455           the correct image.
456           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/405>
457
458 2020-06-25 16:25:21 +0800  He Junyan <junyan.he@hotmail.com>
459
460         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
461         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
462           libs: encoder: H265: Add screen content coding extensions support.
463           In scc mode, the I frame can ref to itself and it needs the L0 reference
464           list enabled. So we should set the I frame to P_SLICE type. We do not need
465           to change the ref_pic_list0/1 passed to VA driver, just need to enable the
466           VAEncPictureParameterBufferHEVC->pps_curr_pic_ref_enabled_flag to notify
467           the driver consider the current frame as reference. For bits conformance,
468           the NumRpsCurrTempList0 should be incremented by one to include the current
469           picture as the reference frame. We manually do it when packing the slice header.
470           Command line like:
471           gst-launch-1.0  videotestsrc num-buffers=10 ! \
472           capsfilter caps=video/x-raw,format=NV12, framerate=30/1,width=640,height=360 ! \
473           vaapih265enc ! capsfilter caps=video/x-h265,profile="{ (string)screen-extended-main }" ! \
474           filesink location=out.265
475           Can be used to specify that the encoder should use SCC profiles.
476           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/379>
477
478 2020-07-11 23:37:29 +0800  He Junyan <junyan.he@intel.com>
479
480         * gst/vaapi/gstvaapiencode_vp9.c:
481           plugin: encode: vp9: Implement the set_config().
482           We store the allowed profiles list to encoder in set_config().
483           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
484
485 2020-07-11 23:39:40 +0800  He Junyan <junyan.he@intel.com>
486
487         * gst/vaapi/gstvaapiencode_vp9.c:
488           plugin: encode: vp9: Add the profile into output caps.
489           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
490
491 2020-07-11 23:27:21 +0800  He Junyan <junyan.he@intel.com>
492
493         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
494           libs: encoder: vp9: no need to ensure_hw_profile.
495           Once we decide the profile and can get the valid entrypoint for
496           that profile, hw must already support this profile/entrypoint pair.
497           No need to check it again in set_context_info().
498           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
499
500 2020-07-11 23:22:55 +0800  He Junyan <junyan.he@intel.com>
501
502         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
503           libs: encoder: vp9: Improve the manner to decide the profile.
504           We should decide the VP9 encoder's profile based on the chroma and
505           depth of the input format, then make sure it is included in the
506           allowed list.
507           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
508
509 2020-07-11 23:17:02 +0800  He Junyan <junyan.he@intel.com>
510
511         * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
512         * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
513           libs: util: vpx: add get_chroma_format_idc for VP9
514           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
515
516 2020-07-11 23:09:59 +0800  He Junyan <junyan.he@intel.com>
517
518         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
519         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
520           libs: encoder: vp9: Add allowed_profiles.
521           We need the allowed_profiles to store the allowed profiles in down
522           stream's caps.
523           Command line like:
524           vaapivp9enc ! capsfilter caps=video/x-vp9,profile="{ (string)1, \
525           (string)3 }"
526           We need to store GST_VAAPI_PROFILE_VP9_1 and GST_VAAPI_PROFILE_VP9_3
527           in this list.
528           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/380>
529
530 2020-11-30 18:00:30 +0800  He Junyan <junyan.he@intel.com>
531
532         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
533           libs: decoder: H265: Fix a typo in scc reference setting.
534           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/402>
535
536 2020-07-17 18:00:30 +0800  He Junyan <junyan.he@intel.com>
537
538         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
539         * gst-libs/gst/vaapi/gstvaapiprofile.c:
540         * gst-libs/gst/vaapi/gstvaapiprofile.h:
541         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
542         * gst-libs/gst/vaapi/video-format.c:
543         * gst/vaapi/gstvaapidecode.c:
544           libs: decoder: H265: Add MAIN_422_12 profile supporting.
545           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
546
547 2020-07-31 14:38:42 +0800  He Junyan <junyan.he@intel.com>
548
549         * gst-libs/gst/vaapi/gstvaapiimage.c:
550         * gst-libs/gst/vaapi/video-format.c:
551         * gst-libs/gst/vaapi/video-format.h:
552           video-format: Add Y212_LE format.
553           It can be used as HEVC YUV_4:2:2 12bits stream's decoder output, and
554           also can be used as the input format for encoding HEVC YUV_4:2:2 12bits
555           stream.
556           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
557
558 2020-07-30 23:21:06 +0800  He Junyan <junyan.he@intel.com>
559
560         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
561         * gst-libs/gst/vaapi/gstvaapiprofile.c:
562         * gst-libs/gst/vaapi/gstvaapiprofile.h:
563         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
564         * gst-libs/gst/vaapi/video-format.c:
565         * gst/vaapi/gstvaapidecode.c:
566           libs: decoder: H265: Add MAIN_444_12 profile supporting.
567           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
568
569 2020-07-30 23:13:10 +0800  He Junyan <junyan.he@intel.com>
570
571         * gst-libs/gst/vaapi/gstvaapiimage.c:
572         * gst-libs/gst/vaapi/video-format.c:
573         * gst-libs/gst/vaapi/video-format.h:
574           video-format: Add Y412_LE format.
575           It can be used as HEVC YUV_4:4:4 12bits stream's decoder output, and
576           also can be used as the input format for encoding HEVC YUV_4:4:4 12bits
577           stream.
578           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/390>
579
580 2020-09-17 16:47:43 +0800  He Junyan <junyan.he@intel.com>
581
582         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
583           libs: decoder: h265: fill missing predictor_palette_size field.
584           The predictor_palette_size of VAPictureParameterBufferHEVCScc is
585           forgotten and need to be filled when streams have palettes.
586           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/396>
587
588 2020-09-17 15:35:11 +0800  He Junyan <junyan.he@intel.com>
589
590         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
591           libs: utils: h265: Use get_profile_from_sps to get profile.
592           We now use gst_h265_get_profile_from_sps() to replace the old way
593           of gst_h265_profile_tier_level_get_profile() to get more precise
594           profile. The new function consider the unstandard cases and give
595           a more suitable profile decision.
596           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/395>
597
598 2020-10-19 13:46:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
599
600         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
601           libs: decoder: vp9: 0xff segment pred probs if no temporal update
602           According to the spec (6.2.11 Segmentation params syntax)
603           segmentation_pred_prob[i] ast to be 0xff if not temporal_update.
604           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
605
606 2020-10-19 13:42:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
607
608         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
609           libs: decoder: vp9: avoid reference rewriting
610           The removed code set all the reference frames to the current frame it is a key
611           one, but later, all the reference frames were rewritten with the decoded picture
612           buffers or VA_INVALID_SURFACE if they were not available.
613           Basically, all this time the first reference frame assignment has been ignored,
614           and it's not described by the spec, and this patch removes that code.
615           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/400>
616
617 2020-09-20 09:56:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
618
619         * gst/vaapi/gstvaapidecode.c:
620           decoder: don't reply src caps query with allowed if pad is fixed
621           If the pad is already fixed the caps query have to be reply with the
622           current fixed caps. Otherwise the query has to be replied with the
623           autogeneratd src caps.
624           This path fix this by falling back to the normal caps query processing
625           if the pad is already fixed. Otherwise it will fetch the allowed src
626           pad caps.
627           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/397>
628
629 2020-09-15 00:11:30 +0800  He Junyan <junyan.he@intel.com>
630
631         * gst/vaapi/gstvaapidecode.c:
632           plugins: decode: fix a DMA caps typo in ensure_allowed_srcpad_caps.
633           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/392>
634
635 2020-09-01 09:31:33 +0200  Marc Leeman <m.leeman@televic.com>
636
637         * gst/vaapi/gstvaapisink.c:
638           vaapisink: when updating the caps, reset rotation
639           When an element upstream changes settings (e.g. crop), new caps are sent
640           to vaapisink. When vaapisink was rotating the image, it needs to
641           re-evaluate if the sink needs to rotate the image.
642           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/389>
643
644 2020-09-08 17:31:02 +0100  Tim-Philipp Müller <tim@centricular.com>
645
646         * .gitlab-ci.yml:
647           ci: include template from gst-ci master branch again
648
649 2020-09-08 16:59:07 +0100  Tim-Philipp Müller <tim@centricular.com>
650
651         * meson.build:
652           Back to development
653
654 === release 1.18.0 ===
655
656 2020-09-08 00:09:51 +0100  Tim-Philipp Müller <tim@centricular.com>
657
658         * .gitlab-ci.yml:
659         * ChangeLog:
660         * NEWS:
661         * RELEASE:
662         * gstreamer-vaapi.doap:
663         * meson.build:
664           Release 1.18.0
665
666 2020-09-07 12:15:43 +0300  Sebastian Dröge <sebastian@centricular.com>
667
668         * gst-libs/gst/vaapi/gstvaapifilter.c:
669           Update for gst_video_transfer_function_*() function renaming
670           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/391>
671
672 2020-08-22 12:53:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
673
674         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
675         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
676           Revert "libs: decoder: h264, h265: in context at least 16 reference surfaces"
677           This reverts commit b387081a4d77d3da202da72686ab40fb9c83ee1e as discussed in
678           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/commit/b387081a4d77d3da202da72686ab40fb9c83ee1e
679
680 === release 1.17.90 ===
681
682 2020-08-20 16:16:25 +0100  Tim-Philipp Müller <tim@centricular.com>
683
684         * ChangeLog:
685         * NEWS:
686         * RELEASE:
687         * gstreamer-vaapi.doap:
688         * meson.build:
689           Release 1.17.90
690
691 2020-08-17 11:43:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
692
693         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
694           libs: surface: egl: guard memory type
695           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/384>
696
697 2020-08-17 19:26:43 +0800  He Junyan <junyan.he@intel.com>
698
699         * gst/vaapi/gstvaapidecode.c:
700           plugin: decode: Fix two mem leaks because of caps.
701           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/385>
702
703 2020-08-16 01:57:15 +0800  He Junyan <junyan.he@intel.com>
704
705         * gst/vaapi/gstvaapivideomemory.c:
706           plugin: allocator: No need to ref allocator when create mem.
707           We do not need to ref the allocator when creating GstVaapiVideoMemory
708           kind memory, and then release it in _free(). The framework already
709           does it for us.
710           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/383>
711
712 2020-08-14 10:42:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
713
714         * gst/vaapi/gstvaapiencode_h264.c:
715           vaapiencode: h264: ignore level without breaking negotiation
716           Since commit 9f627ef2 if the user sets level in the encoder src caps
717           the caps negotiation is rejected.
718           But since the same commit the same encoder set the autoconfigured
719           level in caps. Some change in the base class might fixed the operation
720           order so now the caps are set and later negotiated.
721           This patch removes the level check.
722           Fixes: #273
723           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/382>
724
725 2019-07-09 19:17:48 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
726
727         * gst-libs/gst/vaapi/egl_vtable.h:
728         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
729         * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
730         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
731           libs: egl: surface: export EGLImage as DMABuf if GEM not supported
732           This code path is used when frames are rendered as textures through
733           GstVideoGLTextureUploadMeta with EGL, mainly under Wayland.
734           Originally the EGLImage was exported as GEM, which was handled by
735           Intel drivers, but Gallium ones cannot create VA surfaces from
736           GEM buffers, only DMABuf.
737           This patch checks the memory types supported by VA driver to choose
738           the render the EGLImages from GEM or DMABuf, because GEM is still
739           better where supported.
740           DMABuf is well handled either by intel-vaapi-driver and gallium.
741           Fixes: #137
742           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
743
744 2020-05-26 16:18:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
745
746         * gst-libs/gst/vaapi/gstvaapifilter.c:
747         * gst-libs/gst/vaapi/gstvaapifilter.h:
748           libs: filter: gst_vaapi_filter_get_memory_types()
749           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/122>
750
751 2020-08-12 18:48:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
752
753         * gst/vaapi/gstvaapipluginbase.c:
754         * gst/vaapi/gstvaapipluginbase.h:
755           plugins: remove gst_vaapi_plugin_base_get_allowed_srcpad_raw_caps()
756           Since nobody uses it, just remove it.
757           Thus extract_allowed_surface_formats() is refactored to attend only
758           gst_vaapi_plugin_base_get_allowed_sinkpad_raw_caps().
759           Now a surface is created when the image chorma is different from the
760           previous one. And if the driver has the quirk, it outputs all the
761           supported image formats without trying them.
762           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
763
764 2020-08-12 17:50:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
765
766         * gst/vaapi/gstvaapidecode.c:
767           vaapidecode: expose raw src caps with same chroma
768           The try-and-error approach for getting the possible image formats from
769           a surface has brought several problems in different drivers, from
770           crashes to drop in performance.
771           Instead of that we change the algorithm to determine the possible
772           image formats based in the surface chroma: only those available image
773           formats with same chroma are exposed as possible raw caps.
774           Do this is important to avoid performance degrading in raw sinks
775           which doesn't handle NV12 but it does YV12 or I420.
776           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/381>
777
778 2020-07-10 17:05:38 +0800  He Junyan <junyan.he@intel.com>
779
780         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
781           libs: util: h265: use common parser API to get vaapi profiles.
782           We can reuse H265 parser's API to recognize the correct profile and
783           then just need to convert them to VAAPI profiles.
784           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/356>
785
786 2020-08-07 16:41:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
787
788         * gst-libs/gst/vaapi/meson.build:
789         * gst/vaapi/meson.build:
790         * meson.build:
791           build: update for gl pkg-config file split
792           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/378>
793
794 2020-08-06 12:51:27 +0800  Xu Guangxin <guangxin.xu@intel.com>
795
796         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
797           h264dec: mark remaining frames as unreference before exec_picture_refs_modification
798           8.2.4.2 required this. Some clips will crash if we do not fill the reference list like this.
799           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/376>
800
801 2020-07-31 18:22:46 +0800  He Junyan <junyan.he@intel.com>
802
803         * gst-libs/gst/vaapi/gstvaapiencoder.c:
804         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
805         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
806           libs: encoder: H265: Enable Main 12 profile support.
807           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
808
809 2020-07-31 19:17:39 +0800  He Junyan <junyan.he@intel.com>
810
811         * gst-libs/gst/vaapi/video-format.c:
812           video format: Fix P012_LE's chrome type typo.
813           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/375>
814
815 2020-08-04 21:15:01 +0300  Jordan Petridis <jordan@centricular.com>
816
817         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
818           gstvaapiminiobject.c:   fix clang 10 warnings
819           the typesystem checks in g_atomic_pointer_compare_and_exchange
820           seem to trigger some false positives with clang 10
821           similar to gstreamer!584
822           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/377>
823
824 2020-07-31 11:07:23 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
825
826         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
827           libs: window: wayland: destroy all wayland buffers during finalize
828           Some buffers and the associated FrameState state may still be pending at
829           that point. If the wayland connection is shared, then messages for the
830           buffer may still arrive. However, the associated event queue is already
831           deleted. So the result is a crash.
832           With a private connection the associated memory is leaked instead.
833           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
834
835 2020-06-18 20:25:18 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
836
837         * tests/examples/test-vaapicontext.c:
838           test: vaapicontext: fix draw callback with multiple videos
839           The callback is called for both windows. So make sure that
840           gst_video_overlay_set_render_rectangle() is called for the correct one.
841           Otherwise, the left video will be randomly moved behind the right video.
842           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
843
844 2020-06-19 09:23:52 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
845
846         * tests/examples/meson.build:
847         * tests/examples/test-vaapicontext.c:
848           test: vaapicontext: support wayland display
849           On Wayland, The whole gtk window is one Wayland surface. So
850           gtk_widget_get_window() must be called on the top-level widget.
851           For any other widget the following gdk_window_ensure_native() may create a
852           new top-level Wayland surface that is never visible.
853           As a result, the coordinates passed to
854           gst_video_overlay_set_render_rectangle() must be relativ to the top-level
855           window. Otherwise the video is placed incorrectly.
856           Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
857           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
858
859 2017-12-01 20:18:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
860
861         * tests/examples/test-vaapicontext.c:
862           test: vaapicontext: use playbin to test files
863           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
864
865 2017-11-29 11:11:39 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
866
867         * tests/examples/test-vaapicontext.c:
868           test: vaapicontext: add PLAY and NULL buttons
869           They only appear when only one sink is instanciated and their purpose
870           is to test the NULL-PLAY use case in context sharing.
871           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
872
873 2020-06-19 21:26:52 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
874
875         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
876           libs: wayland: update the opaque region in set_render_rect
877           gst_vaapi_window_wayland_set_render_rect() may be called from an arbitrary
878           thread. That thread may be responsible for making the window visible.
879           At that point another thread will block in gst_vaapi_window_wayland_sync()
880           because the frame callback will not be called until the window is visible.
881           If that happens, then acquiring the display lock in
882           gst_vaapi_window_wayland_set_render_rect() would result in a deadlock.
883           Cache the size of the opaque rectangle separately and create the opaque
884           region right before applying it to the surface.
885           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
886
887 2020-06-19 09:21:16 +0200  Hyunjun Ko <zzoon@igalia.com>
888
889         * gst-libs/gst/vaapi/gstvaapiwindow.c:
890         * gst-libs/gst/vaapi/gstvaapiwindow.h:
891         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
892         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
893         * gst/vaapi/gstvaapisink.c:
894           libs: window: implements gst_vaapi_window_set_render_rectangle
895           Implements new vmethod gst_vaapi_window_set_render_rectangle,
896           which is doing set the information of the rendered rectangle set by
897           user.
898           This is necessary on wayland at least to get exact information of
899           external surface.
900           And vaapisink calls this when gst_video_overlay_set_render_rectangle is
901           called.
902           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
903
904 2017-11-08 13:23:39 +0900  Hyunjun Ko <zzoon@igalia.com>
905
906         * gst/vaapi/gstvaapisink.c:
907           vaapisink: implements gst_vaapisink_wayland_create_window_from_handle()
908           Implements gst_vaapisink_wayland_create_window_from_handle() to support
909           using external wl_surface.
910           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
911
912 2020-06-19 09:11:20 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
913
914         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
915         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
916         * gst-libs/gst/vaapi/gstvaapiwindow.c:
917         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
918         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
919           libs: wayland: implement video overlay API
920           The Wayland sub-surfaces API is used to embed the video into an application
921           window.
922           See Appendix A. Wayland Protocol Specification as the following.
923           """
924           The aim of sub-surfaces is to offload some of the compositing work
925           within a window from clients to the compositor. A prime example is
926           a video player with decorations and video in separate wl_surface
927           objects.
928           This should allow the compositor to pass YUV video buffer processing to
929           dedicated overlay hardware when possible.
930           """
931           Added new method gst_vaapi_window_wayland_new_with_surface()
932           Original-Patch-By: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
933           Zhao Halley <halley.zhao@intel.com>
934           changzhix.wei@intel.com
935           Hyunjun Ko <zzoon@igalia.com>
936           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
937
938 2020-06-19 21:54:52 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
939
940         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
941           doc: libs: wayland: add 'transfer full' to the returnvalye of gst_vaapi_window_wayland_new
942           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
943
944 2020-06-11 08:25:57 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
945
946         * gst-libs/gst/vaapi/gstvaapidisplay.c:
947           libs: display: always call close_display()
948           All close_display() have their own checks for use_foreign_display and only
949           destroy locally created objects in that case.
950           Without this objects other than the actuall foreign display itself are
951           leaked.
952           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/342>
953
954 2020-07-30 23:37:10 +0800  He Junyan <junyan.he@intel.com>
955
956         * gst-libs/gst/vaapi/video-format.h:
957           video-format: Add the missing P012_LE into GST_VAAPI_FORMATS_ALL.
958           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/373>
959
960 2020-05-25 17:02:26 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
961
962         * gst/vaapi/gstvaapidecode.c:
963         * gst/vaapi/gstvaapipluginutil.c:
964         * gst/vaapi/gstvaapipluginutil.h:
965           plugins: add gst_vaapi_caps_set_width_and_height_range()
966           This utility function is called internally by
967           gst_vaapi_build_caps_from_formats() and can be used outside.
968           This function sets frame size and framerates ranges.
969           Also gst_vaapi_build_caps_from_formats() is simplified.
970           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/374>
971
972 2020-07-31 15:27:38 +0800  He Junyan <junyan.he@intel.com>
973
974         * gst-libs/gst/vaapi/gstvaapidecoder.c:
975           libs: decoder: fix a crash issue when get_surface_formats.
976           Some context does not report any valid format that we can support.
977           For example, the HEVC 444 12 bits decoder context, all the formats
978           it reports is not supported now, which make the formats list a NULL
979           array. We should check that pointer before we use it.
980           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/372>
981
982 2020-07-03 19:28:28 +0800  He Junyan <junyan.he@intel.com>
983
984         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
985           libs: encoder: h265: choose the profile based on allowed list.
986           We can decide the profile in ensure_profile(), based on allowed list
987           passed by the encode. We also need to check whether the entrypoint is
988           available. Once it is decided, no need to check the hw entrypoint
989           them again.
990           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
991
992 2020-07-29 22:05:41 +0800  He Junyan <junyan.he@intel.com>
993
994         * gst/vaapi/gstvaapiencode_h265.c:
995           plugins: encode: h265: set all allowed profiles to encoder.
996           We should collect all allowed profiles and pass them to the inside
997           encoder, rather than just calculate the max profile idc.
998           The allowed profiles should also be supported by the HW.
999           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1000
1001 2020-07-29 22:32:55 +0800  He Junyan <junyan.he@intel.com>
1002
1003         * gst-libs/gst/vaapi/gstvaapidisplay.c:
1004         * gst-libs/gst/vaapi/gstvaapidisplay.h:
1005           libs: display: Add a helper function to get profiles by codec.
1006           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1007
1008 2020-07-03 01:28:28 +0800  He Junyan <junyan.he@intel.com>
1009
1010         * gst/vaapi/gstvaapiencode_h265.c:
1011           plugins: encode: h265: collect all allowed profiles to encoder.
1012           We should collect all allowed profiles and pass them to the inside
1013           encoder, rather than just calculate the max profile idc.
1014           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1015
1016 2020-07-03 00:53:31 +0800  He Junyan <junyan.he@intel.com>
1017
1018         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1019         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
1020         * gst/vaapi/gstvaapiencode_h265.c:
1021           libs: encoder: h265: modify set_max_profile to set_allowed_profiles.
1022           In h265, bigger profile idc may not be compatible with the small profile
1023           idc. And more important, there are multi profiles with the same profile
1024           idc. Such as main-422-10, main-444 and main-444-10, they all have profile
1025           idc 4.
1026           So recording the max profile idc is not enough, the encoder needs to know
1027           all allowed profiles when deciding the real profile.
1028           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1029
1030 2020-07-02 23:33:31 +0800  He Junyan <junyan.he@intel.com>
1031
1032         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1033           libs: encoder: h265: No need to check hw_max_profile.
1034           In h265, higher profile idc number does not mean better compression
1035           performance and may be not compatible with the lower profile idc.
1036           So, it is not suitable to find the heighest idc for hw to ensure the
1037           compatibility.
1038           On the other side, when the entrypoint of the selected profile is valid,
1039           it means the hw really support this profile, no need to check it again.
1040           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/349>
1041
1042 2020-04-08 19:41:09 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1043
1044         * gst/vaapi/gstvaapipostproc.c:
1045           vaapipostproc: early return if fixate srcpad caps fails
1046           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/371>
1047
1048 2020-07-29 13:39:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1049
1050         * gst/vaapi/gstvaapipluginutil.c:
1051           vaapipluginutil: simplify gst_vaapi_find_preferred_caps_feature()
1052           Generalize the way how the preferred color format is chosen. Also
1053           use new GStreamre API as syntatic sugar.
1054           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/370>
1055
1056 2020-07-29 14:22:18 +0800  He Junyan <junyan.he@intel.com>
1057
1058         * gst-libs/gst/vaapi/gstvaapidecoder.c:
1059         * gst-libs/gst/vaapi/gstvaapiprofile.c:
1060         * gst-libs/gst/vaapi/gstvaapiprofile.h:
1061         * gst/vaapi/gstvaapidecode.c:
1062         * gst/vaapi/gstvaapiencode.c:
1063           libs: profile: Use get_codec_from_caps to get codec type.
1064           There is no need to get a profile from the caps and then convert
1065           that profile into codec type. We can get the codec type by caps's
1066           name easily.
1067           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1068
1069 2020-07-12 19:42:40 +0800  He Junyan <junyan.he@intel.com>
1070
1071         * gst-libs/gst/vaapi/gstvaapiprofile.c:
1072           libs: profile: h265: Fix return value of from_codec_data_h265.
1073           profile_from_codec_data_h265() returns wrong GstVaapiProfile for h265.
1074           The codec data of caps contain the profile IDC, but the mapping between
1075           profile IDC and GstVaapiProfile is wrong.
1076           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/358>
1077
1078 2020-07-07 00:46:23 +0800  He Junyan <junyan.he@intel.com>
1079
1080         * gst/vaapi/gstvaapiencode_vp9.c:
1081           plugins: encode: vp9: Implement vp9's allowed_profiles() func.
1082           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1083
1084 2020-07-08 16:30:17 +0800  He Junyan <junyan.he@intel.com>
1085
1086         * gst/vaapi/gstvaapiencode_h264.c:
1087         * gst/vaapi/gstvaapiencode_h265.c:
1088         * gst/vaapi/gstvaapipluginutil.c:
1089         * gst/vaapi/gstvaapipluginutil.h:
1090           plugin: util: rename h26x_encoder_get_profiles_from_caps().
1091           Change its name to encoder_get_profiles_from_caps(). Other codecs such
1092           as VP9 also needs to use this function.
1093           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1094
1095 2020-07-06 23:35:12 +0800  He Junyan <junyan.he@intel.com>
1096
1097         * gst-libs/gst/vaapi/gstvaapiutils_vpx.c:
1098         * gst-libs/gst/vaapi/gstvaapiutils_vpx.h:
1099         * gst-libs/gst/vaapi/meson.build:
1100           libs: utils: vpx: Add utils vpx to handle VP8/9 misc things.
1101           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/188>
1102
1103 2020-07-29 10:17:31 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1104
1105         * gst-libs/gst/vaapi/gstvaapicontext.c:
1106         * gst-libs/gst/vaapi/gstvaapidisplay.c:
1107         * gst-libs/gst/vaapi/gstvaapidisplay.h:
1108           libs: display, context: handle broken jpeg decoder for i965 driver
1109           JPEG decoding in i965 driver is pretty much broken, and the driver is
1110           deprecated which mean authors only accept trivial fixes.
1111           Surfaces for JPEG decoder context in i965 only handle IMC3[1] color
1112           format which is not a common format in GStreamer. It can export it to
1113           I420 at mapping raw bytes, but DMABuf exporting is problematic.
1114           This patch artificially adds NV12 to the context format list when it's
1115           JPEG decoder for i965 and force the usage of old VA-API for surface
1116           creation without specifying color format. Also it artificially
1117           disables the DMABuf announcement.
1118           1. https://docs.microsoft.com/en-us/windows/win32/medfound/recommended-8-bit-yuv-formats-for-video-rendering#420-formats-16-bits-per-pixel
1119           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1120
1121 2020-07-29 12:02:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1122
1123         * gst-libs/gst/vaapi/gstvaapicontext.c:
1124           libs: context: change function to internal code style
1125           Instead of a getter the function `get_preferred_format()` to
1126           `ensure_preferred_format()` which aligns to the code style.
1127           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/369>
1128
1129 2020-07-28 20:00:09 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1130
1131         * gst/vaapi/gstvaapidecode.c:
1132           vaapidecode: always merge profile caps in sink caps
1133           This commit fixes a regression of e962069d, where if the profile's
1134           caps doesn't have a caps profile, it's ignored.
1135           This patch add a conditional jump if the caps doesn't have a profile
1136           field to merge it.
1137           Fixes: #271
1138           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/368>
1139
1140 2020-07-28 12:22:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1141
1142         * meson.build:
1143           build: request libdrm >= 2.4.98 and fallback
1144           Fixes: #270
1145           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/367>
1146
1147 2020-05-18 17:32:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1148
1149         * gst/vaapi/gstvaapidecode.c:
1150           vaapidecode: dma caps only use reported color format
1151           This fix pipelines without vaapipostproc after vaapi decoder, such as
1152           gst-launch-1.0 filesrc location=~/file.mp4 ! parsebin ! vaapih264dec ! glimagesink
1153           On EGL platforms, so DMABuf is used.
1154           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1155
1156 2020-02-07 17:10:45 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1157
1158         * gst/vaapi/gstvaapidecode.c:
1159           vaapidecode: use allowed srcpad caps for caps query
1160           Instead of using just the template caps use the current allowed
1161           srcpad caps, which is created considering the current decoder
1162           context.
1163           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1164
1165 2020-01-22 17:41:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1166
1167         * gst-libs/gst/vaapi/gstvaapidecoder.c:
1168         * gst-libs/gst/vaapi/gstvaapidecoder.h:
1169         * gst/vaapi/gstvaapidecode.c:
1170           vaapidecode: build allowed srcpad caps from va context
1171           Instead of generating allowed srcpad caps with generic information,
1172           now it takes the size an formats limits from the decoder's context.
1173           This is possible since srcpad caps are generated after the internal
1174           decoder is created.
1175           The patch replaces gst_vaapi_decoder_get_surface_formats() with
1176           gst_vaapi_decoder_get_suface_attributes().
1177           From these attributes, formats are only used for VASurface memory
1178           caps feature. For system memory caps feature, the old
1179           gst_vaapi_plugin_get_allowed_srcpad_caps() is still used, since
1180           i965 jpeg decoder cannot deliver mappable format for gstreamer.
1181           And for the other caps features (dmabuf and texture upload) the
1182           same static list are used.
1183           This patch also adds DMABuf caps feature only if the context
1184           supports that memory type. Nonetheless, we keep the pre-defined
1185           formats since they are the subset of common derive formats formats
1186           supported either by amd/gallium and both intel drivers, since,
1187           when exporting the fd through vaAcquireBufferHandle()/
1188           vaReleaseBufferHandle(), the formats of the derivable image cannot
1189           be retriebable from the driver. Later we'll use the attribute
1190           formats for the DMABuf feature too, when the code be ported to
1191           vaExportSurfaceHandle().
1192           Finally, the allowed srcpad caps are removed if the internal decoder
1193           is destroyed, since context attribues will change.
1194           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1195
1196 2020-02-07 16:50:52 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1197
1198         * gst/vaapi/gstvaapidecode.c:
1199           vaapidecode: reorder src caps template
1200           Since negotiation depends on caps order, first is VA, then DMABuf,
1201           later GLUploadTexture (deprecated) and finally raw.
1202           Also, for decoders, the possible available color formats for DMABuf
1203           is extended to all the possible VA color formats.
1204           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/366>
1205
1206 2020-07-22 10:01:41 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1207
1208         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1209           libs: window: wayland: use dmabuf protocol if available
1210           Currently vaGetSurfaceBufferWl() is used to create wayland buffers.
1211           Unfortunately this is not implemented by the 'media-driver' and Mesa VA-API
1212           drivers. And the implementation provided by 'intel-vaapi-driver' is not
1213           compatible with a Wayland server that uses the iris Mesa driver.
1214           So create the Wayland buffers manually with the zwp_linux_dmabuf_v1 wayland
1215           protocol. Formats and modifiers supported by the Wayland server are taken
1216           into account. If necessary, VPP is enabled to convert the buffer into a
1217           supported format.
1218           Fall back to vaGetSurfaceBufferWl() if creating buffers via dambuf protocol
1219           fails.
1220           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1221
1222 2020-07-21 10:03:19 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1223
1224         * gst-libs/gst/vaapi/gstvaapiwindow.c:
1225         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
1226           libs: window: allow choosing the format for the vpp pool
1227           Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
1228           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1229
1230 2020-06-28 17:42:29 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1231
1232         * gst-libs/gst/vaapi/video-format.c:
1233         * gst-libs/gst/vaapi/video-format.h:
1234           video-format: add DRM formats to the mapping table
1235           This will be needed for the DMABuf protocol support to map DRM formats to
1236           vaapi and gstreamer formats.
1237           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1238
1239 2020-07-22 09:36:18 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1240
1241         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1242         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
1243         * gst-libs/gst/vaapi/meson.build:
1244           libs: display: wayland: add basic dmabuf protocol support
1245           This is just the basic infrastructure. Hook up the interface and collect
1246           all supported formats.
1247           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1248
1249 2020-07-06 09:59:40 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1250
1251         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
1252           libs: window: wayland: wait for configure before committing the first buffer
1253           Committing the first buffer for a surface must not be done before
1254           ack_configure() has been sent for the xdg_surface.
1255           With weston, the commit will fail with "error 3: xdg_surface has never been
1256           configured".
1257           Wait in gst_vaapi_window_wayland_show() until configure is done to avoid
1258           this.
1259           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/346>
1260
1261 2020-07-01 14:50:51 +0800  He Junyan <junyan.he@hotmail.com>
1262
1263         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1264           libs: encoder: h265: set no P frame automatically.
1265           The double reference lists may be required by drivers and there should
1266           be no P frames in the of stream. The old way of converting P frames to
1267           B frames is by setting `low-delay-b` property, which is unconvenient
1268           and has bad user experience, since most of the users do not know when
1269           to set this property, and if it is not set correctly, the encoding
1270           pipeline fails or even hangs on some platforms. VA driver now provides
1271           a attribute to query whether both reference lists must be un-NULL for
1272           a profile/entrypoint pair.
1273           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1274
1275 2020-04-15 16:26:55 +0800  He Junyan <junyan.he@hotmail.com>
1276
1277         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1278           libs: encoder: h265: Deprecate the low-delay-b property.
1279           In HEVC, P and B definitions are different from AVC: P frames have
1280           just one reference list and so 1 MV, while B frames have two reference
1281           lists and so 2 MVs. No matter B or P, ist reference lists can contain
1282           forward/backward reference. So P and B can both have bi-directions
1283           dependency, the difference is just their reference list
1284           number (i.e. MV number). This is different from the AVC.
1285           The *low delay b mode* refers to a special HEVC mode, in which the
1286           stream just contain I and B frames, without P frames, and all B frames
1287           only have forward direction dependencies (i.e. all inter frames have 2
1288           reference lists but no backward reference in both lists).  This is
1289           similar to AVC I/P mode, but changing the P to the forward dependent
1290           B.
1291           The `low-delay-b` property is now just used to simply convert all P
1292           frames to B frames when driver does not support P frames (so both
1293           reference lists have the same references frames). This is a little
1294           different from the meaning of low delay b mode (the two ref lists may
1295           have the different reference frames). And the driver now can report
1296           whether it supports P frames correctly, so there is no need to use
1297           this property and deprecate it.
1298           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/284>
1299
1300 2020-07-24 12:54:31 +0200  Marc Leeman <m.leeman@televic.com>
1301
1302         * gst/vaapi/gstvaapipostproc.c:
1303           postproc: reconfigure after changing cropping values
1304           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/365>
1305
1306 2020-07-09 13:49:29 +0800  He Junyan <junyan.he@intel.com>
1307
1308         * gst/vaapi/gstvaapiencode.h:
1309         * gst/vaapi/gstvaapiencode_h264.c:
1310         * gst/vaapi/gstvaapiencode_h265.c:
1311         * gst/vaapi/gstvaapiencode_jpeg.c:
1312         * gst/vaapi/gstvaapiencode_mpeg2.c:
1313         * gst/vaapi/gstvaapiencode_vp8.c:
1314         * gst/vaapi/gstvaapiencode_vp9.c:
1315           plugin: encode: Add static caps for template documentation.
1316           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1317
1318 2020-07-08 19:03:14 +0800  He Junyan <junyan.he@intel.com>
1319
1320         * gst/vaapi/gstvaapiencode_vp9.c:
1321           plugin: encode: vp9: Use the dynamically built src template caps.
1322           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1323
1324 2020-07-08 19:02:45 +0800  He Junyan <junyan.he@intel.com>
1325
1326         * gst/vaapi/gstvaapiencode_vp8.c:
1327           plugin: encode: vp8: Use the dynamically built src template caps.
1328           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1329
1330 2020-07-08 19:02:23 +0800  He Junyan <junyan.he@intel.com>
1331
1332         * gst/vaapi/gstvaapiencode_jpeg.c:
1333           plugin: encode: jpeg: Use the dynamically built src template caps.
1334           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1335
1336 2020-07-08 19:00:39 +0800  He Junyan <junyan.he@intel.com>
1337
1338         * gst/vaapi/gstvaapiencode_mpeg2.c:
1339           plugin: encode: mpeg2: Use the dynamically built src template caps.
1340           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1341
1342 2020-07-08 18:59:18 +0800  He Junyan <junyan.he@intel.com>
1343
1344         * gst/vaapi/gstvaapiencode_h265.c:
1345           plugin: encode: h265: Use the dynamically built src template caps.
1346           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1347
1348 2020-07-08 18:57:26 +0800  He Junyan <junyan.he@intel.com>
1349
1350         * gst/vaapi/gstvaapiencode_h264.c:
1351           plugin: encode: h264: Use the dynamically built src template caps.
1352           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1353
1354 2020-07-08 18:46:58 +0800  He Junyan <junyan.he@intel.com>
1355
1356         * gst/vaapi/gstvaapiencode.h:
1357         * gst/vaapi/gstvaapiencode_h264.c:
1358         * gst/vaapi/gstvaapiencode_h265.c:
1359         * gst/vaapi/gstvaapiencode_jpeg.c:
1360         * gst/vaapi/gstvaapiencode_mpeg2.c:
1361         * gst/vaapi/gstvaapiencode_vp8.c:
1362         * gst/vaapi/gstvaapiencode_vp9.c:
1363           plugin: encode: Store the coded caps in type's init data.
1364           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1365
1366 2020-07-08 18:30:00 +0800  He Junyan <junyan.he@intel.com>
1367
1368         * gst/vaapi/gstvaapipluginutil.c:
1369         * gst/vaapi/gstvaapipluginutil.h:
1370           plugin: util: add helper function build_template_coded_caps_by_codec()
1371           Like build_template_raw_caps_by_codec(), this function can detect and
1372           build the caps for specified codec based on the query of the profiles.
1373           The result is coded caps such as video/x-h265, video/x-h264. The result
1374           can be used as the template of encode's src or decode's sink.
1375           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1376
1377 2020-07-07 17:16:41 +0800  He Junyan <junyan.he@intel.com>
1378
1379         * gst/vaapi/gstvaapiencode.h:
1380         * gst/vaapi/gstvaapipluginutil.c:
1381         * gst/vaapi/gstvaapipluginutil.h:
1382           plugins: utils: rename build_template_caps_by_codec.
1383           Rename the function build_template_caps_by_codec() to the name of
1384           build_template_raw_caps_by_codec(). It can be used to collect all
1385           raw video formats for encode's sink and decode's src.
1386           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/354>
1387
1388 2020-07-21 20:14:57 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1389
1390         * gst/vaapi/gstvaapidecode.c:
1391         * gst/vaapi/gstvaapipluginutil.c:
1392         * gst/vaapi/gstvaapipluginutil.h:
1393           vaapidecode: merge common profiles before setting size range
1394           The synthetic profiles, such as H264 baseline, H265 intra, etc. are
1395           added at the end of processing all available VA profiles. This
1396           generated an non-optimal caps for negotiation, since the synthetic
1397           profiles don't have frame size ranges.
1398           This patch adds those possible synthetic profiles when the associated
1399           profile is processed, with its frame size ranges.
1400           Now allowed sink caps are simpler.
1401           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/363>
1402
1403 2020-07-21 22:05:08 +0800  He Junyan <junyan.he@intel.com>
1404
1405         * gst/vaapi/gstvaapipluginutil.c:
1406           plugin: util: Add the missing DMA buffer input in template caps.
1407           We pass the wrong parameter to gst_vaapi_build_caps_from_formats()
1408           and lose the DMA feature in caps.
1409           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/362>
1410
1411 2020-07-14 18:13:56 +0800  He Junyan <junyan.he@intel.com>
1412
1413         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1414         * gst-libs/gst/vaapi/gstvaapiprofile.c:
1415         * gst-libs/gst/vaapi/gstvaapiprofile.h:
1416         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1417         * gst-libs/gst/vaapi/video-format.c:
1418         * gst/vaapi/gstvaapidecode.c:
1419           libs: decoder: H265: Add MAIN_12 profile supporting.
1420           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1421
1422 2020-07-09 23:07:38 +0800  He Junyan <junyan.he@intel.com>
1423
1424         * gst-libs/gst/vaapi/gstvaapiimage.c:
1425         * gst-libs/gst/vaapi/video-format.c:
1426           video-format: Add P012_LE format.
1427           It can be used as HEVC YUV_4:2:0 12bits stream's decoder output, and
1428           also can be used as the input format for encoding HEVC YUV_4:2:0 12bits
1429           stream.
1430           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/359>
1431
1432 2020-07-17 00:45:53 +0800  He Junyan <junyan.he@intel.com>
1433
1434         * gst/vaapi/gstvaapidecode.c:
1435           plugin: decode: correct ensure_allowed_sinkpad_caps's caps.
1436           The decode allowed caps returned by ensure_allowed_sinkpad_caps()
1437           contains all profiles of the whole VAAPI, like:
1438           image/jpeg, width=(int)[ 0, 1638 4 ], height=(int)[ 0, 16384 ];
1439           video/mpeg, mpegversion=(int)2, profile=(string){ simple, main },
1440           width=(int)[ 0, 2048 ], height=(int)[ 0, 2048 ]; video/x-h264,
1441           profile=(string){ main, high, constrained-baseline }, width=(int)[ 0,
1442           4096 ], height=(int)[ 0, 4096 ]; video/x-h264, profile=(string){
1443           constrained-high, progressive-high, baseline }; video/x-h265,
1444           profile=(string){ main, main-intra }, width=(int)[ 0, 8192 ],
1445           height=(int)[ 0, 8192 ]; video/x-vp8, width=(int)[ 0, 4096 ],
1446           height=(int)[ 0, 4096 ]; video/x-wmv, wmvversion=(int)3,
1447           format=(string)WVC1, profile=(string)advanced, width=(int)[ 0, 3840 ],
1448           height=(int)[ 0, 3840 ]; video/x-wmv, wmvversion=(int)3,
1449           profile=(string){ simple, main }, width=(int)[ 0, 3840 ],
1450           height=(int)[ 0, 3840 ]
1451           Which is verbose and may have latent problems. It should only contains
1452           the profiles belong to its codec type. For example, h265 should only
1453           return:
1454           video/x-h265, profile=(string){ main, main-intra },
1455           width=(int)[ 0, 8192 ], height=(int)[ 0, 8192 ]
1456           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/361>
1457
1458 2020-07-13 11:06:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1459
1460         * gst/vaapi/gstvaapidecodebin.c:
1461           vaapidecodebin: don't force NV12 since P010_10LE is now possible
1462           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/360>
1463
1464 2020-07-12 20:34:31 +0800  He Junyan <junyan.he@intel.com>
1465
1466         * gst-libs/gst/vaapi/gstvaapiprofile.c:
1467           libs: profile: The VP9 profiles' name should be just "0,1,2,3"
1468           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/357>
1469
1470 2020-07-08 17:33:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1471
1472         * gst-libs/gst/vaapi/gstvaapidecoder.c:
1473         * gst-libs/gst/vaapi/gstvaapidecoder.h:
1474         * gst/vaapi/gstvaapidecode.c:
1475         * gst/vaapi/gstvaapidecode.h:
1476         * tests/internal/simple-decoder.c:
1477           vaapidecode: Remove NO_SURFACE error handling
1478           Since surfaces are not bounded to decoding context it makes no sense
1479           to keep the surface semaphore. This patch removes the handling of
1480           this error.
1481           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1482
1483 2020-07-08 17:48:57 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1484
1485         * gst/vaapi/gstvaapidecode.c:
1486         * gst/vaapi/gstvaapidecode.h:
1487           Revert "vaapidecode: drop non-keyframe in reverse playback"
1488           Since the number of surfaces are not bounded to decoder context,
1489           this hack is no longer needed.
1490           This reverts commit 19c0c8a97385ce119440c4aad2d689fc79297435.
1491           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1492
1493 2019-12-06 14:21:33 +0800  He Junyan <junyan.he@hotmail.com>
1494
1495         * gst-libs/gst/vaapi/gstvaapicontext.c:
1496           libs: decoder: context: remove surfaces binding from context.
1497           The vaCreateContext do not need to specify the surfaces for the
1498           context creation now. So we do not need to bind any surface to the
1499           context anymore. Surfaces should be the resource belong to display
1500           and just be used in encoder/decoder context.
1501           The previous manner has big limitation for decoder. The context's
1502           surface number is decided by dpb size. All the surfaces in dpb will
1503           be attached to a gstbuffer and be pushed to down stream, and the
1504           decoder need to wait down stream free the surface and go on if not
1505           enough surface available. For more and more use cases, this causes
1506           deadlock. For example,
1507           gst-launch-1.0 filesrc location=a.h264 ! h264parse ! vaapih264dec
1508           ! x264enc ! filesink location=./output.h264
1509           will cause deadlock and make the whole pipeline hang.
1510           the x264enc encoder need to cache more than dpb size surfaces.
1511           The best solution is seperating the surfaces number and the dpb size.
1512           dpb and dpb size shoule be virtual concepts maintained by the decoder.
1513           And let the surfaces_pool in context maintain the re-use of all surfaces.
1514           For encoder, the situation is better, all the surfaces are just used
1515           as reference frame and no need to be pushed to down stream. We can
1516           just reserve and set the capacity of the surfaces_pool to meet the
1517           request.
1518           Fix: #147
1519           Fix: #88
1520           Co-Author: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1521           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/353>
1522
1523 2020-07-08 17:50:51 +0100  Tim-Philipp Müller <tim@centricular.com>
1524
1525         * meson.build:
1526         * scripts/extract-release-date-from-doap-file.py:
1527           meson: set release date from .doap file for releases
1528           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/355>
1529
1530 2020-07-08 11:57:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1531
1532         * gst/vaapi/gstvaapipluginbase.c:
1533           plugins: use VA allocator by default on raw caps
1534           Instead of using dmabuf allocator in source pad, when raw video caps
1535           are negotiated, it uses VA allocator as before, since it is stable
1536           in more use cases, for example transcoding, and more backend drivers.
1537           Dmabuf allocator is only used when dmabuf caps feature is negotiated.
1538           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/352>
1539
1540 2020-06-06 18:47:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1541
1542         * gst/vaapi/gstvaapi.c:
1543           vaapisink: rank it as secondary
1544           iHD doesn't provide a full implemention for rendering surfaces and
1545           i965 has problems in wayland. And I suspect this path is followed
1546           by other driver implementations.
1547           This patch demotes the rank of vaapisink to secondary, so it will
1548           not be autoplugged avoiding bad experience of users.
1549           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/336>
1550
1551 2020-06-19 10:44:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1552
1553         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1554         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1555           libs: decoder: h264, h265: in context at least 16 reference surfaces
1556           Registering only stream's DBP size number of surfaces for decoding VA
1557           surfaces brings issues for certain streams. This change register all
1558           possible number of reference surfaces in a stream, which is 16.
1559           Fixes: #94
1560
1561 2020-07-04 21:21:57 +0800  He Junyan <junyan.he@intel.com>
1562
1563         * gst/vaapi/gstvaapiencode_h265.c:
1564           plugins: encode: h265: Add profile,level,tier to output caps.
1565           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1566
1567 2020-07-04 21:08:20 +0800  He Junyan <junyan.he@intel.com>
1568
1569         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1570           libs: encoder: h265: init tier to GST_VAAPI_TIER_H265_UNKNOWN.
1571           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1572
1573 2020-07-04 21:05:49 +0800  He Junyan <junyan.he@intel.com>
1574
1575         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1576           libs: encoder: h265: fix a bug to get get_profile_tier_level.
1577           0 is a valid value for h265 tier.
1578           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/350>
1579
1580 2020-07-02 19:19:35 +0800  He Junyan <junyan.he@intel.com>
1581
1582         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1583           libs: encoder: h265: no need to check the high compression tune.
1584           The h265 encoder just support tune mode:
1585           (0): none             - None
1586           (3): low-power        - Low power mode
1587           So, no need to check and set the high compression parameters.
1588           And by the way, the current ensure_tuning_high_compression manner
1589           of choosing the hightest profile idc as the best compression profile
1590           is not correct. Unlike h264, in h265 the higher profile idc number
1591           does not mean it has more compression tools, and so it has better
1592           compression performance. It may even be un-compatible with the lower
1593           profile idc. For example, the SCREEN_CONTENT_CODING profile with idc
1594           9 is not compatible with 3D_MAIN profile with idc 8.
1595           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/348>
1596
1597 2020-07-03 02:04:14 +0100  Tim-Philipp Müller <tim@centricular.com>
1598
1599         * meson.build:
1600           Back to development
1601
1602 === release 1.17.2 ===
1603
1604 2020-07-03 00:36:40 +0100  Tim-Philipp Müller <tim@centricular.com>
1605
1606         * ChangeLog:
1607         * NEWS:
1608         * RELEASE:
1609         * gstreamer-vaapi.doap:
1610         * meson.build:
1611           Release 1.17.2
1612
1613 2020-06-23 10:20:46 -0400  Thibault Saunier <tsaunier@igalia.com>
1614
1615         * docs/gst_plugins_cache.json:
1616         * gst/vaapi/gstvaapiencode.c:
1617           docs: Mark parent classes as plugin API
1618
1619 2020-06-23 00:07:57 +0200  Mathieu Duponchelle <mathieu@centricular.com>
1620
1621         * docs/meson.build:
1622           meson: mark plugins cache target as always stale
1623
1624 2020-06-19 23:34:11 -0400  Thibault Saunier <tsaunier@igalia.com>
1625
1626         * docs/gst_plugins_cache.json:
1627           doc: Stop documenting properties from parents
1628
1629 2020-06-20 00:28:35 +0100  Tim-Philipp Müller <tim@centricular.com>
1630
1631         * meson.build:
1632           Back to development
1633
1634 === release 1.17.1 ===
1635
1636 2020-06-19 19:27:11 +0100  Tim-Philipp Müller <tim@centricular.com>
1637
1638         * ChangeLog:
1639         * NEWS:
1640         * RELEASE:
1641         * gstreamer-vaapi.doap:
1642         * meson.build:
1643           Release 1.17.1
1644
1645 2020-06-19 15:21:56 +0100  Tim-Philipp Müller <tim@centricular.com>
1646
1647         * docs/gst_plugins_cache.json:
1648         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
1649         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
1650         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
1651         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
1652           Update plugin docs and add more plugins
1653           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/344>
1654
1655 2020-06-11 08:32:05 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
1656
1657         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
1658           libs: wayland: display: only handle the first output
1659           Right now, all outputs are handled. The means that the registry object for
1660           all but the last are leaked. As a result the sizes are not used correctly.
1661           With two outputs, at first the mode and physical size of the second output
1662           are used. If the first output changes the mode, then the physical size of
1663           the second output is used in combination with the resolution of the first
1664           output. The resulting pixel aspect ratio is incorrect.
1665           There seems to be no way to determine on which output the window is shown,
1666           so just use the first one to get consistent results.
1667           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/341>
1668
1669 2020-06-11 18:15:17 +0800  He Junyan <junyan.he@hotmail.com>
1670
1671         * gst/vaapi/gstvaapipluginbase.c:
1672           plugins: pluginbase: Do not destroy display when _close()
1673           When the element's state changes to NULL, it can still receive
1674           queries, such as the image formats. The display is needed in such
1675           queries but not well protected for MT safe.
1676           For example, ensure_allowed_raw_caps() may still use the display
1677           while it is disposed by gst_vaapi_plugin_base_close() because of
1678           the state change.
1679           We can keep the display until the element is destroyed. When the
1680           state changes to NULL, and then changes to PAUSED again, the display
1681           can be correctly set(if type changes), or leave untouched.
1682           Fix: #260
1683           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/343>
1684
1685 2020-06-09 21:19:11 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1686
1687         * gst-libs/gst/vaapi/gstvaapicontext.c:
1688           libs: context: use correct printing modifier
1689           GstVaapiID is an alias of gsize, thus its modifier is platform
1690           dependant.
1691           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/340>
1692
1693 2020-06-06 00:42:46 +0200  Mathieu Duponchelle <mathieu@centricular.com>
1694
1695         * gst-libs/gst/vaapi/gstvaapidisplay.c:
1696         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1697         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1698         * gst-libs/gst/vaapi/gstvaapifilter.c:
1699         * gst-libs/gst/vaapi/gstvaapivalue.c:
1700           plugins: uddate gst_type_mark_as_plugin_api() calls
1701
1702 2020-03-05 18:12:27 +0800  He Junyan <junyan.he@hotmail.com>
1703
1704         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1705           libs: encoder: h265: Enable tile in VA command.
1706           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1707
1708 2020-03-05 17:56:51 +0800  He Junyan <junyan.he@hotmail.com>
1709
1710         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1711           libs: encoder: h265: Add ensure_tile to calculate tiles.
1712           We need consider tiles and slices together, separate tiles uniformly
1713           and then assign slices uniformly to each tiles.
1714           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1715
1716 2020-04-30 14:19:29 +0800  He Junyan <junyan.he@hotmail.com>
1717
1718         * gst-libs/gst/vaapi/gstvaapidisplay.c:
1719         * gst-libs/gst/vaapi/gstvaapidisplay.h:
1720           libs: display: add a quirk for iHD driver tile encoding.
1721           The iHD driver has a requirement that one slice can not span tiles
1722           when tile is enabled, which is not required by hevc spec.
1723           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1724
1725 2020-03-05 17:40:43 +0800  He Junyan <junyan.he@hotmail.com>
1726
1727         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1728           libs: encoder: h265: Add tile info to bitstream.
1729           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1730
1731 2020-03-05 17:29:41 +0800  He Junyan <junyan.he@hotmail.com>
1732
1733         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1734           libs: encoder: h265: promote level if tile is enabled.
1735           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1736
1737 2020-03-05 17:07:28 +0800  He Junyan <junyan.he@hotmail.com>
1738
1739         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1740         * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
1741           libs: encoder: h265: Add num-tile-cols/rows properties.
1742           These properties are used for support of tile encoding. We just
1743           support uniform mode of tile encoding, that is, separating picture
1744           equally by (num-tile-cols X num-tile-rows).
1745           According to HEVC spec A1, the max number of tiles in column is 20
1746           and in rows is 22, so add two constant definitions.
1747           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1748
1749 2020-03-05 16:21:24 +0800  He Junyan <junyan.he@hotmail.com>
1750
1751         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1752           libs: encoder: h265: extract slice creation from add_slice_headers
1753           extract slice creation details from add_slice_headers, and let the
1754           add_slice_headers just focuses on calculating slice start address
1755           and CTU number.
1756           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1757
1758 2020-03-05 12:44:45 +0800  He Junyan <junyan.he@hotmail.com>
1759
1760         * gst-libs/gst/vaapi/gstvaapiencoder.c:
1761         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
1762           libs: encoder: Add a helper function to check the tile support.
1763           Encoding by tiles separation now is a very common feature for all
1764           relative new codecs, such as HEVC, AV1, and VP9. Just make this
1765           check as a common helper function of the encoder base class.
1766           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/294>
1767
1768 2020-05-13 18:02:07 +0800  He Junyan <junyan.he@hotmail.com>
1769
1770         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1771         * gst-libs/gst/vaapi/gstvaapiprofile.c:
1772         * gst-libs/gst/vaapi/gstvaapiprofile.h:
1773         * gst-libs/gst/vaapi/gstvaapiutils.c:
1774         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1775           libs: decoder: H265: Add SCC_MAIN_444_10 profile support.
1776           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1777
1778 2020-05-13 16:05:59 +0800  He Junyan <junyan.he@hotmail.com>
1779
1780         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1781           libs: decoder: update reference list for SCC.
1782           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1783
1784 2020-05-13 15:46:29 +0800  He Junyan <junyan.he@hotmail.com>
1785
1786         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1787           libs: decoder: H265: Fill picture and slice SCC parameters.
1788           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1789
1790 2020-05-13 15:00:53 +0800  He Junyan <junyan.he@hotmail.com>
1791
1792         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1793           libs: util: H265: recognize the SCC profiles.
1794           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1795
1796 2020-05-13 14:53:46 +0800  He Junyan <junyan.he@hotmail.com>
1797
1798         * gst-libs/gst/vaapi/gstvaapiprofile.c:
1799         * gst-libs/gst/vaapi/gstvaapiprofile.h:
1800         * gst-libs/gst/vaapi/gstvaapiutils.c:
1801           libs: profile: Add screen extended main/main10/main444 define.
1802           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/311>
1803
1804 2020-04-03 14:53:40 +0800  He Junyan <junyan.he@hotmail.com>
1805
1806         * gst-libs/gst/vaapi/gstvaapiencoder.c:
1807         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1808         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1809         * gst/vaapi/gstvaapiencode_h265.c:
1810           libs: encoder: h265: Add support for MAIN 4:2:2 10 profile.
1811           Using YUY2 as the input of the encoder can generate main 4:2:2 bit
1812           streams and using Y210 as the input of the encoder can generate main
1813           4:2:2 10 bit streams.
1814           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1815
1816 2020-05-29 16:40:20 +0800  He Junyan <junyan.he@hotmail.com>
1817
1818         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1819           libs: encoder: h265: Use correct index for SubWidthC and SubHeightC.
1820           We need to use the chroma_format_idc as the index for getting the
1821           SubWidthC and SubHeightC values as the spec 6.1(table 6-1) defines.
1822           The wrong SubWidthC or SubHeightC make us calculate a wrong right
1823           or bottom offset for crop size and generate garbage in output.
1824           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1825
1826 2020-05-29 15:37:24 +0800  He Junyan <junyan.he@hotmail.com>
1827
1828         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
1829           libs: encoder: h265: Fix chrome idc for 444 10 bits
1830           GST_VAAPI_CHROMA_TYPE_YUV444_10BPP should also set chroma_format_idc
1831           to 3 as GST_VAAPI_CHROMA_TYPE_YUV444 does.
1832           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/334>
1833
1834 2020-06-03 18:37:22 -0400  Thibault Saunier <tsaunier@igalia.com>
1835
1836         * docs/meson.build:
1837           doc: Require hotdoc >= 0.11.0
1838
1839 2020-06-03 18:49:53 -0400  Thibault Saunier <tsaunier@igalia.com>
1840
1841         * gst/vaapi/gstvaapipostproc.c:
1842           doc: Fix wrong link to GstVideoDirectionMethod
1843
1844 2020-06-03 17:38:10 -0400  Thibault Saunier <tsaunier@igalia.com>
1845
1846         * docs/gst_plugins_cache.json:
1847         * meson_options.txt:
1848           docs: Update plugin cache with the new format
1849           And fix the default URL which should not be inside quotes.
1850
1851 2020-06-03 17:37:48 -0400  Thibault Saunier <tsaunier@igalia.com>
1852
1853         * gst-libs/gst/vaapi/gstvaapidisplay.c:
1854         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1855         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
1856         * gst-libs/gst/vaapi/gstvaapifilter.c:
1857         * gst-libs/gst/vaapi/gstvaapivalue.c:
1858         * gst/vaapi/gstvaapipostproc.c:
1859           Use gst_type_mark_as_plugin_api() for all non-element plugin types
1860
1861 2020-05-23 22:09:17 +0800  He Junyan <junyan.he@hotmail.com>
1862
1863         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
1864         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
1865         * gst-libs/gst/vaapi/gstvaapicontext.h:
1866         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1867         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
1868         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
1869         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
1870         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
1871         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
1872         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
1873         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
1874         * gst-libs/gst/vaapi/gstvaapiimage.h:
1875         * gst-libs/gst/vaapi/gstvaapiobject.c:
1876         * gst-libs/gst/vaapi/gstvaapiobject.h:
1877         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
1878         * gst-libs/gst/vaapi/gstvaapiprofile.h:
1879         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
1880         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
1881         * gst-libs/gst/vaapi/gstvaapisurface.h:
1882         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
1883         * gst-libs/gst/vaapi/gstvaapivideopool.c:
1884         * gst-libs/gst/vaapi/meson.build:
1885           libs: delete all gstvaapiobject related files.
1886           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1887
1888 2020-05-23 20:48:54 +0800  He Junyan <junyan.he@hotmail.com>
1889
1890         * gst-libs/gst/vaapi/gstvaapisurface.c:
1891           libs: surface: return fail immediately if can not create subpicture
1892           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1893
1894 2020-05-23 14:00:58 +0800  He Junyan <junyan.he@hotmail.com>
1895
1896         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
1897         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
1898         * gst-libs/gst/vaapi/gstvaapisurface.c:
1899         * tests/internal/image.c:
1900           libs: subpicture: Make subpicture a standard GstMiniObject.
1901           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/331>
1902
1903 2020-05-26 02:19:15 +0800  He Junyan <junyan.he@hotmail.com>
1904
1905         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1906           libs: decoder: h264: Add ref flags for splited field.
1907           When split one frame into fields, the second field should also
1908           copy the reference flags.
1909           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/333>
1910
1911 2020-05-25 15:46:58 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1912
1913         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1914           libs: decoder: h264: disallow multiple slice group
1915           As far as we know there are no VAAPI drivers supporting FMO, which
1916           migth be used in baseline streams.
1917           This commit is a continuation of
1918           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328
1919           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/332>
1920
1921 2020-05-20 10:50:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1922
1923         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
1924         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
1925         * gst/vaapi/gstvaapidecode.c:
1926         * gst/vaapi/gstvaapidecode_props.c:
1927         * gst/vaapi/gstvaapidecode_props.h:
1928           vaapidecoder: h264: remove baseline as constrained property
1929           From now on always the baseline is going to be treated as constrained without
1930           need of setting a property.
1931           Since the property was added along the development cycle (1.17 / commit
1932           866a9f06) and never released, we assume that it is safe to remove it.
1933           Fixes: #252
1934           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/328>
1935
1936 2020-05-21 11:37:36 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1937
1938         * README:
1939           README: update VP9 decoder and encoder
1940           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/330>
1941
1942 2020-05-21 13:42:47 +0800  Haihao Xiang <haihao.xiang@intel.com>
1943
1944         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
1945           vaapiencoder_h264: set direct_spatial_mv_pred_flag to true by default
1946           This flag is set to true by default in both MediaSDK and FFmpeg-vaapi,
1947           so let's align this plugin with other libraries / softwares.
1948           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/329>
1949
1950 2020-05-18 18:29:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1951
1952         * gst/vaapi/gstvaapivideobufferpool.c:
1953           vaapivideobufferpool: fix meta overwrite
1954           commit 7ac2a207 added a regression by erroneously assumed that
1955           GstVaapiVideoMeta is actually a GstMeta, which is not.
1956           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/327>
1957
1958 2020-05-17 09:55:42 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1959
1960         * gst/vaapi/gstvaapivideobufferpool.c:
1961         * gst/vaapi/gstvaapivideometa_texture.c:
1962         * gst/vaapi/gstvaapivideometa_texture.h:
1963           vaapivideopool: Set pooled flag to added metas.
1964           So this could hint filters how to use these metas.
1965           Had to change the return value for texutre upload meta in order
1966           to flag it.
1967           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/326>
1968
1969 2020-05-16 20:49:31 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
1970
1971         * gst-libs/gst/vaapi/gstvaapicontext.c:
1972         * gst-libs/gst/vaapi/gstvaapidisplay.c:
1973         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
1974         * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
1975         * gst-libs/gst/vaapi/gstvaapisurface.c:
1976           libs: use array_unref() rather than array_free()
1977           It is more convinience and thread-safe.
1978           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/325>
1979
1980 2020-04-10 22:20:35 +0800  He Junyan <junyan.he@hotmail.com>
1981
1982         * gst/vaapi/gstvaapi.c:
1983           plugin: use register_type to replace get_type for encode init.
1984           xxx_register_type will detect the template sink caps and is needed
1985           to be called at init time.
1986           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1987
1988 2020-04-10 22:05:50 +0800  He Junyan <junyan.he@hotmail.com>
1989
1990         * gst/vaapi/gstvaapiencode_vp9.c:
1991         * gst/vaapi/gstvaapiencode_vp9.h:
1992           plugins: encode: Modify sink template of vp9 encode.
1993           Use gst_vaapi_detect_codec_caps to get more precise template caps.
1994           Also implement gst_vaapiencode_vp9_register_type, which should be
1995           called at plugin register time.
1996           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
1997
1998 2020-04-10 22:05:18 +0800  He Junyan <junyan.he@hotmail.com>
1999
2000         * gst/vaapi/gstvaapiencode_vp8.c:
2001         * gst/vaapi/gstvaapiencode_vp8.h:
2002           plugins: encode: Modify sink template of vp8 encode.
2003           Use gst_vaapi_detect_codec_caps to get more precise template caps.
2004           Also implement gst_vaapiencode_vp8_register_type, which should be
2005           called at plugin register time.
2006           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2007
2008 2020-04-10 22:04:34 +0800  He Junyan <junyan.he@hotmail.com>
2009
2010         * gst/vaapi/gstvaapiencode_mpeg2.c:
2011         * gst/vaapi/gstvaapiencode_mpeg2.h:
2012           plugins: encode: Modify sink template of mpeg2 encode.
2013           Use gst_vaapi_detect_codec_caps to get more precise template caps.
2014           Also implement gst_vaapiencode_mpeg2_register_type, which should be
2015           called at plugin register time.
2016           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2017
2018 2020-04-10 22:03:49 +0800  He Junyan <junyan.he@hotmail.com>
2019
2020         * gst/vaapi/gstvaapiencode_h265.c:
2021         * gst/vaapi/gstvaapiencode_h265.h:
2022           plugins: encode: Modify sink template of h265 encode.
2023           Use gst_vaapi_detect_codec_caps to get more precise template caps.
2024           Also implement gst_vaapiencode_h265_register_type, which should be
2025           called at plugin register time.
2026           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2027
2028 2020-04-10 22:00:38 +0800  He Junyan <junyan.he@hotmail.com>
2029
2030         * gst/vaapi/gstvaapiencode_h264.c:
2031         * gst/vaapi/gstvaapiencode_h264.h:
2032           plugins: encode: Modify sink template of h264 encode.
2033           Use gst_vaapi_detect_codec_caps to get more precise template caps.
2034           Also implement gst_vaapiencode_h264_register_type, which should be
2035           called at plugin register time.
2036           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2037
2038 2020-04-10 22:11:34 +0800  He Junyan <junyan.he@hotmail.com>
2039
2040         * gst/vaapi/gstvaapiencode_jpeg.c:
2041         * gst/vaapi/gstvaapiencode_jpeg.h:
2042           plugins: encode: Modify sink template of jpeg encode.
2043           Use gst_vaapi_detect_codec_caps to get more precise template caps.
2044           Also implement gst_vaapiencode_jpeg_register_type, which should be
2045           called at plugin register time.
2046           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2047
2048 2020-04-23 00:02:02 +0800  He Junyan <junyan.he@hotmail.com>
2049
2050         * gst/vaapi/gstvaapiencode.h:
2051           plugin: encode: add a helper macro to register encode type.
2052           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2053
2054 2020-04-10 21:44:05 +0800  He Junyan <junyan.he@hotmail.com>
2055
2056         * gst/vaapi/gstvaapipluginutil.c:
2057         * gst/vaapi/gstvaapipluginutil.h:
2058           plugins: util: Add a helper function to detect supported caps.
2059           This helper function iterate all profiles and entrypoints belong
2060           to the specified codec, query the VAConfigAttribRTFormat and list
2061           all possible video formats.
2062           This function is used by each codec to get the template sink caps
2063           (for encode) or src caps(for decode) at register time, when just
2064           all possible formats are listed and no need to be very accurate.
2065           So there is no context created for the performance reason. Most
2066           codecs just use YUV kinds of formats as the input/output, so we do
2067           not include RGB kinds of formats. User can specified more formats
2068           in extra_fmts(For example, jpeg may need BGRA) if needed.
2069           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2070
2071 2020-04-10 21:27:32 +0800  He Junyan <junyan.he@hotmail.com>
2072
2073         * gst/vaapi/gstvaapiencode.c:
2074         * gst/vaapi/gstvaapipluginutil.c:
2075         * gst/vaapi/gstvaapipluginutil.h:
2076           plugin: encode: extract the allowed caps maker as a helper function.
2077           Extract all logic about making caps for encode's sink as a standalone
2078           helper function. It can be reused.
2079           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2080
2081 2020-04-10 21:21:43 +0800  He Junyan <junyan.he@hotmail.com>
2082
2083         * gst-libs/gst/vaapi/video-format.c:
2084         * gst-libs/gst/vaapi/video-format.h:
2085           libs: video-format: add a helper function of get_formats_by_chroma.
2086           The function iterates all supported video formats and returns the
2087           formats belong to the specified chroma type.
2088           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/315>
2089
2090 2020-05-16 21:03:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2091
2092         * gst-libs/gst/vaapi/gstvaapitexture.c:
2093         * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2094           libs: texture: remove unused headers include
2095           This is continuation of
2096           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317
2097           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/324>
2098
2099 2020-05-16 19:58:25 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2100
2101         * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
2102         * gst-libs/gst/vaapi/gstvaapiimage.h:
2103         * gst-libs/gst/vaapi/gstvaapisurface.h:
2104           libs: removed duplicated function declarations
2105           Some headers had duplicated inlined function declaration. This was
2106           for gtkdoc, but now GStreamer uses hotdoc and the internal library
2107           documentation is not generated. So let's remove these extra lines.
2108           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/323>
2109
2110 2020-04-18 19:32:24 +0800  He Junyan <junyan.he@hotmail.com>
2111
2112         * gst-libs/gst/vaapi/gstvaapitexture.c:
2113         * gst-libs/gst/vaapi/gstvaapitexture.h:
2114         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
2115         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
2116         * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
2117         * gst-libs/gst/vaapi/gstvaapitexturemap.c:
2118         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2119         * gst/vaapi/gstvaapivideometa_texture.c:
2120         * tests/internal/test-textures.c:
2121           libs: texture: Make texture a standard GstMiniObject.
2122           We store GstVaapiTextureGLX and GstVaapiTextureEGL's private data in
2123           the qdata of miniobject and avoid extending the base texture class.
2124           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/317>
2125
2126 2020-04-26 12:33:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2127
2128         * README:
2129           Update README
2130           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/320>
2131
2132 2020-04-21 18:00:26 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2133
2134         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
2135           libs: display: drm: use g_strcmp0 to be null safe
2136           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/321>
2137
2138 2020-04-26 13:30:16 +0800  Haihao Xiang <haihao.xiang@intel.com>
2139
2140         * gst/vaapi/gstvaapipluginutil.c:
2141           vaapipluginutil: Use GST_VAAPI_DISPLAY_TYPE_DRM for Mesa3D GBM
2142           We may build this plugin with window system support but run it without
2143           window system. Without this patch, the following pipeline will trigger a
2144           segfault when running it without window system.
2145           gst-launch-1.0 filesrc location=input.264 ! h264parse ! vaapih264dec ! fakesink
2146           Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/319>
2147
2148 2020-04-21 11:16:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2149
2150         * meson.build:
2151           build: use join_paths() for driverdir
2152
2153 2020-04-21 09:04:51 +0000  Veerabadhran G <vegopala@amd.com>
2154
2155         * README:
2156           README: Update supported hardware
2157           Added the AMD hardware list to the "Hardware Requirements" section.
2158
2159 2020-04-04 13:58:00 +0200  He Junyan <junyan.he@hotmail.com>
2160
2161         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2162         * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
2163         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2164           libs: bufferproxy: remove GstMemory reference
2165           Since bufferproxy and surface are not referenced circularly, there's
2166           no need to keep, in the buffer proxy, a reference to the GstMemory
2167           where it is held. This patch removes that handling.
2168
2169 2020-03-15 23:29:05 +0800  He Junyan <junyan.he@hotmail.com>
2170
2171         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2172         * gst-libs/gst/vaapi/gstvaapisurface.c:
2173         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2174         * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
2175         * gst/vaapi/gstvaapivideomemory.c:
2176           libs,plugin: break surface-bufferproxy circular reference
2177           The bufferproxy may reference the surface and the surface may also
2178           reference the bufferproxy, producing a circular reference, which might
2179           lead to serious resource leak problems.
2180           Now make the relationship clearer, the bufferproxy's references is
2181           transfered to surface, while bufferproxy just keeps the surface's
2182           address without increasing its reference count.
2183           The surface can be created through a bufferproxy like in
2184           gst_vaapi_surface_new_with_dma_buf_handle(), and the surface might
2185           get its bufferproxy via gst_vaapi_surface_get_dma_buf_handle(). In
2186           both cases the surface holds a bufferproxy's reference.
2187
2188 2020-04-03 18:43:52 +0200  He Junyan <junyan.he@hotmail.com>
2189
2190         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
2191         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
2192         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
2193           libs: bufferproxy: rename parent memeber as surface
2194
2195 2020-03-15 22:07:31 +0800  He Junyan <junyan.he@hotmail.com>
2196
2197         * gst/vaapi/gstvaapivideobufferpool.c:
2198           plugin: bufferpool: use hashmap to cache dmabuf mem-surface
2199           The old way of refer memory by bufferproxy is not a good one, since it
2200           make the logic error prone.
2201           Now it is established a map between surface-bufferproxy and its GstMemory,
2202           caching the memory bound by a surface looked for the specified surface.
2203
2204 2020-03-15 21:50:24 +0800  He Junyan <junyan.he@hotmail.com>
2205
2206         * gst/vaapi/gstvaapivideobufferpool.c:
2207         * gst/vaapi/gstvaapivideobufferpool.h:
2208           plugin: bufferpool: Delete ACQUIRE_FLAG_NO_ALLOC flag.
2209           Delete the GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC flag.
2210           In fact, no one is using that flag, and all vaapi buffers should
2211           have GstVaapiVideoMeta.
2212
2213 2020-02-13 09:43:38 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2214
2215         * gst/vaapi/gstvaapipostproc.c:
2216         * gst/vaapi/gstvaapipostproc.h:
2217           vaapipostproc: enable HDR10 tone mapping
2218
2219 2020-02-13 09:00:18 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2220
2221         * gst-libs/gst/vaapi/gstvaapifilter.c:
2222         * gst-libs/gst/vaapi/gstvaapifilter.h:
2223           libs: filter: HDR10 tone mapping support
2224           Add support for HDR10 tone mapping (since VA-API 1.4.0).
2225
2226 2020-04-02 15:14:15 +0800  He Junyan <junyan.he@hotmail.com>
2227
2228         * gst-libs/gst/vaapi/gstvaapiencoder.c:
2229         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2230         * gst-libs/gst/vaapi/gstvaapiprofile.c:
2231         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2232         * gst/vaapi/gstvaapiencode_h265.c:
2233           libs: encoder: h265: Support MAIN 4:4:4 10 profile.
2234           Using Y410 as the input of the encoder can generate main_444_10 bit
2235           streams.
2236
2237 2020-04-02 15:19:41 +0800  He Junyan <junyan.he@hotmail.com>
2238
2239         * gst-libs/gst/vaapi/gstvaapiencoder.c:
2240           libs: encoder: fix an inexact trace info in chroma type check.
2241
2242 2020-03-31 12:22:31 +0800  Haihao Xiang <haihao.xiang@intel.com>
2243
2244         * gst-libs/gst/vaapi/gstvaapiencoder.c:
2245           libs: encoder: make sure format array is not NULL when returning TRUE
2246           This fixed segfault when running the pipeline below with iHD driver
2247           (commit efe5e9a) on ICL
2248           gst-launch-1.0 videotestsrc ! vaapivp9enc tune=low-power ! vaapivp9dec ! \
2249           fakesink
2250
2251 2020-03-18 13:28:00 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2252
2253         * gst-libs/gst/vaapi/gstvaapidecoder.h:
2254         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2255         * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
2256         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
2257         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
2258         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
2259         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
2260         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
2261         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
2262         * gst-libs/gst/vaapi/gstvaapidisplay.h:
2263         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
2264         * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
2265         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
2266         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
2267         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
2268         * gst-libs/gst/vaapi/gstvaapiencoder.h:
2269         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2270         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
2271         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
2272         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
2273         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
2274         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
2275         * gst-libs/gst/vaapi/gstvaapifilter.h:
2276         * gst-libs/gst/vaapi/gstvaapitexturemap.h:
2277         * gst-libs/gst/vaapi/gstvaapiwindow.h:
2278         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
2279         * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
2280         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
2281         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
2282         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
2283           libs: extend g_autoptr support
2284
2285 2020-03-26 22:40:40 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2286
2287         * gst/vaapi/gstvaapivideometa.c:
2288           vaapivideometa: remove compiler warning
2289
2290 2020-03-22 20:59:20 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2291
2292         * meson.build:
2293         * meson_options.txt:
2294           build: Add meson's option package-origin.
2295           This options is added to synchronize with other gstreamer packages
2296           build configuration.
2297           Though, to avoid breaking distro configuration it is set, as default,
2298           the issues gitlab's url, instead of the used string
2299           "Unkown package origin".
2300           Also, set_quoted is used for string based cdata.
2301
2302 2020-02-25 13:45:05 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2303
2304         * gst/vaapi/gstvaapipostproc.c:
2305           vaapipostproc: deprecate format, width and size parameters
2306           Since they should only be controlled by caps negotiation.
2307
2308 2020-03-18 16:41:01 +0800  He Junyan <junyan.he@hotmail.com>
2309
2310         * gst-libs/gst/vaapi/gstvaapiprofile.c:
2311         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
2312         * gst/vaapi/gstvaapidecode.c:
2313           libs,plugins: decoder: Add -intra profile support for hevc.
2314           In hevc, we can consider the -intra profile a subset of the none
2315           -intra profile. The -intra profiles just contain I frames and we
2316           definitely can use the none -intra profiles's context to decode
2317           them.
2318           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2319
2320 2020-03-04 12:35:42 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2321
2322         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2323           libs: encoder: h265: support ICQ/QVBR BRC
2324           Enable support for ICQ and QVBR bitrate control.
2325           The code is essentially the same for h264 ICQ/QVBR support
2326           which was added in commit 9e0c133a2403.
2327
2328 2020-03-19 11:19:18 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
2329
2330         * gst-libs/gst/vaapi/gstvaapiencoder.c:
2331           libs: encoder: set VA HRD param before RC param
2332           This is a workaround for intel-media-driver bug
2333           https://github.com/intel/media-driver/issues/865
2334           The driver will force the RC method to CBR for HEVCe
2335           when it parses the HRD param.  Thus, any RC method
2336           param submitted "prior" to the HRD param will be lost.
2337           Therefore, VBR, ICQ and QVBR for HEVCe can't be
2338           effectively enabled if the RC method param "precedes"
2339           the HRD param.
2340           To work around this issue, set the HRD param before
2341           the RC method param so the driver will parse the RC
2342           method param "after" the HRD param.
2343           Afaict, other codecs in the driver (and other drivers)
2344           do not appear to be dependent on the order of HRD and
2345           RC param submission.
2346
2347 2019-11-25 14:16:30 +0800  Haihao Xiang <haihao.xiang@intel.com>
2348
2349         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2350         * gst-libs/gst/vaapi/gstvaapidisplay.h:
2351         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
2352           vaapijpegenc: Add a quantization quirk for iHD driver
2353           iHD driver shifts the value by 50 when calculating quantization for JPEG
2354           encoding, so we should add 50 in this plugin for iHD driver too.
2355
2356 2020-03-13 21:49:15 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2357
2358         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
2359         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
2360         * gst-libs/gst/vaapi/gstvaapipixmap.c:
2361         * gst-libs/gst/vaapi/gstvaapipixmap.h:
2362         * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
2363         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
2364         * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
2365         * gst-libs/gst/vaapi/gstvaapiwindow.c:
2366         * gst-libs/gst/vaapi/gstvaapiwindow.h:
2367         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
2368         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
2369         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
2370         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
2371         * gst-libs/gst/vaapi/meson.build:
2372         * meson.build:
2373         * tests/internal/output.c:
2374         * tests/internal/output.h:
2375         * tests/internal/simple-decoder.c:
2376         * tests/internal/test-decode.c:
2377           libs: remove GstVaapiPixmap
2378           GstVaapiPixmap is an abstract base class which only implementation
2379           were GstVaapiPixmapX11. This class were used for a special type of
2380           rendering in the tests apps, utterly unrelated in GStreamer.
2381           Since gstreamer-vaapi is no longer a general-user wrapper for VA-API
2382           we should remove this unused API.
2383           This removal drops libxrender dependency.
2384
2385 2020-03-17 18:51:19 +0800  He Junyan <junyan.he@hotmail.com>
2386
2387         * gst-libs/gst/vaapi/gstvaapiutils.c:
2388           libs: utils: Add HEVC Main444 sting in string_of_VAProfile
2389           HEVCMain444_10 is already a supported profile and misses the strings.
2390
2391 2020-03-17 12:47:33 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2392
2393         * gst/vaapi/gstvaapi.c:
2394           plugin: don't error if cannot create display
2395           This might generated errors on automatic tools such as CI. Let's
2396           rather just raise a warning and let continue.
2397
2398 2020-03-09 01:52:57 +0800  He Junyan <junyan.he@hotmail.com>
2399
2400         * tests/check/meson.build:
2401           test: fix a ninja test failure for vaapioverlay.
2402           That test case only works with drm display, so the build such as
2403           meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2404           -Dwith_glx=no
2405           gets a failure when run ninja test. Just enable this test when drm
2406           is enabled.
2407
2408 2020-02-07 23:56:13 +0800  He Junyan <junyan.he@hotmail.com>
2409
2410         * gst-libs/gst/vaapi/gstvaapivideopool.c:
2411           libs: videopool: fix a condition race for pool allocate.
2412
2413 2020-03-05 13:22:23 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2414
2415         * gst/vaapi/gstvaapivideobufferpool.c:
2416           vaapivideobufferpool: force video meta if sizes are different
2417           The strides and offsets could be the same, but the allocation
2418           size might be different (e.g. alignment).  Thus, ensure we also
2419           set the flag to copy from VA memory to system memory when alloc
2420           size differs.
2421           Fixes #243
2422
2423 2020-03-05 14:18:32 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2424
2425         * gst/vaapi/gstvaapidecode.c:
2426           vaapidecode: don't set base sink caps twice
2427           Base class's sink pad caps are already set when calling set_format().
2428           There's no need to call it again in gst_vaapidecode_negotiate().
2429
2430 2020-03-05 13:26:38 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2431
2432         * gst/vaapi/gstvaapidecode.c:
2433           vaapidecode: unlock stream if caps update fails
2434           If caps update fail a dead lock occurs since the stream mutex is not
2435           unlocked.
2436
2437 2020-03-03 15:24:32 +0800  Xu Guangxin <guangxin.xu@intel.com>
2438
2439         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2440           libs: decoder: h265: parser state after update dependent slice
2441           If the dependent_slice_segment_flag is true, most slice info derived from last slice.
2442           So we need check the slice type after we call populate_dependent_slice_hdr
2443
2444 2020-02-16 12:21:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2445
2446         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2447         * gst-libs/gst/vaapi/gstvaapidisplay.h:
2448           libs: display: force RGBA image format for i965 driver
2449           Since commit 32bf6f1e GLTextureUpload is broken because i965
2450           doesn't report properly RGBA support. It could be possible to use RGBx
2451           but GLTextureUpload only regotiates RGBA.
2452           The simplest fix to this regression is adding synthetically the RGBA
2453           format in the internal format map.
2454
2455 2020-02-14 19:30:54 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2456
2457         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2458           libs: display: iterate all quirks table
2459           Instead of break at the fist foud quirk in the table, iterate all over
2460           so it would be feasible to add several quirks for one driver per
2461           element in array.
2462
2463 2020-02-25 12:05:28 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2464
2465         * gst-libs/gst/vaapi/gstvaapifilter.c:
2466           libs: filter: handle RGB to/from YUV color primary driver quirk
2467           The intel-media-driver (iHD) can't convert output color
2468           primaries when doing YUV to/from RGB CSC.  Thus, we must
2469           keep the output color primaries the same as the input
2470           color primaries for this case.
2471           fixes #238
2472
2473 2020-02-25 12:00:36 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2474
2475         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2476         * gst-libs/gst/vaapi/gstvaapidisplay.h:
2477           libs: display: add YUV to/from RGB color primary quirk
2478           The intel-media-driver (iHD) can't convert output color
2479           primaries when doing YUV to/from RGB CSC.
2480
2481 2020-02-28 11:33:18 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2482
2483         * gst/vaapi/gstvaapivideomemory.c:
2484           Revert "vaapivideomemory: Store surface allocation flags."
2485           This reverts commit dd428cc4a12c2d5c694fcd3303811cf486002c9d because
2486           it rewrites the buffer size whilst surface allocation flags are
2487           stored when allocator_params_init() is called since fab890ce.
2488           Fix: #239
2489
2490 2020-01-27 18:19:57 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2491
2492         * gst/vaapi/gstvaapivideomemory.c:
2493           vaapivideomemory: Try surface with allocation flags.
2494           When a vaapi allocator is instantiated, it first try to generate a
2495           surface with the specified configuration.
2496           This patch adds, in this tried buffer, the requested allocation flags.
2497
2498 2020-01-27 18:10:18 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2499
2500         * gst/vaapi/gstvaapivideomemory.c:
2501           vaapivideomemory: Store surface allocation flags.
2502           Store surface allocation flags passed to the vaapi allocator in
2503           GObject's qdata, because it might be used by the vaapivideobufferpool
2504           when recreating the allocator given any resolution change.
2505
2506 2020-01-24 19:32:52 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2507
2508         * gst-libs/gst/vaapi/gstvaapisurface.c:
2509         * gst-libs/gst/vaapi/gstvaapisurface.h:
2510           libs: surface: Add hints to allocation flags.
2511           When creating surfaces it is possible to pass to VA hints of its usage,
2512           so the driver may do some optimizations.
2513           This commit adds the handling of encoding/decoding hints.
2514
2515 2020-01-24 22:08:50 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2516
2517         * gst-libs/gst/vaapi/gstvaapicontext.c:
2518         * gst-libs/gst/vaapi/gstvaapisurface.c:
2519         * gst-libs/gst/vaapi/gstvaapisurface.h:
2520         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
2521         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2522         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2523         * gst-libs/gst/vaapi/gstvaapiwindow.c:
2524         * tests/internal/test-filter.c:
2525         * tests/internal/test-surfaces.c:
2526           libs: surface: surfacepool: Add allocation flags in constructors.
2527
2528 2020-02-22 16:06:13 +0800  He Junyan <junyan.he@hotmail.com>
2529
2530         * meson.build:
2531           build: let the build fail if none if X11, wayland or drm.
2532           In fact, gst_vaapi_create_test_display only test x11, wayland and
2533           drm, no glx and egl entries. So if none of them is enabled, no
2534           vaapi element can be detected.
2535
2536 2020-02-21 00:58:47 +0800  He Junyan <junyan.he@hotmail.com>
2537
2538         * tests/internal/test-display.c:
2539           test: avoid unused warning for test-display
2540           meson -Dwith_x11=yes -Dwith_wayland=no -Dwith_drm=no -Dwith_egl=no
2541           -Dwith_glx=no buildir
2542           generate unused warnings.
2543
2544 2020-02-21 00:50:47 +0800  He Junyan <junyan.he@hotmail.com>
2545
2546         * meson.build:
2547           build: fix meson build error when without x11.
2548           meson -Dwith_x11=no build_dir
2549           can not success build the project because the glx is still enabled.
2550           We need to disable GLX when X11 is disabled.
2551
2552 2020-02-14 19:53:09 +0800  Haihao Xiang <haihao.xiang@intel.com>
2553
2554         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2555           libs: h265enc: Set max_transform_hierarchy_depth_{inter, intra} to 2
2556           Intel HW has limitation on max_transform_hierarchy_depth_inter and
2557           max_transform_hierarchy_depth_intra (see [1]). We can provide a quirk for
2558           other HWs if other HWs may support other values
2559           [1] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol10-hevc.pdf
2560
2561 2020-02-21 07:37:50 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2562
2563         * gst/vaapi/gstvaapipostproc.c:
2564         * gst/vaapi/gstvaapipostprocutil.c:
2565           vaapipostproc: do not compensate for crop/direction if no VPP
2566           If we do not have functional VPP, then cropping and video
2567           direction is non-functional and we should avoid calling
2568           any of the gst_vaapi_filter* APIs.
2569
2570 2020-02-21 06:54:47 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2571
2572         * gst/vaapi/gstvaapipostproc.c:
2573           vaapipostproc: only set VPP colorimetry when VPP is available
2574           If we don't have functional vpp then we should not call
2575           gst_vaapi_filter_set_colorimetry.
2576
2577 2020-02-16 01:25:37 +0800  He Junyan <junyan.he@hotmail.com>
2578
2579         * gst/vaapi/gstvaapivideobufferpool.c:
2580         * gst/vaapi/gstvaapivideomemory.c:
2581         * gst/vaapi/gstvaapivideomemory.h:
2582           videobufferpool: don't reset surface when created internally
2583           The bug fixing, in commit 89f202ea, just considers the case when
2584           surface's DMABuf is set through gst_buffer_pool_acquire_buffer(),
2585           which is typically a decoder's behavior. But vaapipostproc doesn't
2586           provide any surface when calling gst_buffer_pool_acquire_buffer(),
2587           thus a surface is created when GstMemory is allocated.
2588           If the surface proxy in buffer's meta is reset at
2589           buffer_pool_reset_buffer(), that surface will be destroyed and it
2590           won't be available anymore. But GstBuffers are cached in the buffer
2591           pool and they are reused again, hence only those images are rendered
2592           repeatedly.
2593           Fixes: #232
2594
2595 2020-02-16 17:19:04 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2596
2597         * gst-libs/gst/vaapi/gstvaapiblend.c:
2598         * gst-libs/gst/vaapi/gstvaapifilter.c:
2599         * gst/vaapi/gstvaapi.c:
2600           libs: blend: filter: handle finalize() if display isn't assigned
2601           I've just discovered iHD driver in Skylake doesn't have VideoProc
2602           entry point, hence, in this platform, when vaapioverlay is tried to be
2603           registered, critical warnings are raised because blend doesn't have a
2604           display assigned.
2605           As it is possible to have drivers without EntryPointVideoProc it is
2606           required to handle it gracefully. This patch does that: only tries to
2607           register vaapioverlay if the testing display has VPP and finalize()
2608           vmethods, in filter and blend, bail out if display is NULL.
2609
2610 2020-02-15 11:02:49 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2611
2612         * gst-libs/gst/vaapi/gstvaapifilter.c:
2613         * gst-libs/gst/vaapi/gstvaapiutils.c:
2614           libs: filter: guard all color properties to VA-API 1.2.0
2615           Older VA-API (0.39.0) doesn't have VAProcColorProperties.
2616           Thus, guard all colorimetry -> VA-API support to version
2617           1.2.0.
2618           Fixes #234
2619
2620 2020-02-17 08:55:36 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2621
2622         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
2623           libs: decoder: h265: set parser info state at decoding codec data
2624           Commit 1168d6d5 showed up a regression: decode_sps() stores the unit's
2625           parser info in sps array. If that parser info comes from decoding
2626           codec data, that parser info will have an undefined state which might
2627           break ensure_sps().
2628           This patch sets the parser info state, at decoding codec data, with
2629           the internal parser state. This is similar with h264 decoder apprach.
2630           Original-patch-by: Xu Guangxin <guangxin.xu@intel.com>
2631
2632 2020-02-07 15:24:18 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2633
2634         * gst/vaapi/gstvaapipostproc.c:
2635           vaapipostproc: demote log message to trace level
2636
2637 2020-02-14 14:45:56 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2638
2639         * gst-libs/gst/vaapi/video-format.c:
2640           libs: video-format: set general vaapi log category
2641           Instead of logging in an unspecified category, set the default vaapi.
2642
2643 2020-02-15 11:44:48 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2644
2645         * gst-libs/gst/vaapi/gstvaapiutils.c:
2646           libs: utils: guard EncSliceLP for VA-API < 0.39.1
2647           Relates to #234
2648
2649 2020-02-14 16:17:04 +0800  Haihao Xiang <haihao.xiang@intel.com>
2650
2651         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
2652           libs: h265enc: Set VA_PICTURE_HEVC_INVALID flag for invalid picture
2653
2654 2020-02-11 11:31:31 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2655
2656         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
2657         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2658         * gst-libs/gst/vaapi/gstvaapiencoder.c:
2659           libs: remove crumbs of libva < 0.39
2660           All these guarded code seem like leftovers of commit 920b1ec7a. This
2661           patch completes that missing clean up.
2662
2663 2020-02-11 00:38:40 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2664
2665         * gst-libs/gst/vaapi/gstvaapifilter.c:
2666         * gst-libs/gst/vaapi/gstvaapiutils.c:
2667           libs: VA explicit color standard not supported until 1.2.0
2668           VAProcColorStandardExplicit and associated VAProcColorProperties
2669           (primaries, transfer and matrix) are not supported until
2670           VA-API 1.2.0.
2671           Use VAProcColorStandardNone instead of VAProcColorStandardExplicit
2672           if VA-API < 1.2.0.
2673           Fixes #231
2674
2675 2020-02-10 09:31:15 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2676
2677         * gst-libs/gst/vaapi/gstvaapiutils.c:
2678           libs: utils: WA: use explicit for sRGB colorimetry
2679           Addresses #228 on iHD side.  It seems iHD can't handle
2680           VAProcColorStandardSRGB in all situations for vpp.  But
2681           it has no problem when we specify the sRGB parameters
2682           via VAProcColorStandardExplicit parameters.
2683
2684 2020-02-07 11:25:31 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2685
2686         * gst-libs/gst/vaapi/gstvaapifilter.c:
2687           libs: filter: set vpp input/output color range
2688           We've always sent VA_SOURCE_RANGE_UNKNOWN to the driver.
2689           And, the [iHD] driver essentially computes the same color
2690           range as gstreamer when we send VA_SOURCE_RANGE_UNKNOWN for
2691           cases were gstreamer computes it automatically.  But,
2692           if the user wants to make it explicit, we should try
2693           to honor it.
2694
2695 2020-02-07 11:20:11 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2696
2697         * gst-libs/gst/vaapi/gstvaapiutils.c:
2698         * gst-libs/gst/vaapi/gstvaapiutils.h:
2699           libs: utils: map GstVideoColorRange to VAAPI VPP
2700
2701 2020-02-07 15:28:24 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2702
2703         * gst/vaapi/gstvaapidecode.c:
2704           vaapidecode: don't remove chroma-site nor colorimetry
2705           Since now they can be handled by vaapipostproc.
2706
2707 2020-02-04 14:17:43 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2708
2709         * gst/vaapi/gstvaapipostprocutil.c:
2710           vaapipostproc: use sink resolution to calculate src colorimetry
2711           The default output colorimetry is persuaded by the output
2712           resolution, which is too naive when doing VPP cropping
2713           and/or scaling.  For example, scaling 4K(sink)->1080P(src)
2714           resolution (i.e. both YUV) results in bt2020(sink)->bt709(src)
2715           colorimetry selection and some drivers don't support that
2716           mode in vpp.
2717           Thus, if output (i.e. downstream) does not specify a
2718           colorimetry then we use the input resolution instead of the
2719           output resolution to create the default colorimetry.  Also,
2720           note that we still use the output format since it may be a
2721           different color space than the input.  As in the example
2722           above, this will result in bt2020(sink)->bt2020(src)
2723           colorimetry selection and all drivers (afaik) should support
2724           that in vpp.
2725
2726 2020-02-04 09:57:42 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2727
2728         * gst/vaapi/gstvaapipostprocutil.c:
2729           vaapipostproc: set srcpad colorimetry unconditionally
2730           We always need a srcpad colorimetry for VAAPI VPP
2731           operations.
2732           Also, check the return value of _set_colorimetry.
2733
2734 2020-01-30 12:34:07 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2735
2736         * gst/vaapi/gstvaapipostprocutil.c:
2737           vaapipostproc: do not override explicit srcpad colorimetry
2738           If colorimetry has been set by a capsfilter (e.g.
2739           vaapipostproc ! video/x-raw,colorimetry=bt709) then
2740           don't try to override it.  Previously, the aforementioned
2741           capsfilter will fail to negotiate if default colorimetry
2742           is not the same as the capsfilter (e.g. 4K resolutions).
2743
2744 2020-01-30 09:37:18 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2745
2746         * gst/vaapi/gstvaapipostproc.c:
2747           vaapipostproc: set vpp filter colorimetry
2748           Set the input and output colorimetry for vpp filter.
2749
2750 2020-01-30 09:34:10 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2751
2752         * gst-libs/gst/vaapi/gstvaapifilter.c:
2753         * gst-libs/gst/vaapi/gstvaapifilter.h:
2754           libs: filter: support vpp input/output color standard
2755           Add API function to allow setting the input and output vpp
2756           color standard from GstVideoColorimetry.
2757
2758 2020-02-04 11:32:54 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2759
2760         * gst-libs/gst/vaapi/gstvaapiutils.c:
2761         * gst-libs/gst/vaapi/gstvaapiutils.h:
2762           libs: utils: map GstVideoColorimetry to VAAPI VPP
2763           Fallback to VAProcColorStandardExplicit if there is no
2764           1:1 mapping.
2765
2766 2020-02-04 10:27:23 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
2767
2768         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2769         * gst-libs/gst/vaapi/gstvaapidisplay.h:
2770           libs: display: add vpp color standard quirk for i965 driver
2771           The i965 does not properly report supported vpp color
2772           standards.
2773
2774 2020-02-02 18:04:35 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2775
2776         * gst/vaapi/gstvaapivideobufferpool.c:
2777           vaapivideobufferpool: dmabuf implies allocator
2778           Some code can be optimized since only if the dmabuf allocator is set,
2779           the internal flag of dmabuf is TRUE, thus there's no need to evaluate
2780           the allocator address.
2781
2782 2020-01-29 11:55:39 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2783
2784         * gst/vaapi/gstvaapivideobufferpool.c:
2785           vaapivideobufferpool: reject configuration if allocator isn't vaapi
2786           If the requested allocator in set_config() is not a VAAPI valid one,
2787           reject the configuration, instead of lying and using a private one.
2788           This patch superseeds !254 and !24
2789
2790 2020-01-29 11:55:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2791
2792         * gst/vaapi/gstvaapivideobufferpool.c:
2793           vaapivideobufferpool: add explanation for allocator reconfig
2794
2795 2020-01-29 11:54:38 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2796
2797         * gst/vaapi/gstvaapivideobufferpool.c:
2798           vaapivideobufferpool: check for vaapi meta first
2799           If the configured meta doesn't request vaapi meta then it is not a
2800           vaapi buffer pool. Bail out as soon as possible.
2801
2802 2020-01-29 11:52:38 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2803
2804         * gst/vaapi/gstvaapivideobufferpool.c:
2805           vaapivideobufferpool: turn errors into warnings
2806           set_config() vmethod should fail gracefully, thus upstream could
2807           negotiate another pool if possible.
2808           Instead of sending error messages to the bus, let demote the level
2809           to warning.
2810
2811 2020-01-29 11:51:47 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2812
2813         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2814           libs: display: log out vendor string when available
2815           This is useful while asking for logs to know the used driver.
2816
2817 2020-01-27 11:49:26 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2818
2819         * gst-libs/gst/vaapi/gstvaapisurface.c:
2820           libs: surface: initialize VASurfaceAttribExternalBuffers
2821           Initialize VASurfaceAttribExternalBuffers using compiler's syntax
2822           rather than using memset().
2823
2824 2020-01-27 11:44:49 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2825
2826         * gst-libs/gst/vaapi/gstvaapisurface.c:
2827           libs: surface: merge two loops into one
2828           Merge two loops into one for setting offsets and strides in the
2829           external buffer descriptor.
2830
2831 2020-01-22 10:42:35 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2832
2833         * gst-libs/gst/vaapi/gstvaapisurface.c:
2834         * gst-libs/gst/vaapi/gstvaapisurface.h:
2835         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
2836         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
2837           libs: surface: surfacepool: rename variable for clearity
2838           In order to be readable, the meaningless 'flags' is renamed to
2839           surface_allocation_flags, which is clearer.
2840
2841 2020-01-27 18:40:46 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2842
2843         * gst/vaapi/gstvaapivideobufferpool.c:
2844           vaapivideobufferpool: Reuse internal allocator is possible.
2845           Instead of creating a new allocator when upstream requests a different
2846           allocator, this patch tries to reuse the internal allocator if it was
2847           already initializated.
2848           If the stream changes, then either one will be unref and a new
2849           allocator is created.
2850
2851 2020-01-27 18:05:14 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2852
2853         * gst/vaapi/gstvaapivideobufferpool.c:
2854           vaapivideobufferpool: Log messages in proper category.
2855           The log messages where logged in the GstBufferPool category because
2856           the instance was not properly casted. This fix that situation.
2857
2858 2020-01-16 11:49:21 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2859
2860         * gst-libs/gst/vaapi/gstvaapidisplay.c:
2861         * gst-libs/gst/vaapi/gstvaapidisplay.h:
2862         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
2863         * gst/vaapi/gstvaapipluginbase.c:
2864           libs: display: driver quirks mechanism
2865           This mechanism comes from ffmpeg vaapi implementation, where they have
2866           their own quirks.
2867           A specific driver is identified by a substring present in the vendor
2868           string. If that substring is found, a set of bitwise flags are store.
2869           These flags can be accessed through the function
2870           gst_vaapi_display_has_driver_quirks().
2871           The purpose for this first quirks is to disable the put image try for
2872           AMD Gallium driver (see [1]).
2873           1. https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/72
2874
2875 2020-01-15 23:07:29 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2876
2877         * gst/vaapi/gstvaapipluginutil.c:
2878           plugins: renable Mesa Gallium driver
2879
2880 2020-01-24 11:55:22 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2881
2882         * gst/vaapi/gstvaapivideobufferpool.c:
2883           vaapivideobufferpool: validate returned meta
2884           Validate if the meta returned by gst_buffer_get_vaapi_video_meta() in
2885           the acquired buffer is not null.
2886           This situation should be very "pathological", but still it is better
2887           be safe since that meta might be used later to create a new dma
2888           buffer.
2889
2890 2020-01-22 18:50:36 +0100  Philipp Zabel <p.zabel@pengutronix.de>
2891
2892         * gst/vaapi/gstvaapivideobufferpool.c:
2893           vaapivideobufferpool: always update/release the underlying surface proxy
2894           gst_vaapi_video_buffer_pool_reset_buffer() is called when the sink
2895           releases the last reference on an exported DMA buffer. This should
2896           release the underlying surface proxy. To avoid releasing the wrong
2897           surface due to a stale surface proxy reference in the buffer's
2898           GstVaapiVideoMeta, always update the reference to the correct surface
2899           in gst_vaapi_video_buffer_pool_acquire_buffer().
2900
2901 2020-01-23 16:56:44 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2902
2903         * gst-libs/gst/vaapi/gstvaapicontext.c:
2904         * gst-libs/gst/vaapi/gstvaapicontext.h:
2905         * gst-libs/gst/vaapi/gstvaapisurface.c:
2906         * gst-libs/gst/vaapi/gstvaapisurface.h:
2907           libs: context: select vaCreateSurfaces version according attributes
2908           This commit tries to centralize the selection of vaCreateSurfaces
2909           version, instead of having fallbacks everywhere.
2910           These fallbacks are hacks, added because new drivers use the latest
2911           version of vaCreateSurfaces (with surface attributes) [1], meanwhile
2912           old drivers (or profiles as JPEG decoder in i965) might rather use the
2913           old version.
2914           In order to select which method, there's detected hack: each config
2915           context has a list of valid formats, in the case of JPEG decoder the
2916           list only contains "rare" 4:2:2 formats (ICM3, GRAY8) which aren't
2917           handled correctly by the current gstreamer-vaapi code [2].
2918           The hack consist in identify if the format list contains an arbitrary
2919           preferred format (which is suposedly well supported by
2920           gstreamer-vaapi, mostly NV12). If no prefered colour format is found,
2921           the the old version of vaCreateSurfaces is used, and the surfaces wil
2922           be mapped into a image with their own color format.
2923           1. https://bugzilla.gnome.org/show_bug.cgi?id=797143
2924           2. https://bugzilla.gnome.org/show_bug.cgi?id=797222
2925
2926 2020-01-21 19:35:02 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2927
2928         * gst-libs/gst/vaapi/gstvaapicontext.c:
2929           libs: context: add debug category for context
2930
2931 2020-01-22 20:20:30 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2932
2933         * gst-libs/gst/vaapi/gstvaapiblend.c:
2934           libs: blend: guard VA_BLEND_GLOBAL_ALPHA
2935
2936 2020-01-21 14:09:33 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2937
2938         * gst/vaapi/gstvaapiencode_h264.c:
2939           vaapiencode: promote info to warning
2940           Let's notify user about using constrained-baseline instead on
2941           requested basline profile.
2942
2943 2019-06-28 15:41:16 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
2944
2945         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
2946         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
2947         * gst/vaapi/gstvaapidecode.c:
2948         * gst/vaapi/gstvaapidecode_props.c:
2949         * gst/vaapi/gstvaapidecode_props.h:
2950           vaapih264dec: Add a property to assume constrained-baseline
2951           When baseline-as-constrained is set, the decoder will expose support
2952           for baseline decoding and assume that the baseline content is
2953           constrained-baseline. This can be handy to decode streams in hardware
2954           that would otherwise not be possible to decode. A lot of baseline
2955           content is in fact constrained.
2956
2957 2020-01-17 16:19:52 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2958
2959         * gst/vaapi/gstvaapiencode_h264.c:
2960         * gst/vaapi/gstvaapipluginutil.c:
2961           vaapih264enc: accept baseline as constrained baseline compatible
2962
2963 2020-01-17 14:24:37 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2964
2965         * gst/vaapi/gstvaapiencode_h264.c:
2966           vaapih264enc: update level in src caps
2967           And, if downstream requests a specific level, the caps are not
2968           negotiated, because there is no mechanism right now to specify a
2969           custom level in the internal encoder.
2970
2971 2020-01-17 17:12:53 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2972
2973         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2974           libs: encoder: h264: document gst_vaapi_encoder_h264_supports_avc()
2975
2976 2020-01-17 13:38:29 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2977
2978         * gst/vaapi/gstvaapiencode_h264.c:
2979           vaapih264enc: force byte-stream if avc isn't supported
2980           Removing the validation in gst_vaapiencode_h264_get_caps() since that
2981           ought be handled in gst_vaapiencode_h264_set_config()
2982
2983 2020-01-08 17:37:22 +0100  Philipp Zabel <p.zabel@pengutronix.de>
2984
2985         * gst/vaapi/gstvaapiencode_h264.c:
2986           vaaph264enc: suppress avc if the driver does not support packed headers
2987           Do not negotiate AVC output if the driver does not support it.
2988
2989 2020-01-08 17:16:35 +0100  Philipp Zabel <p.zabel@pengutronix.de>
2990
2991         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
2992         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
2993           libs: encoder: h264: Add gst_vaapi_encoder_h264_supports_avc()
2994           AVC output requires packed header support in the driver.
2995
2996 2020-01-17 13:07:04 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
2997
2998         * gst/vaapi/gstvaapiencode_h264.c:
2999           vaapih264enc: intersect the new proposed caps
3000           Instead of just leave to keep the proposed caps, with the best profile
3001           in the allowed caps, is its intersected again.
3002
3003 2020-01-17 12:58:58 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3004
3005         * gst/vaapi/gstvaapiencode_h264.c:
3006           vaapih264enc: propose new profile caps and fixate it
3007           When the available caps doesn't intersect with the allowed caps in the
3008           pipeline, a new caps is proposed rather than just expecting to
3009           iterate.
3010           Later, the intersected caps (profile_caps) is fixated in order to
3011           extract the configuration.
3012
3013 2020-01-17 13:18:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3014
3015         * gst/vaapi/gstvaapiencode_h264.c:
3016           vaapih264enc: common fail for gst_vaapiencode_h264_set_config()
3017           Add a common fail code path for gst_vaapiencode_h264_set_config().
3018
3019 2020-01-17 12:54:21 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3020
3021         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3022           libs: encoder: unref formats array if none
3023           The formats array is always created, in order to keep the logic and
3024           to avoid broken caps, if this formats array doesn't contain any
3025           elements, it has to be unref and the function should return NULL.
3026
3027 2020-01-17 14:22:48 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3028
3029         * gst/vaapi/gstvaapiencode_h264.c:
3030           vaapih264enc: fix log message
3031           Before the log wasn't processed because wrong instance pointer.
3032
3033 2019-06-22 00:44:25 +0800  He Junyan <junyan.he@hotmail.com>
3034
3035         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3036         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3037         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
3038         * gst/vaapi/gstvaapiencode_h265.c:
3039           plugin: encode: Add H265 main-444 profile.
3040           Expose the main-444 profile to h265enc caps, when the upstream
3041           chooses to use VUYA as input, we choose main 4:4:4 profile to encode
3042           the frames.
3043
3044 2020-01-15 19:36:00 +0800  He Junyan <junyan.he@hotmail.com>
3045
3046         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3047           libs: encoder: h265: Consider main-444 profile when encoding.
3048           Add support of main-444 profile for parameter setting and packed header
3049           generation.
3050
3051 2020-01-15 23:04:08 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3052
3053         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3054         * gst-libs/gst/vaapi/gstvaapiencoder.h:
3055         * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3056         * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3057         * gst/vaapi/gstvaapiencode.c:
3058           vaapiencode: DMABuf only if PRIME is available
3059           Add DMABuf capsfeature in encoders' allowed sinkcaps only if PRIME
3060           memory type is available in the VA surface attributes of codec
3061           context.
3062
3063 2020-01-16 09:14:30 +0800  Haihao Xiang <haihao.xiang@intel.com>
3064
3065         * hooks/pre-commit.hook:
3066           Add hooks/pre-commit.hook
3067           meson.build in gstreamer-vaapi requires hooks/pre-commit.hook
3068           Copied and pasted pre-commit.hook from other gstreamer modules to make
3069           sure gstreamer-vaapi follows the same code style
3070
3071 2019-12-26 16:45:51 +0800  He Junyan <junyan.he@hotmail.com>
3072
3073         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3074           libs: encoder: h265: Set encoder paramters base on entrypoint.
3075           When the tune is NONE, we now can choose entrypoint freely. So the
3076           GST_VAAPI_ENCODER_TUNE macro may not return the correct current
3077           entrypoint.
3078           We also delay CTU size calculation after entrypoint has been decided.
3079
3080 2019-12-28 19:18:12 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3081
3082         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3083         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
3084         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
3085         * gst-libs/gst/vaapi/gstvaapicontext.c:
3086         * gst-libs/gst/vaapi/gstvaapicontext.h:
3087         * gst-libs/gst/vaapi/gstvaapidisplay.c:
3088         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3089         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3090         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
3091         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3092         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
3093         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
3094         * gst-libs/gst/vaapi/gstvaapifei_objects.c:
3095         * gst-libs/gst/vaapi/gstvaapifei_objects.h:
3096         * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
3097         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3098         * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
3099         * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3100         * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
3101         * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
3102         * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
3103         * gst-libs/gst/vaapi/gstvaapiprofile.c:
3104         * gst-libs/gst/vaapi/gstvaapiprofile.h:
3105         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3106         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
3107         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3108         * gst-libs/gst/vaapi/meson.build:
3109         * gst/vaapi/gstvaapi.c:
3110         * gst/vaapi/gstvaapiencode.c:
3111         * gst/vaapi/gstvaapiencode.h:
3112         * gst/vaapi/gstvaapiencode_h264_fei.c:
3113         * gst/vaapi/gstvaapiencode_h264_fei.h:
3114         * gst/vaapi/gstvaapifeivideometa.c:
3115         * gst/vaapi/gstvaapifeivideometa.h:
3116         * gst/vaapi/meson.build:
3117         * meson.build:
3118         * tests/internal/meson.build:
3119         * tests/internal/test-fei-enc-in.c:
3120         * tests/internal/test-fei-enc-out.c:
3121           Remove all FEI related
3122           FEI encoders are not actively mantained neither tested, and it is
3123           using infrastructure that is changing and FEI is stopping this
3124           effort.
3125           Also it is required to rethink how FEI can be used in GStreamer.
3126
3127 2020-01-14 11:17:49 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3128
3129         * gst/vaapi/gstvaapioverlay.c:
3130           vaapioverlay: ensure sinkpad has current buffer
3131           Use the gst_video_aggregator_pad_has_current_buffer API
3132           to check if the current sinkpad has a queued buffer before
3133           attempting to obtain a input buffer from the base plugin.
3134           If the sinkpad does not have a current buffer, then it is
3135           either not producing them yet (e.g. current time < sinkpad
3136           start time) or it has reached EOS.
3137           Previously, we only handled EOS case.
3138           Example:
3139           gst-launch-1.0 videotestsrc num-buffers=100 \
3140           ! vaapipostproc ! vaapioverlay name=overlay \
3141           ! vaapisink videotestsrc timestamp-offset=1000000000 \
3142           num-buffers=100 ! video/x-raw,width=160,height=120 \
3143           ! overlay.
3144
3145 2020-01-14 18:57:31 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3146
3147         * gst/vaapi/gstvaapioverlay.c:
3148           vaapioverlay: unroll the recursive call
3149           Recursive functions are elegant but dangerous since they might
3150           overflow the stack. It is better to turn them into a list tranversal
3151           if possible, as this case.
3152
3153 2020-01-14 18:46:49 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3154
3155         * gst-libs/gst/vaapi/gstvaapiblend.c:
3156         * gst/vaapi/gstvaapioverlay.c:
3157           vaapioverlay: add minimal documentation
3158
3159 2020-01-14 18:25:11 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3160
3161         * gst-libs/gst/vaapi/gstvaapiblend.c:
3162         * gst-libs/gst/vaapi/gstvaapiblend.h:
3163         * gst/vaapi/gstvaapioverlay.c:
3164           libs: blend: simplify generator API
3165           Instead of using a parent structure that has to be derived by API
3166           consumers, this change propse a simplification by using the common
3167           pattern of GTK of passing a function pointer and user data which will
3168           be passed as its parameter. That user data contains the state and the
3169           function will be called to update that state.
3170
3171 2020-01-10 10:14:38 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3172
3173         * gst-libs/gst/vaapi/gstvaapiblend.c:
3174         * gst-libs/gst/vaapi/gstvaapiblend.h:
3175           libs: blend: remove begin/render/end API
3176           This API was risky and is superseded by the surface
3177           generator (process) API.
3178           Resolves #219
3179
3180 2020-01-10 10:12:36 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3181
3182         * gst/vaapi/gstvaapioverlay.c:
3183           vaapioverlay: use blend surface generator API
3184           See #219
3185
3186 2020-01-10 09:54:30 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3187
3188         * gst-libs/gst/vaapi/gstvaapiblend.c:
3189         * gst-libs/gst/vaapi/gstvaapiblend.h:
3190           libs: blend: add surface generator API
3191           This new API allows the user to call a single method (process)
3192           which handles the [display] lock/unlock logic internally for
3193           them.
3194           This API supersedes the risky begin, render, end API.
3195           It eliminates the need for the user to call a lock method
3196           (process_begin) before processing the input buffers
3197           (process_render) and calling an unlock method (process_end)
3198           afterwards.
3199           See #219
3200
3201 2019-12-23 14:29:08 +0800  He Junyan <junyan.he@hotmail.com>
3202
3203         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3204         * gst-libs/gst/vaapi/gstvaapiencoder.h:
3205         * gst/vaapi/gstvaapiencode.c:
3206         * gst/vaapi/gstvaapiencode.h:
3207         * gst/vaapi/gstvaapiencode_h264.c:
3208         * gst/vaapi/gstvaapiencode_h265.c:
3209           plugin: encode: List all possible profiles to detect input formats.
3210           The current get_profile just return one possible profile for the encode,
3211           which is not enough.  For example, if we want to support HEVC 4:4:4
3212           profile, the input of encode should be VYUA rather than NV12 in HEVC
3213           main profile. So the command line:
3214           gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3215           caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3216           tune=low-power init-qp=30 ! fakesink
3217           can not work because vaapih265enc just report NV12 in sink caps, we need
3218           to specify the profile obviously like:
3219           gst-launch-1.0 videotestsrc num-buffers=200 ! capsfilter \
3220           caps=video/x-raw,format=VUYA,width=800,height=600 ! vaapih265enc \
3221           tune=low-power init-qp=30 ! capsfilter caps=video/x-h265, \
3222           profile=main-444 ! fakesink
3223           The encode should have the ability to choose the profile based on input
3224           format automatically. If the input video format is VUYA, the main-444
3225           profile should be auto choosed.
3226           We modify to let get_allowed_profiles of each encode sub class to return
3227           an array of all supported profiles based on downstream's allowed caps, or
3228           return NULL if no valid profiles specified by downstream.
3229           If no allowed profiles found, all profiles which belong to the current
3230           encoder's codec will be the candidates.
3231           The function gst_vaapi_encoder_get_surface_attributes collects the surface's
3232           attributes for that profile list we just get.
3233           So for this case, both NV12 and VUYA should be returned.
3234           TODO: some codec like VP9, need to implement the get_profile() function.
3235
3236 2020-01-08 15:07:36 +0800  He Junyan <junyan.he@hotmail.com>
3237
3238         * gst/vaapi/gstvaapipluginutil.c:
3239         * gst/vaapi/gstvaapipluginutil.h:
3240           plugin: util: add helper function to detect profiles in caps.
3241
3242 2020-01-08 15:04:18 +0800  He Junyan <junyan.he@hotmail.com>
3243
3244         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3245         * gst-libs/gst/vaapi/gstvaapiencoder.h:
3246           libs: encoder: add a helper function to get all supported profiles
3247
3248 2020-01-13 15:34:54 +0900  Seungha Yang <seungha.yang@navercorp.com>
3249
3250         * gst-libs/gst/vaapi/gstvaapidecoder.c:
3251           libs: decoder: Don't unref null object
3252           ** (gst-launch-1.0:9789): CRITICAL **: 15:29:09.330:
3253           gst_vaapi_context_unref: assertion 'context != NULL' failed
3254
3255 2020-01-10 09:26:44 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3256
3257         * gst/vaapi/gstvaapioverlay.c:
3258           plugins: overlay: use proper NULL check on double pointer
3259           Check the address of the variable is not NULL,
3260           not the address of the pointer.
3261
3262 2020-01-08 23:42:21 +0800  He Junyan <junyan.he@hotmail.com>
3263
3264         * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3265           libs: codedbuf: delete a useless field.
3266           The context field in GstVaapiCodedBuffer is not inited correctly
3267           and is never used, just delete it.
3268
3269 2019-12-29 17:57:52 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3270
3271         * gst/vaapi/gstvaapipluginutil.c:
3272           plugins: add iHD driver in whitelist
3273
3274 2020-01-02 21:02:40 +0800  He Junyan <junyan.he@hotmail.com>
3275
3276         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3277           libs: encoder: modify 265 SPS header's profile compatibility flag.
3278           Make the SPS profile compatibility flags more precisely conform to
3279           the HEVC Spec.
3280
3281 2020-01-06 19:39:06 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3282
3283         * tests/check/elements/vaapioverlay.c:
3284           test: vaapioverlay: bail test if not available
3285           vaapioverlay is only registered if the VA driver support the blend
3286           operation.
3287           This patch only executes the test if vaapioverlay is available,
3288           otherwise the test is bail out without raising an error.
3289
3290 2020-01-06 14:53:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3291
3292         * tests/check/elements/vaapioverlay.c:
3293           tests: vaapioverlay: force drm backend
3294
3295 2019-12-22 17:32:19 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3296
3297         * gst-libs/gst/vaapi/gstvaapiblend.c:
3298           libs: blend: update to new mini-object API
3299
3300 2019-11-19 13:48:22 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3301
3302         * tests/check/elements/vaapioverlay.c:
3303         * tests/check/meson.build:
3304           tests: check: add basic vaapioverlay test
3305           Add test_overlay_position test to verify sink_1 input
3306           is overlayed onto sink_0 input at the appropriate
3307           position.
3308
3309 2019-11-14 12:03:57 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3310
3311         * gst/vaapi/gstvaapi.c:
3312         * gst/vaapi/gstvaapioverlay.c:
3313         * gst/vaapi/gstvaapioverlay.h:
3314         * gst/vaapi/meson.build:
3315           plugins: add vaapioverlay plugin
3316           A plugin similar to the base compositor element but
3317           uses VA-API VPP blend functions to accelerate the
3318           overlay/compositing.
3319           Simple example:
3320           gst-launch-1.0 -vf videotestsrc ! vaapipostproc \
3321           ! tee name=testsrc ! queue \
3322           ! vaapioverlay sink_1::xpos=300 sink_1::alpha=0.75 \
3323           name=overlay ! vaapisink testsrc. ! queue ! overlay.
3324
3325 2019-11-14 12:02:19 -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         * gst-libs/gst/vaapi/meson.build:
3330           libs: add a vaapi blend class
3331           Support for the VA-API VPP blend functions.
3332
3333 2019-11-14 11:54:59 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3334
3335         * gst/vaapi/gstvaapipluginbase.c:
3336         * gst/vaapi/gstvaapipluginbase.h:
3337           plugins: base: add GstVideoAggregator subclass support
3338
3339 2020-01-05 19:32:16 +0800  He Junyan <junyan.he@hotmail.com>
3340
3341         * gst-libs/gst/vaapi/gstvaapiimage.c:
3342           libs: image: init all image fields correctly.
3343
3344 2020-01-06 17:41:53 +0100  Stéphane Cerveau <scerveau@collabora.com>
3345
3346         * gst/vaapi/gstvaapipostproc.c:
3347           doc: fix pipeline typo in vaapipostproc
3348
3349 2020-01-02 21:11:44 +0800  He Junyan <junyan.he@hotmail.com>
3350
3351         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3352           libs: encoder: modify 265 VPS header fields.
3353           vps_base_layer_internal_flag and vps_base_layer_available_flag
3354           have been clearly defined now.
3355
3356 2020-01-01 19:54:13 +0800  He Junyan <junyan.he@hotmail.com>
3357
3358         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
3359           libs: display: fix a resource leak in X11 pixmap format.
3360
3361 2020-01-02 18:00:21 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3362
3363         * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3364         * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
3365           libs: utils: delete useless gst_vaapi_profile_caps_append_encoder.
3366
3367 2019-12-30 14:09:17 +0800  He Junyan <junyan.he@hotmail.com>
3368
3369         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3370         * gst-libs/gst/vaapi/gstvaapiencoder.h:
3371         * gst/vaapi/gstvaapiencode.c:
3372           libs: encoder: get surfaces resolution the same time with formats.
3373           We can get all the information about the video format at one shot
3374           when we create the test context for getting the supported formats.
3375           The current way to get the width and height ranges are inefficient,
3376           since it calls the function gst_vaapi_profile_caps_append_encoder()
3377           and it creates another temporal context to detect the resolution
3378           information.
3379           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3380
3381 2019-12-28 17:42:55 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3382
3383         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3384           libs: encoder: vp9: fix code style
3385
3386 2019-12-16 23:19:46 +0800  He Junyan <junyan.he@hotmail.com>
3387
3388         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3389         * gst-libs/gst/vaapi/gstvaapiencoder.h:
3390         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3391         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3392         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3393           libs: encoder: set entrypoint based on tune automatically
3394           Some profile, such as H265_MAIN_444 on new Intel platform, may only
3395           support ENTRYPOINT_SLICE_ENCODE_LP entrypoint. This leads two
3396           problems:
3397           1. We need to specify the tune mode like `vaapih265enc tune=low-power`
3398           every time when we need to use this kind of profile. Or we can not
3399           create the encoder context successfully.
3400           2. More seriously, we set the entrypoint to a fixed value in
3401           init_context_info() and so the create_test_context_config() can not
3402           create the test context for these profile and can not get the
3403           supported video formats, either.
3404           We now change the entrypoint setting based on the tune option of the
3405           encoder. If no tune property provided, we just choose the first
3406           available entrypoint.
3407
3408 2019-12-16 23:19:46 +0800  He Junyan <junyan.he@hotmail.com>
3409
3410         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3411         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3412         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3413         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3414         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3415         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3416         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3417           libs: encoder: set context info profile by encoder
3418           Instead of init_context_info() setting the passed profile, it is
3419           assumed that it has to be set by each encoder.
3420           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3421
3422 2019-12-27 18:49:02 +0100  He Junyan <junyan.he@hotmail.com>
3423
3424         * gst-libs/gst/vaapi/gstvaapicontext.c:
3425         * gst-libs/gst/vaapi/gstvaapiprofile.h:
3426           libs: context: add invalid entrypoint symbol
3427           The symbol GST_VAAPI_ENTRYPOINT_INVALID is just a representation of
3428           zero, which was already used as an invalid value tacitly. This patch
3429           only makes it explicit.
3430           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3431
3432 2019-12-29 01:13:29 +0800  He Junyan <junyan.he@hotmail.com>
3433
3434         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3435           libs: pixmap: Fix a pixmap creation crash.
3436           We use GST_VAAPI_OBJECT_NATIVE_DISPLAY with wrong parameter for x11
3437           pixmap creation, which causes crash if we run the internal test case
3438           of:
3439           test-decode --pixmap
3440
3441 2019-12-22 14:35:18 +0800  He Junyan <junyan.he@hotmail.com>
3442
3443         * gst/vaapi/gstvaapiencode.c:
3444           plugin: encode: set allowed_sinkpad_caps to empty.
3445           We now set encode->allowed_sinkpad_caps to NULL if we fail to get
3446           surfaces formats. This causes two problem:
3447           1. gst_video_encoder_proxy_getcaps use NULL as its caps parameter,
3448           which changes its behavior. It will use encode's sinkpad template
3449           rather than empty caps to do the clip job. So even if we fail to set
3450           allowed_sinkpad_caps, gst_video_encoder_proxy_getcaps can still return
3451           valid caps.
3452           2. We should just set the allowed_sinkpad_caps once. The NULL point
3453           make the ensure_allowed_sinkpad_caps function works again and again.
3454
3455 2019-12-22 15:22:57 +0800  He Junyan <junyan.he@hotmail.com>
3456
3457         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3458           libs: encoder: Add NULL pointer check for context when finalize.
3459           Context may be NULL if pipeline fail in early stage, and the
3460           ensure_context will not be called. Need to add a pointer protection
3461           for it.
3462
3463 2019-12-20 06:38:42 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3464
3465         * gst/vaapi/gstvaapipluginbase.c:
3466           plugins: base: do not reset can_dmabuf
3467           Don't reset the can_dmabuf field.  This restores the
3468           close/reset logic that existed prior to commit
3469           ca2942176b5632e07eebac23336954f9aaf1cb26 in regards to
3470           dmabuf support.
3471           Plugins only call gst_vaapi_plugin_base_set_srcpad_can_dmabuf
3472           once during startup, but may need to reset the other private
3473           fields multiple times during negotiation.  Thus, can_dmabuf
3474           should be exempt from the resets.
3475           Fixes #208
3476
3477 2019-12-06 00:21:12 +0800  He Junyan <junyan.he@hotmail.com>
3478
3479         * gst/vaapi/gstvaapiencode.c:
3480           plugin: encode: Refine encode's sink caps.
3481           The old manner to get the encode's sink caps is not correct.
3482           Such as 264 encode, it gets:
3483           video/x-raw(memory:VASurface),
3484           format=(string){ ENCODED, NV12, I420, YV12, YUY2, UYVY, Y210,
3485           P010_10LE, AYUV, Y410, Y444 }, width=(int)[ 32, 4096 ],
3486           height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3487           video/x-raw(memory:DMABuf), format=(string){ I420, YV12, RGBA },
3488           width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3489           framerate=(fraction)[ 0/1, 2147483647/1 ];
3490           video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3491           height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3492           where the formats for memory:VASurface and memory:DMABuf are superfluous.
3493           All the "I420, YV12, YUY2, UYVY, Y210, RGBA" can not be really used as
3494           input format for encoder.
3495           We should get:
3496           video/x-raw, format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3497           height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ];
3498           video/x-raw(memory:VASurface), format=(string){ NV12 },
3499           width=(int)[ 32, 4096 ], height=(int)[ 32, 4096 ],
3500           framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(memory:DMABuf),
3501           format=(string){ NV12 }, width=(int)[ 32, 4096 ],
3502           height=(int)[ 32, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
3503           as the correct result.
3504
3505 2019-12-20 08:37:11 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3506
3507         * gst-libs/gst/vaapi/gstvaapidisplay.c:
3508         * gst-libs/gst/vaapi/gstvaapiprofile.h:
3509           libs: display: code clean up
3510
3511 2019-12-12 21:34:21 +0800  He Junyan <junyan.he@hotmail.com>
3512
3513         * gst-libs/gst/vaapi/gstvaapidisplay.c:
3514         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
3515         * gst-libs/gst/vaapi/gstvaapiprofile.h:
3516           libs: display: refine the profile/entrypoint map.
3517           The old way make the one config for each profile/entrypoint pair,
3518           which is not very convenient for description the relationship
3519           between them. One profile may contain more than one entrypoints
3520           to within it, so a set like data structure should be more suitable.
3521
3522 2019-12-19 14:19:10 +0100  He Junyan <junyan.he@hotmail.com>
3523
3524         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
3525         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
3526         * gst-libs/gst/vaapi/gstvaapicontext.c:
3527         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3528         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
3529         * gst-libs/gst/vaapi/gstvaapifilter.c:
3530         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
3531         * gst-libs/gst/vaapi/gstvaapisurface.c:
3532         * gst-libs/gst/vaapi/gstvaapisurface.h:
3533         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3534         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
3535         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3536         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
3537         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
3538         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
3539         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
3540         * gst-libs/gst/vaapi/gstvaapivideopool.c:
3541         * gst-libs/gst/vaapi/gstvaapiwindow.c:
3542         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
3543         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3544         * gst/vaapi/gstvaapipluginbase.c:
3545         * gst/vaapi/gstvaapivideomemory.c:
3546         * gst/vaapi/gstvaapivideometa.c:
3547         * gst/vaapi/gstvaapivideometa_texture.c:
3548         * tests/internal/image.c:
3549         * tests/internal/test-filter.c:
3550         * tests/internal/test-surfaces.c:
3551         * tests/internal/test-windows.c:
3552           libs: surface: port to GstMiniObject
3553           GstVaapiMiniObject and GstVaapiObject are deprecated.
3554           This is the first step to remove them by porting GstVaapiSurface as
3555           a GstMiniBuffer descendant.
3556           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3557
3558 2019-12-19 18:26:10 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3559
3560         * gst-libs/gst/vaapi/gstvaapisurface.c:
3561           libs: surface: rename create function names to init
3562           There are several internal functions with 'create' name, but they
3563           don't create any new structure, but rather it initializes that
3564           structure. Renaming those function to reflect better their purpose.
3565
3566 2019-12-19 14:17:34 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3567
3568         * gst-libs/gst/vaapi/gstvaapisurface.c:
3569           libs: surface: use macro accessors
3570
3571 2019-12-19 13:46:09 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3572
3573         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
3574           libs: surface: fix internal documentation
3575
3576 2019-12-18 18:00:49 +0100  He Junyan <junyan.he@hotmail.com>
3577
3578         * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3579         * gst-libs/gst/vaapi/gstvaapicodedbuffer.h:
3580         * gst-libs/gst/vaapi/gstvaapicodedbuffer_priv.h:
3581         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
3582         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
3583         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3584         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
3585         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
3586         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
3587         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
3588         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
3589         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3590         * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
3591         * gst-libs/gst/vaapi/gstvaapivideopool.c:
3592           libs: codedbuffer: port to GstMiniObject
3593           GstVaapiMiniObject and GstVaapiObject are deprecated.
3594           This is the first step to remove them by porting GstVaapiCodedBuffer
3595           as a GstMiniBuffer descendant.
3596           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3597
3598 2019-12-18 12:57:01 +0100  He Junyan <junyan.he@hotmail.com>
3599
3600         * gst-libs/gst/vaapi/gstvaapiimage.c:
3601         * gst-libs/gst/vaapi/gstvaapiimage.h:
3602         * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
3603         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
3604         * gst-libs/gst/vaapi/gstvaapisurface.c:
3605         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
3606         * gst-libs/gst/vaapi/gstvaapivideopool.c:
3607         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3608         * gst/vaapi/gstvaapipluginbase.c:
3609         * gst/vaapi/gstvaapivideomemory.c:
3610         * gst/vaapi/gstvaapivideometa.c:
3611         * tests/internal/image.c:
3612         * tests/internal/simple-encoder.c:
3613         * tests/internal/test-fei-enc-in.c:
3614         * tests/internal/test-filter.c:
3615         * tests/internal/test-windows.c:
3616           libs: image: port to GstMiniObject base class
3617           GstVaapiMiniObject and GstVaapiObject are deprecrated. This is the
3618           first step to remove them, by porting GstVaapiImage as a
3619           GstMiniObject.
3620           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3621
3622 2019-09-24 01:01:22 +0800  He Junyan <junyan.he@hotmail.com>
3623
3624         * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
3625         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
3626         * gst-libs/gst/vaapi/gstvaapicontext.c:
3627         * gst-libs/gst/vaapi/gstvaapicontext.h:
3628         * gst-libs/gst/vaapi/gstvaapidecoder.c:
3629         * gst-libs/gst/vaapi/gstvaapiencoder.c:
3630         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3631         * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
3632           libs: context: port to a plain C structure
3633           The GstVaapiMiniObject is obsolete and we need to replace it. This
3634           patch turns GstVaapiContext into a plain C structure with its own
3635           reference counting mechanism.
3636           Also this patch removes unused overlays attributes.
3637           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3638
3639 2019-12-18 00:40:58 +0800  He Junyan <junyan.he@hotmail.com>
3640
3641         * gst/vaapi/gstvaapiencode_h264.c:
3642         * gst/vaapi/gstvaapiencode_h264_fei.c:
3643         * gst/vaapi/gstvaapiencode_h265.c:
3644         * gst/vaapi/gstvaapiencode_jpeg.c:
3645         * gst/vaapi/gstvaapiencode_mpeg2.c:
3646         * gst/vaapi/gstvaapiencode_vp8.c:
3647         * gst/vaapi/gstvaapiencode_vp9.c:
3648           plugin: encode: change the dmabuf caps to all supported formats.
3649           The encode's dmabuf caps definition is obsolete, it can support
3650           more formats now. Re-define it to include all supported formats
3651           in video format map.
3652
3653 2019-12-17 17:09:37 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3654
3655         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3656           libs: encoder: h264fei: remove unnecessary check
3657           Issue detected by Coverity
3658           `info_to_pack.h264_slice_header` is always allocated by
3659           gst_vaapi_feipak_h264_encode(), thus checking it to free it afterwards
3660           in doesn't make much sense.  But it requires to be free on the error
3661           path.
3662           There may be a null pointer dereference, or else the comparison
3663           against null is unnecessary.
3664           In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3665           pointer comparison already dereference the pointer earlier
3666
3667 2019-12-17 17:05:22 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3668
3669         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3670           libs: encoder: h264fei: remove unnecessary assert
3671           Issue detected by Coverity
3672           An unsigned value can never be negative, so this test will always
3673           evaluate the same way.
3674           In add_slice_headers: An unsigned value can never be less than 0
3675
3676 2019-12-17 16:57:41 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3677
3678         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3679           libs: encoder: h264fei: remove unnecessary check
3680           Issue detected by Coverity
3681           There may be a null pointer dereference, or else the comparison
3682           against null is unnecessary.
3683           In gst_vaapi_encoder_h264_fei_encode: All paths that lead to this null
3684           pointer comparison already dereference the pointer earlier
3685
3686 2019-12-17 16:49:47 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3687
3688         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3689         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
3690           libs: encoder: h264fei: don't free memory on stack
3691           Issue detected by Coverity
3692           `info_to_pak` variable in gst_vaapi_encoder_h264_fei_encode() is
3693           declared in the stack, but it is free in
3694           gst_vaapi_feienc_h264_encode() as if declared on the heap.
3695           This patch initializes the structure and removes the free.
3696           A non-heap pointer is placed on the free list, likely causing a crash
3697           later.
3698           In gst_vaapi_encoder_h264_fei_encode: Free of an address-of
3699           expression, which can never be heap allocated.
3700
3701 2019-12-17 13:22:12 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3702
3703         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
3704           libs: encoder: h264fei: fix surface leak
3705           Issue detected by Coverity
3706           If the FEI mode is not handled the created resources should be
3707           released and return and error code.
3708           The system resource will not be reclaimed and reused, reducing the
3709           future availability of the resource.
3710           In gst_vaapi_encoder_h264_fei_encode: Leak of memory or pointers to
3711           system resources
3712
3713 2019-12-17 13:09:58 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3714
3715         * tests/check/elements/vaapipostproc.c:
3716           tests: check return calling of gst_navigation_event_parse.*
3717           This issue was detected by Coverity.
3718           If the function returns an error value, the error value may be mistaken
3719           for a normal value.
3720           In cb_mouse_event: Value returned from a function is not checked for
3721           errors before being used
3722
3723 2019-12-16 16:25:02 +0800  He Junyan <junyan.he@hotmail.com>
3724
3725         * gst/vaapi/gstvaapiencode_h264.c:
3726         * gst/vaapi/gstvaapiencode_h264_fei.c:
3727         * gst/vaapi/gstvaapiencode_h265.c:
3728         * gst/vaapi/gstvaapiencode_jpeg.c:
3729         * gst/vaapi/gstvaapiencode_mpeg2.c:
3730         * gst/vaapi/gstvaapiencode_vp8.c:
3731         * gst/vaapi/gstvaapiencode_vp9.c:
3732           plugin: encode: set sink's raw caps to GST_VAAPI_FORMATS_ALL.
3733           Then encode plugin just supports raw formats declared in vaapi video
3734           format map. This modification makes the template caps more precise.
3735
3736 2019-11-14 11:13:51 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3737
3738         * gst/vaapi/gstvaapipluginbase.c:
3739           plugins: base: add GstPad param to internal helper functions
3740           The base plugin public API function implementations determine
3741           which pad should be passed to the internal helper functions.
3742           Currently, only the base plugin static sinkpad and static
3743           srcpad are supported/used.  However, this change enables future
3744           API functions to be added that can accept a pad (i.e. request pad)
3745           from an element subclass (e.g. a GstVideoAggregator subclass).
3746
3747 2019-11-12 12:21:52 -0800  U. Artie Eoff <ullysses.a.eoff@intel.com>
3748
3749         * gst/vaapi/gstvaapipluginbase.c:
3750         * gst/vaapi/gstvaapipluginbase.h:
3751           plugins: base: manage pad-specific data in a single struct
3752           Define a struct (GstVaapiPadPrivate) to encapsulate the
3753           pad-specific data (i.e. buffer pool, allocator, info,
3754           caps, etc.).
3755           Add an interface to retrieve the data struct for a given
3756           pad.
3757           Finally, update the base plugin to use the data struct
3758           throughout the implementation.
3759           This will enable us to easily extend the base plugin in the
3760           future to allow for N-to-1 pad subclasses (e.g. overlay/
3761           composite).
3762
3763 2019-10-29 15:13:44 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3764
3765         * gst/vaapi/gstvaapidecode.c:
3766         * gst/vaapi/gstvaapiencode.c:
3767         * gst/vaapi/gstvaapipluginbase.h:
3768         * gst/vaapi/gstvaapipostproc.c:
3769           plugins: use plugin base macros to access pad specific data
3770           Don't access base struct fields directly since the underlying
3771           definition can change.  Instead, use the accessor macros.
3772
3773 2019-12-03 00:52:45 +0800  He Junyan <junyan.he@hotmail.com>
3774
3775         * gst/vaapi/gstvaapidecode.c:
3776           libs: decoder: Modify decode src's template raw formats
3777           We do not need to maintain a standalone list of decoder's output
3778           template for raw formats and that is easy to make mistake(for
3779           example, the AYVU is wrong in that list, should be VUYA).
3780           Just use GST_VAAPI_FORMATS_ALL to replace the raw formats list for
3781           src template.
3782
3783 2019-12-11 14:11:13 +0800  He Junyan <junyan.he@hotmail.com>
3784
3785         * gst/vaapi/gstvaapipostproc.c:
3786           libs: postproc: Modify src/sink template raw formats
3787           We need to provide more precise template caps for postproc's src
3788           and sink pads. The GST_VIDEO_FORMATS_ALL make all video formats
3789           available which are really superfluous.
3790
3791 2019-12-10 18:40:42 -0300  Thibault Saunier <tsaunier@igalia.com>
3792
3793         * tests/check/elements/vaapipostproc.c:
3794           Do not mix declaration and code
3795
3796 2019-11-03 17:59:01 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3797
3798         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
3799           libs: decoder: h265: skip all pictures prior the first I-frame
3800           Don't try to decode until the first I-frame is received within the
3801           currently active sequence. i965 H265 decoder don't show any artifact
3802           but it crashes.
3803           Fixes: #98
3804
3805 2019-11-27 01:44:05 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3806
3807         * gst-libs/gst/vaapi/video-format.c:
3808           libs: video-format: remove dead code
3809
3810 2019-10-31 00:59:34 +0800  He Junyan <junyan.he@hotmail.com>
3811
3812         * gst-libs/gst/vaapi/video-format.c:
3813         * gst-libs/gst/vaapi/video-format.h:
3814         * gst/vaapi/gstvaapipluginutil.h:
3815           libs: video-format: add GST_VAAPI_FORMATS_ALL
3816           GST_VAAPI_FORMATS_ALL collects all declared formats in video-format
3817           as a caps template string, and make them available in caps with
3818           memory:VASurface feature.
3819           Fixes: #199
3820
3821 2019-11-06 22:37:12 +0800  He Junyan <junyan.he@hotmail.com>
3822
3823         * gst-libs/gst/vaapi/video-format.c:
3824         * tests/internal/test-windows.c:
3825           libs: video-format: change GST_VIDEO_FORMAT_AYUV to VUYA.
3826           We only support VUYA format in gst vaapi now, need to correct
3827           the mapping.
3828
3829 2019-10-09 15:13:09 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3830
3831         * tests/check/elements/vaapipostproc.c:
3832           tests: check: vaapipostproc test_orientation_mouse_events
3833           Test that vaapipostproc properly translates mouse events
3834           when using video-direction (orientation).
3835
3836 2019-10-09 10:11:54 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3837
3838         * tests/check/elements/vaapipostproc.c:
3839         * tests/check/meson.build:
3840           tests: check: vaapipostproc test_crop_mouse_events
3841           Test that vaapipostproc properly translates mouse events
3842           when cropping.
3843
3844 2019-10-08 12:20:26 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3845
3846         * meson.build:
3847         * meson_options.txt:
3848         * tests/check/elements/vaapipostproc.c:
3849         * tests/check/meson.build:
3850         * tests/meson.build:
3851           tests: check: initial unit test support
3852           Add minimal unit test toolchain files and a simple
3853           vaapipostproc unit test.
3854
3855 2019-10-08 12:19:06 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3856
3857         * meson.build:
3858         * tests/examples/meson.build:
3859         * tests/examples/test-roi.c:
3860         * tests/examples/test-vaapicontext.c:
3861         * tests/examples/test-vaapipostproc.c:
3862         * tests/examples/test-vaapisink.c:
3863         * tests/internal/codec.c:
3864         * tests/internal/codec.h:
3865         * tests/internal/decoder.c:
3866         * tests/internal/decoder.h:
3867         * tests/internal/image.c:
3868         * tests/internal/image.h:
3869         * tests/internal/meson.build:
3870         * tests/internal/output.c:
3871         * tests/internal/output.h:
3872         * tests/internal/simple-decoder.c:
3873         * tests/internal/simple-encoder.c:
3874         * tests/internal/test-decode.c:
3875         * tests/internal/test-decode.h:
3876         * tests/internal/test-display.c:
3877         * tests/internal/test-fei-enc-in.c:
3878         * tests/internal/test-fei-enc-out.c:
3879         * tests/internal/test-filter.c:
3880         * tests/internal/test-h264.c:
3881         * tests/internal/test-h264.h:
3882         * tests/internal/test-jpeg.c:
3883         * tests/internal/test-jpeg.h:
3884         * tests/internal/test-mpeg2.c:
3885         * tests/internal/test-mpeg2.h:
3886         * tests/internal/test-mpeg4.c:
3887         * tests/internal/test-mpeg4.h:
3888         * tests/internal/test-subpicture-data.c:
3889         * tests/internal/test-subpicture-data.h:
3890         * tests/internal/test-subpicture.c:
3891         * tests/internal/test-surfaces.c:
3892         * tests/internal/test-textures.c:
3893         * tests/internal/test-vc1.c:
3894         * tests/internal/test-vc1.h:
3895         * tests/internal/test-windows.c:
3896         * tests/internal/y4mreader.c:
3897         * tests/internal/y4mreader.h:
3898         * tests/meson.build:
3899           tests: move examples and tests to subfolders
3900           This makes way for adding unit (check) tests.
3901
3902 2019-10-14 01:01:27 +0100  Tim-Philipp Müller <tim@centricular.com>
3903
3904         * .gitmodules:
3905         * Makefile.am:
3906         * autogen.sh:
3907         * common:
3908         * configure.ac:
3909         * git.mk:
3910         * gst-libs/Makefile.am:
3911         * gst-libs/gst/Makefile.am:
3912         * gst-libs/gst/vaapi/Makefile.am:
3913         * gst/Makefile.am:
3914         * gst/vaapi/Makefile.am:
3915         * m4/Makefile.am:
3916         * tests/Makefile.am:
3917         * tests/elements/Makefile.am:
3918           Remove autotools build
3919
3920 2019-10-10 15:26:36 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3921
3922         * gst/vaapi/gstvaapipostproc.c:
3923           vaapipostproc: fix off-by-one coord translations
3924           When translating navigation x,y coordinates for
3925           video-direction, it is necessary to subtract 1
3926           when using the video dimensions to compute the
3927           new x,y coordinates.  That is, a 100x200 image
3928           should map coordinates in x=[0-99],y=[0-199].
3929           This issue was found with unit tests provided
3930           in !182.
3931
3932 2019-10-11 17:34:06 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3933
3934         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
3935           libs: window: x11: Avoid usage of deprecated API
3936
3937 2019-10-11 17:13:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
3938
3939         * meson.build:
3940           build: halt meson configuration if no renderer API
3941           We should halt meson configuration if there is no render API
3942           installed (either DRM, Wayland or X11).
3943           That behavior was already in autotools but missed in meson. This patch
3944           brings it back.
3945           Fixes: #196
3946
3947 2019-10-09 12:12:18 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3948
3949         * gst-libs/gst/vaapi/gstvaapifilter.c:
3950           libs: filter: fix default orientation regression
3951           Fix regression introduced in f232f87f7082
3952
3953 2019-10-07 11:53:23 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3954
3955         * gst-libs/gst/vaapi/gstvaapifilter.c:
3956           libs: filter: use OP_DATA_DEFAULT_VALUE macro
3957
3958 2019-10-07 11:39:19 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3959
3960         * gst-libs/gst/vaapi/gstvaapifilter.c:
3961           libs: filter: use macro for returning op default value
3962           The code is essentially the same for getting all op default
3963           values.  Thus, use a macro to help minimize code duplication
3964           and [hopefully] encourage using the same mechanism for all
3965           default getters.
3966
3967 2019-10-07 09:56:37 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3968
3969         * gst-libs/gst/vaapi/gstvaapifilter.c:
3970           libs: filter: query param spec for default scale method
3971           Related: #159
3972
3973 2019-10-07 09:44:06 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3974
3975         * gst-libs/gst/vaapi/gstvaapifilter.c:
3976           libs: filter: query param spec for default skin-tone values
3977           Related: #159
3978
3979 2019-10-02 12:54:52 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3980
3981         * gst-libs/gst/vaapi/gstvaapifilter.c:
3982           libs: filter: query param spec for default video-direction
3983           Related: #159
3984
3985 2019-10-07 10:23:09 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
3986
3987         * .gitignore:
3988           add .gitignore
3989
3990 2019-09-05 16:40:52 +0800  Yan Wang <yan.wang@linux.intel.com>
3991
3992         * gst-libs/gst/vaapi/gstvaapifilter.c:
3993         * gst-libs/gst/vaapi/gstvaapifilter.h:
3994         * gst/vaapi/gstvaapipostproc.c:
3995         * gst/vaapi/gstvaapipostproc.h:
3996           vaapipostproc: Use level value for skin-tone-enhancement filter.
3997           Currently the parameter of skin-tone-enhancement filter is forced
3998           to zero. In fact it could be set different value by the user.
3999           So create a new property named as "skin-tone-enhancement-level"
4000           for accepting the used defined parameter value.
4001           At the same time, skin-tone-enhancement is marked as deprecated.
4002           When skin-tone-enhancement-level is set, skin-tone-enhancement
4003           will be ignored.
4004
4005 2019-09-21 13:39:42 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4006
4007         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4008         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4009           libs: decoder: h264, h266: fix g_return_val_if_fail() missuse
4010           g_return_val_fail() documentations says:
4011           If expr evaluates to FALSE, the current function should be
4012           considered to have undefined behaviour (a programmer error).
4013           The only correct solution to such an error is to change the
4014           module that is calling the current function, so that it avoids
4015           this incorrect call.
4016           So it was missused in a couple parts of the H264 and H265 internal
4017           decoders. This patch changes that to plain conditionals.
4018           Also, it was included a couple code-style fixes.
4019
4020 2019-09-23 19:52:20 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4021
4022         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4023         * gst-libs/gst/vaapi/gstvaapiencoder.h:
4024         * tests/simple-encoder.c:
4025         * tests/test-fei-enc-in.c:
4026           libs: encoder: remove gst_vaapi_encoder_{ref,unref}()
4027           Since GstVaapiEncoder is a descendant of of GstObject, there is no
4028           need to keep a custom ref()/unref() methods. This patch deletes them.
4029
4030 2019-09-24 01:03:02 +0800  He Junyan <junyan.he@hotmail.com>
4031
4032         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4033           libs: encoder: correct encoder's ref/unref function.
4034           GstVaapiEncoder now is a standard gstobject and need to use
4035           gst_object_ref/unref functions.
4036
4037 2019-09-19 12:09:20 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4038
4039         * gst/vaapi/gstvaapiencode_h264_fei.c:
4040           gst: encode: h264_fei: remove useless comparison
4041           The expression "len >= 0" is always true since "len"
4042           is an unsigned type.  And it is clear that the writers
4043           intention was not to write "len > 0" since we handle
4044           len == 0 in the ensuing "if (len < 3)" conditional
4045           block.
4046
4047 2019-09-19 11:17:24 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4048
4049         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4050           libs: encoder: h264_fei: fix potential overflow before widen
4051           Found by static analysis. encoder->mb_width * encoder->mb_height
4052           is evaluated using 32-bit arithmetic before widen.  Thus, cast
4053           at least one of these to guint64 to avoid overflow.
4054
4055 2019-09-19 10:56:13 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4056
4057         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4058           libs: encoder: h264_fei: remove dead error condition
4059           Found by static analysis.  The feipak is always null
4060           when we reach the error target.
4061
4062 2019-09-19 10:49:11 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4063
4064         * gst-libs/gst/vaapi/gstvaapiutils.c:
4065           libs: utils: add missing break in switch
4066
4067 2019-09-11 11:56:35 +0800  He Junyan <junyan.he@hotmail.com>
4068
4069         * gst-libs/gst/vaapi/video-format.c:
4070           libs: video-format: Make all YUV format available
4071           The YUV formats have no ambiguity for drivers, so we can add them all.
4072           Some old driver(i965) does not implement full get/put image functions
4073           but can use derive image funtions for the YUV format. It does not
4074           report that kind of formats correctly in image query, but will derive
4075           that YUV format image from surface. The dynamic mapping of YUV format
4076           will block that manner.
4077           Adding more YUV format mapping has no side effect. So considering the
4078           legacy driver conformance, we add all YUV formats mapping statically
4079           and dynamic mapping RBG formats
4080           Fix: #189
4081           Fix: #190
4082
4083 2019-09-18 15:30:03 +1000  Matthew Waters <matthew@centricular.com>
4084
4085         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4086         * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
4087           egl: Fix racyness in display thread creation
4088           Multiple different scenarios could break the display thread creation and
4089           end up blocking waiting for thread o be created.  Fix them all by
4090           correctly waiting for a new boolean to become valid.
4091
4092 2019-09-18 15:29:03 +1000  Matthew Waters <matthew@centricular.com>
4093
4094         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
4095           egl: don't advertise a wrapped EGLContext as actually wrapped
4096           It's not actually wrapped as we create a new EGLContext from the passed
4097           in EGLContext.  As a result, the created EGLContext was never destroyed.
4098
4099 2019-09-16 23:28:31 +0800  He Junyan <junyan.he@hotmail.com>
4100
4101         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
4102           libs: h264decoder: do not return error for unhandled NAL unit.
4103           Some streams have error data introducing unknown NAL type. There are
4104           also kinds of NAL types we do not want to handle. The old manner will
4105           set a decoder error when encounter this, which cause a latent crash bug.
4106           The decoder may successfully decode the picture and insert it into DPB.
4107           But there are error NAL units after the AU which cause the post unit error
4108           and make that frame dropped. The later output of the picture still want
4109           to ref that frame and crash.
4110           No need to set decoder error when can not recognize or handle the NAL
4111           unit, just skip it and continue.
4112           Fix: #191
4113
4114 2019-09-11 14:32:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4115
4116         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4117         * gst-libs/gst/vaapi/gstvaapiencoder.h:
4118         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4119         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4120         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4121         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4122         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4123         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4124         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4125         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4126         * gst/vaapi/gstvaapiencode.c:
4127           libs: encoders: use GST_PARAM_USER_SHIFT to define internal params
4128           This patch makes use of GST_PARAM_USER_SHIFT to define the internal
4129           param in encoders to decide which parameters to expose. Thus
4130           gstreamer-vaapi will not interfere with any change in GStreamer in the
4131           future.
4132           Also, the internal symbol was change to
4133           GST_VAAPI_PARAM_ENCODER_EXPOSURE to keep the namespacing.
4134
4135 2019-09-09 18:06:51 +0800  He Junyan <junyan.he@hotmail.com>
4136
4137         * gst-libs/gst/vaapi/gstvaapiimage.c:
4138         * gst-libs/gst/vaapi/video-format.c:
4139           libs: Add BGR10A2_LE support for color space conversion.
4140           Fix: #179
4141
4142 2019-08-23 14:41:06 +0800  He Junyan <junyan.he@hotmail.com>
4143
4144         * gst-libs/gst/vaapi/gstvaapisurface.c:
4145           libs: surface: add pointer check for surface_new_from_formats.
4146           The command line:
4147           gst-launch-1.0 filesrc location=some_name.mjpeg ! jpegparse !
4148           vaapijpegdec !  videoconvert ! video/x-raw,format=I420 ! vaapisink
4149           will crash on i965 driver because of no pointer check.
4150           We now generate the video format map between GST format and VA format
4151           dynamically based on the image format returned by vaQueryImageFormats.
4152           i965 driver does to report image format of 444P and Y800 forcc, while
4153           the jpeg decoder context VASurfaceAttribPixelFormat use them. We can
4154           not recognize these format and pass a NULL pointer to
4155           gst_vaapi_surface_new_from_formats.
4156           We need to add a pointer check here and let the fallback logic handle
4157           this case correctly.
4158           Other drivers work well.
4159
4160 2019-09-07 13:23:01 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4161
4162         * gst-libs/gst/vaapi/gstvaapiutils.c:
4163           libs: utils: guard the VAEntrypointFEI symbol
4164           VAEntrypointFEI appeared in libva 2.0.0 (API version 1.0.0)
4165
4166 2019-09-05 14:48:22 +0800  He Junyan <junyan.he@hotmail.com>
4167
4168         * gst-libs/gst/vaapi/gstvaapidisplay.c:
4169         * gst-libs/gst/vaapi/video-format.c:
4170         * gst-libs/gst/vaapi/video-format.h:
4171           libs: video-format: Refine the video format mapping.
4172           Improve the mapping between va format and gst format. The new map
4173           will be generated dynamically, based on the query result of image
4174           format in VA driver. Also consider the ambiguity of RGB color
4175           format in LSB mode.
4176
4177 2019-04-15 16:51:26 +0100  Philippe Normand <philn@igalia.com>
4178
4179         * gst/vaapi/gstvaapipluginutil.c:
4180           pluginutil: Remove Mesa from drivers white list
4181           The Mesa Gallium driver is poorly tested currently, leading to bad user
4182           experience for AMD users. The driver can be added back to the white list at
4183           runtime using the GST_VAAPI_ALL_DRIVERS environment variable.
4184
4185 2019-07-08 14:18:00 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4186
4187         * gst/vaapi/gstvaapipostproc.c:
4188         * gst/vaapi/gstvaapipostproc.h:
4189         * gst/vaapi/gstvaapipostprocutil.c:
4190           vaapipostproc: allow cropping via properties
4191           Add crop-left, crop-right, crop-top and crop-bottom
4192           properties to vaapipostproc.
4193
4194 2019-08-30 17:31:45 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4195
4196         * gst/vaapi/gstvaapipostproc.c:
4197           vaapipostproc: rotate outbuf and crop meta if forwarding
4198           When forwarding crop meta to downstream, the output
4199           buffer and crop meta need to be rotated, too.
4200           Test:
4201           for i in 90r 180 90l vert horiz ul-lr ur-ll
4202           do
4203           gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4204           ! videocrop top=100 bottom=30 left=40 right=20 \
4205           ! vaapipostproc video-direction=$i \
4206           ! vaapisink & \
4207           gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4208           ! videocrop top=100 bottom=30 left=40 right=20 \
4209           ! vaapipostproc video-direction=$i \
4210           ! identity drop-allocation=true \
4211           ! vaapisink
4212           done
4213
4214 2019-08-30 14:14:30 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4215
4216         * gst/vaapi/gstvaapipostproc.c:
4217           vaapipostproc: fix output buffer WxH for crop meta forwarding
4218           Adding crop meta x,y to w,h only compensates for left,top
4219           cropping.  But we also need to compensate for right,bottom
4220           cropping.
4221           The video meta contains the appropriate w,h (uncropped)
4222           values, so use it instead.
4223           Test:
4224           gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4225           ! videocrop top=50 bottom=30 left=40 right=20 \
4226           ! vaapipostproc ! vaapisink & \
4227           gst-launch-1.0 -vf videotestsrc num-buffers=500 \
4228           ! videocrop top=50 bottom=30 left=40 right=20 \
4229           ! vaapipostproc ! identity drop-allocation=1 \
4230           ! vaapisink
4231
4232 2019-09-04 10:52:51 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4233
4234         * gst/vaapi/gstvaapipostproc.c:
4235           vaapipostproc: handle size and direction together in src events
4236           Mapping a pointer event needs to consider both size and
4237           video-direction operations together, not just one or the other.
4238           This fixes an issue where x,y were not being mapped correctly
4239           for 90r, 90l, ur-ll and ul-lr video-direction. In these directions,
4240           the WxH are swapped and GST_VAAPI_POSTPROC_FLAG_SIZE is set.  Thus,
4241           the first condition in the pointer event handling was entered and
4242           x,y scale factor were incorrectly computed due to srcpad WxH
4243           swap.
4244           This also fixes all cases where both video-direction and scaling
4245           are enabled at the same time.
4246           Test that all pointer events map appropriately:
4247           for i in `seq 0 7`
4248           do
4249           GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4250           ! vaapipostproc video-direction=${i} width=300 \
4251           ! vaapisink
4252           GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4253           ! vaapipostproc video-direction=${i} width=300 height=200 \
4254           ! vaapisink
4255           GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4256           ! vaapipostproc video-direction=${i} height=200 \
4257           ! vaapisink
4258           GST_DEBUG=vaapipostproc:5 gst-launch-1.0 -vf videotestsrc \
4259           ! vaapipostproc video-direction=${i} \
4260           ! vaapisink
4261           done
4262
4263 2019-08-20 14:22:57 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
4264
4265         * gst/vaapi/gstvaapipostproc.c:
4266         * gst/vaapi/gstvaapipostproc.h:
4267           vaapipostproc: advertise crop meta is handled
4268           Advertise to upstream that vaapipostproc can handle
4269           crop meta.
4270           When used in conjunction with videocrop plugin, the
4271           videocrop plugin will only do in-place transform on the
4272           crop meta when vaapipostproc advertises the ability to
4273           handle it.  This allows vaapipostproc to apply the crop
4274           meta on the output buffer using vaapi acceleration.
4275           Without this advertisement, the videocrop plugin will
4276           crop the output buffer directly via software methods,
4277           which is not what we desire.
4278           vaapipostproc will not apply the crop meta if downstream
4279           advertises crop meta handling; vaapipostproc will just
4280           forward the crop meta to downstream.  If crop meta is
4281           not advertised by downstream, then vaapipostproc will
4282           apply the crop meta.
4283           Examples:
4284           1. vaapipostproc will forward crop meta to vaapisink
4285           gst-launch-1.0 videotestsrc \
4286           ! videocrop left=10 \
4287           ! vaapipostproc \
4288           ! vaapisink
4289           2. vaapipostproc will do the cropping
4290           gst-launch-1.0 videotestsrc \
4291           ! videocrop left=10 \
4292           ! vaapipostproc \
4293           ! identity drop-allocation=1 \
4294           ! vaapisink
4295
4296 2019-08-29 18:44:36 +0800  He Junyan <junyan.he@hotmail.com>
4297
4298         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4299           libs: encoder: clean two virtual func in encoder class
4300           set_property and get_default_properties functions are no longer
4301           needed for encoder class.
4302
4303 2019-08-29 18:43:30 +0800  He Junyan <junyan.he@hotmail.com>
4304
4305         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4306         * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4307           libs: encoder: delete old set_property and property enum feienc264
4308
4309 2019-08-29 18:39:27 +0800  He Junyan <junyan.he@hotmail.com>
4310
4311         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4312         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4313           libs: encoder: delete old set_property and property enum in h264 fei
4314
4315 2019-08-29 18:37:58 +0800  He Junyan <junyan.he@hotmail.com>
4316
4317         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4318         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4319           libs: encoder: delete old set_property and property enum in vp9
4320
4321 2019-08-29 18:36:51 +0800  He Junyan <junyan.he@hotmail.com>
4322
4323         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4324         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4325           libs: encoder: delete old set_property and property enum in vp8
4326
4327 2019-08-29 18:35:59 +0800  He Junyan <junyan.he@hotmail.com>
4328
4329         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4330         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4331           libs: encoder: delete old set_property and property enum in mpeg2
4332
4333 2019-08-29 18:34:57 +0800  He Junyan <junyan.he@hotmail.com>
4334
4335         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4336         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4337           libs: encoder: delete old set_property and property enum in jpeg
4338
4339 2019-08-29 18:31:56 +0800  He Junyan <junyan.he@hotmail.com>
4340
4341         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4342         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4343           libs: encoder: delete old set_property and property enum in h265
4344
4345 2019-08-29 18:30:07 +0800  He Junyan <junyan.he@hotmail.com>
4346
4347         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4348         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4349           libs: encoder: delete old set_property and property enum in h264
4350
4351 2019-08-29 18:17:42 +0800  He Junyan <junyan.he@hotmail.com>
4352
4353         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4354         * gst-libs/gst/vaapi/gstvaapiencoder.h:
4355         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4356           libs: encoder: delete EncoderPropInfo related functions
4357
4358 2019-08-29 16:13:19 +0800  He Junyan <junyan.he@hotmail.com>
4359
4360         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4361         * gst-libs/gst/vaapi/gstvaapiencoder.h:
4362           libs: encoder: delete encoder_set_property
4363           We no longer need this obsolete set_property function now after
4364           switch to standard gobject's property manner.
4365           Also delete the old encoder's property enum in the header file.
4366
4367 2019-08-29 15:59:43 +0800  He Junyan <junyan.he@hotmail.com>
4368
4369         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4370         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4371           libs: encoder: delete properties_get_default for base class
4372
4373 2019-08-29 15:52:04 +0800  He Junyan <junyan.he@hotmail.com>
4374
4375         * gst/vaapi/gstvaapiencode.c:
4376         * gst/vaapi/gstvaapiencode.h:
4377           plugin: encode: delete useless init_properties.
4378           Also delete the get_properties function in encode class. We now
4379           use g_object_class_list_properties to get all properties for
4380           internal encoder class.
4381
4382 2019-08-29 15:43:45 +0800  He Junyan <junyan.he@hotmail.com>
4383
4384         * gst/vaapi/gstvaapiencode.c:
4385         * gst/vaapi/gstvaapiencode.h:
4386           plugin: encode: delete set/get_property func in encode class
4387           Use standard gobject's property functions to replace the old way.
4388
4389 2019-08-29 15:31:16 +0800  He Junyan <junyan.he@hotmail.com>
4390
4391         * gst/vaapi/gstvaapiencode.c:
4392         * gst/vaapi/gstvaapiencode.h:
4393           plugin: encode: delete gst_vaapiencode_init_properties
4394           No need to init the properties got by get_default_properties func
4395           now. The properties are inited correctly in internal encoder class.
4396
4397 2019-08-29 15:19:10 +0800  He Junyan <junyan.he@hotmail.com>
4398
4399         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4400           libs: encoder: delete 3 useless init macro
4401
4402 2019-08-29 15:16:26 +0800  He Junyan <junyan.he@hotmail.com>
4403
4404         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4405         * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4406           libs: encoder: delete get_default_properties of feienc
4407
4408 2019-08-29 15:14:14 +0800  He Junyan <junyan.he@hotmail.com>
4409
4410         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4411         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4412           libs: encoder: delete get_default_properties of H264 Fei
4413
4414 2019-08-29 15:07:17 +0800  He Junyan <junyan.he@hotmail.com>
4415
4416         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4417         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4418           libs: encoder: delete get_default_properties of VP9
4419
4420 2019-08-29 15:06:25 +0800  He Junyan <junyan.he@hotmail.com>
4421
4422         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4423         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4424           libs: encoder: delete get_default_properties of VP8
4425
4426 2019-08-29 15:03:52 +0800  He Junyan <junyan.he@hotmail.com>
4427
4428         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4429         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4430           libs: encoder: delete get_default_properties of MPEG2
4431
4432 2019-08-29 15:03:19 +0800  He Junyan <junyan.he@hotmail.com>
4433
4434         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4435         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4436           libs: encoder: delete get_default_properties of JPEG
4437
4438 2019-08-30 19:15:38 +0800  He Junyan <junyan.he@hotmail.com>
4439
4440         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4441         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4442           libs: encoder: delete get_default_properties of H265
4443
4444 2019-08-29 14:59:12 +0800  He Junyan <junyan.he@hotmail.com>
4445
4446         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4447         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4448           libs: encoder: delete get_default_properties of H264
4449
4450 2019-08-29 14:53:59 +0800  He Junyan <junyan.he@hotmail.com>
4451
4452         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4453           libs: encoder: delete the useless constructed func for encoder.
4454
4455 2019-08-26 23:16:33 +0800  He Junyan <junyan.he@hotmail.com>
4456
4457         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4458         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4459         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4460           libs: encoder: implement get_view_ids for h264 encoder.
4461
4462 2019-08-20 23:56:33 +0800  He Junyan <junyan.he@hotmail.com>
4463
4464         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4465         * gst/vaapi/gstvaapiencode.c:
4466         * gst/vaapi/gstvaapiencode_h264.c:
4467         * gst/vaapi/gstvaapiencode_h264_fei.c:
4468         * gst/vaapi/gstvaapiencode_h265.c:
4469         * gst/vaapi/gstvaapiencode_jpeg.c:
4470         * gst/vaapi/gstvaapiencode_mpeg2.c:
4471         * gst/vaapi/gstvaapiencode_vp8.c:
4472         * gst/vaapi/gstvaapiencode_vp9.c:
4473           gst: encode: enable new type of property mechanism.
4474
4475 2019-08-20 22:16:35 +0800  He Junyan <junyan.he@hotmail.com>
4476
4477         * gst/vaapi/gstvaapiencode.c:
4478         * gst/vaapi/gstvaapiencode.h:
4479           gst: encode: add property help functions for encoder properties.
4480           The encoder is a true gstobject now and all the properties are using
4481           gobject's properties mechanism. Add help functions to handle the properties
4482           between encode and encoder class.
4483           The basic idea is mapping the same property between encoder and encode. All
4484           the encoder's properties will have the same name, the same type in encode.
4485           The set/get property function just forward the property setting/getting to
4486           the encoder using the same property name and value. Because the encoder is
4487           created on needed, we need to cache the property setting in encode.
4488
4489 2019-08-30 18:39:32 +0800  He Junyan <junyan.he@hotmail.com>
4490
4491         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4492         * gst-libs/gst/vaapi/gstvaapiencoder.h:
4493         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4494         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4495         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4496         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4497         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4498         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4499         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4500         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4501           libs: encoder: add flags to all encoder properties.
4502           G_PARAM_CONSTRUCT make all properties init correctly, we do not
4503           need to init the properties manually.
4504           G_PARAM_FLAG_VAAPI_ENCODER_EXPOSURE is a vaapi encoder specific
4505           flag, means need to expose the property to according encode class.
4506
4507 2019-08-20 17:00:39 +0800  He Junyan <junyan.he@hotmail.com>
4508
4509         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4510           libs: encoder: Add properties for h264 encoder fei.
4511           Install properties for h264 encoder fei class. Also set the new get/set
4512           property functions for gobject class. Still use the old properties
4513           way now and this new feature will be enabled later.
4514
4515 2019-08-20 15:58:30 +0800  He Junyan <junyan.he@hotmail.com>
4516
4517         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4518           libs: encoder: Add properties for h264 fei encoder.
4519           Install properties for h264 fei encoder class. Also set the new get/set
4520           property functions for gobject class. Still use the old properties
4521           way now and this new feature will be enabled later.
4522
4523 2019-08-20 15:29:27 +0800  He Junyan <junyan.he@hotmail.com>
4524
4525         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4526           libs: encoder: Add properties for vp9 encoder.
4527           Install properties for vp9 encoder class. Also set the new get/set
4528           property functions for gobject class. Still use the old properties
4529           way now and this new feature will be enabled later.
4530
4531 2019-08-20 15:01:02 +0800  He Junyan <junyan.he@hotmail.com>
4532
4533         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4534           libs: encoder: Add properties for vp8 encoder.
4535           Install properties for vp8 encoder class. Also set the new get/set
4536           property functions for gobject class. Still use the old properties
4537           way now and this new feature will be enabled later.
4538
4539 2019-08-20 14:31:58 +0800  He Junyan <junyan.he@hotmail.com>
4540
4541         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4542           libs: encoder: Add properties for mpeg2 encoder.
4543           Install properties for mpeg2 encoder class. Also set the new get/set
4544           property functions for gobject class. Still use the old properties
4545           way now and this new feature will be enabled later.
4546
4547 2019-08-20 14:53:06 +0800  He Junyan <junyan.he@hotmail.com>
4548
4549         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4550           libs: encoder: Add properties for jpeg encoder.
4551           Install properties for jpeg encoder class. Also set the new get/set
4552           property functions for gobject class. Still use the old properties
4553           way now and this new feature will be enabled later.
4554
4555 2019-08-20 14:12:36 +0800  He Junyan <junyan.he@hotmail.com>
4556
4557         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4558           libs: encoder: Add properties for h265 encoder.
4559           Install properties for h265 encoder class. Also set the new get/set
4560           property functions for gobject class. Still use the old properties
4561           way now and this new feature will be enabled later.
4562
4563 2019-08-20 01:33:40 +0800  He Junyan <junyan.he@hotmail.com>
4564
4565         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4566           libs: encoder: Add properties for h264 encoder.
4567           Install properties for h264 encoder class. Also set the new get/set
4568           property functions for gobject class. Still use the old properties
4569           way now and this new feature will be enabled later.
4570
4571 2019-08-19 15:38:09 +0800  He Junyan <junyan.he@hotmail.com>
4572
4573         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4574           libs: encoder: add properties and prop help functions
4575           Add all common properties to encoder base class. rate-control and
4576           tune are moved to sub class.
4577
4578 2019-08-29 14:38:49 +0800  He Junyan <junyan.he@hotmail.com>
4579
4580         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4581         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4582           libs: encoder: delete useless gst_vaapi_encoder_new func.
4583           GstVaapiEncoder is a abstract gobject and never be created directly.
4584
4585 2019-07-27 00:55:53 +0800  He Junyan <junyan.he@hotmail.com>
4586
4587         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4588         * gst-libs/gst/vaapi/gstvaapiencoder.h:
4589         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4590         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4591         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
4592         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
4593         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4594         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
4595         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4596         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
4597         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4598         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
4599         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
4600         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4601         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
4602         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4603         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
4604         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
4605         * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
4606           lib: encoder: gstobjectfy all vaapi encoders.
4607           Replace all gstvaapiobject in vaapi encoders with standard gstobject.
4608           Let the gstobject common logic to handle all the init and finalize
4609           works. But the property install/set/get still use the old way, need
4610           to be improved later.
4611
4612 2019-08-29 12:11:36 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4613
4614         * gst/vaapi/gstvaapipostproc.c:
4615           vaapipostproc: check for filter before appending caps
4616           While ensuring the allowed sink pad caps, the filter attributes set
4617           the frame size restriction, but it is not ensured, at that moment,
4618           that the filter is already instantiaded.
4619           In order to silence the glib logs, this patch add only calls
4620           gst_vaapi_filter_append_caps() if the filter is instantiated.
4621
4622 2019-08-28 12:49:03 -0400  Thibault Saunier <tsaunier@igalia.com>
4623
4624         * gst/vaapi/gstvaapidecodebin.c:
4625           Classify vaapidecodebin as a hardware decoder
4626
4627 2019-08-27 18:12:45 +0800  He Junyan <junyan.he@hotmail.com>
4628
4629         * gst/vaapi/gstvaapipostproc.c:
4630           libs: postproc: fix a memory leak point.
4631           filter_ops and filter_formats should already have valid value when
4632           the function gst_vaapipostproc_ensure_filter_caps re-enter
4633
4634 2019-08-27 01:30:36 +0800  He Junyan <junyan.he@hotmail.com>
4635
4636         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4637           libs: util: Fix a memory leak in config_surface_attributes_get
4638
4639 2019-08-22 14:33:54 +0800  Wangfei <fei.w.wang@intel.com>
4640
4641         * gst/vaapi/gstvaapidecode.c:
4642           vaapidecode: support transform ROI meta
4643           This will benefit the use case like:
4644           src --->   encode    ---> decode ---> circle ROI ---> sink
4645           |                |
4646           --> analyse to -->
4647           get ROI
4648
4649 2019-08-23 19:10:15 +0200  Mathieu Duponchelle <mathieu@centricular.com>
4650
4651         * gst/vaapi/gstvaapidecodedoc.c:
4652           docstrings: port ulinks to markdown links
4653
4654 2019-08-20 17:05:14 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4655
4656         * gst-libs/gst/vaapi/Makefile.am:
4657         * gst-libs/gst/vaapi/gstvaapicontext.c:
4658         * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
4659         * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
4660         * gst-libs/gst/vaapi/meson.build:
4661           libs: remove context's overlay
4662           The context overlay was an optimization to apply a video composition
4663           to all the surfaces bound to a context.
4664           But since commit 18031dc6 this optimization was disabled, so it is
4665           better just get rid of it.
4666
4667 2019-08-20 16:50:46 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4668
4669         * gst-libs/gst/vaapi/gstvaapicontext.c:
4670         * gst-libs/gst/vaapi/gstvaapisurface.c:
4671         * gst-libs/gst/vaapi/gstvaapisurface.h:
4672         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
4673         * gst/vaapi/gstvaapipluginutil.c:
4674         * tests/test-subpicture.c:
4675           libs: remove surface's parent context
4676           In commit 18031dc6 surface's parent context is not assigned because of
4677           circular references. Since then (2013), there's has no issue with
4678           subpictures attached to a context, the current only users of this API.
4679           This patch cleans up all of related code with the unused surface's
4680           parent context.
4681
4682 2019-08-18 13:53:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4683
4684         * gst/vaapi/gstvaapidecode.c:
4685           vaapidecode: guard if no structure is available in caps
4686
4687 2019-08-18 13:53:19 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4688
4689         * gst-libs/gst/vaapi/gstvaapifilter.c:
4690         * gst-libs/gst/vaapi/gstvaapifilter.h:
4691         * gst/vaapi/gstvaapipostproc.c:
4692           vaapipostproc: append frame size restrictions in caps
4693
4694 2019-08-18 13:09:58 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4695
4696         * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4697           libs: profilecaps: refactor common code
4698
4699 2019-08-16 19:35:58 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4700
4701         * gst/vaapi/gstvaapiencode.c:
4702           vaapiencode: set frame size restrictions in caps
4703           Fixes: #12
4704
4705 2019-08-16 19:28:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4706
4707         * gst-libs/gst/vaapi/gstvaapiencoder.c:
4708         * gst-libs/gst/vaapi/gstvaapiencoder.h:
4709         * gst/vaapi/gstvaapiencode.c:
4710           vaapiencode: enhance how the profile is defined
4711           This code doesn't define the profile used by the internal encoder, but
4712           it used to "predict" which is going to be used and to get the caps
4713           restrictions.
4714           Before the profile was predicted by checking the donwstream caps, but
4715           sometimes they are not defined, setting an unknown profile. In order
4716           to enhances this situation, the encoder asks to internal encoder if it
4717           has one. If so, it is used.
4718           To ask the internal encoder's profile a new accessor function was
4719           added: gst_vaapi_encoder_get_profile()
4720
4721 2019-08-16 19:26:36 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4722
4723         * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4724         * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4725           libs: profilecaps: defines gst_vaapi_profile_caps_append_encoder()
4726           Previously it was just a boilerplate. Now it is real implementation.
4727
4728 2019-08-16 19:17:48 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4729
4730         * gst-libs/gst/vaapi/gstvaapiutils.c:
4731           libs: utils: treat va_rt_format as bitwise flag
4732           The return value of vaGetConfigAttributes() of VAConfigAttribRTFormat
4733           is a bitwise flag with *all* the supported chroma types.
4734           Previously it was assumed that the return value was a single value,
4735           thus when returning the GST_VAAPI_CHROMA_TYPE_XXX the code was a
4736           simple case. But it is wrong.
4737           This patch changes the case block with a sequence of ifs testing the
4738           bitwise. For now we assume a "priority" list in the testing sequence.
4739
4740 2019-08-16 18:07:43 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4741
4742         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4743         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
4744         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
4745         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
4746         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
4747         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4748         * gst-libs/gst/vaapi/gstvaapiprofile.c:
4749         * gst-libs/gst/vaapi/gstvaapiprofile.h:
4750         * tests/test-display.c:
4751           libs: profile: add gst_vaapi_profile_get_va_name()
4752           gst_vaapi_profile_get_name() returns a proper name for
4753           GstCaps. Nonetheless, there are many profiles which don't have a name
4754           representation for that realm.
4755           gst_vaapi_profile_get_va_name() returns the name of the profile
4756           according to its VAProfile name.
4757           This new funtion is used in the encoder error message.
4758
4759 2019-08-05 19:47:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4760
4761         * gst-libs/gst/vaapi/Makefile.am:
4762         * gst-libs/gst/vaapi/gstvaapiprofilecaps.c:
4763         * gst-libs/gst/vaapi/gstvaapiprofilecaps.h:
4764         * gst-libs/gst/vaapi/meson.build:
4765         * gst/vaapi/gstvaapidecode.c:
4766           libs: profilecaps: move caps config into a new file
4767           Implement all the appending of frame size restrictions in caps, for
4768           encoders and decoders, in a new source file.
4769
4770 2019-08-05 19:45:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4771
4772         * gst-libs/gst/vaapi/gstvaapidecoder.c:
4773           libs: decoder: ref the caps as property
4774
4775 2019-08-02 16:56:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4776
4777         * gst-libs/gst/vaapi/gstvaapicontext.c:
4778         * gst-libs/gst/vaapi/gstvaapicontext.h:
4779           libs: context: add gst_vaapi_context_get_surface_attributes()
4780           This function copies the surface attributes from the context's object
4781           to the caller.
4782
4783 2019-08-02 12:46:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4784
4785         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
4786         * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
4787         * gst-libs/gst/vaapi/gstvaapiutils.c:
4788         * gst-libs/gst/vaapi/gstvaapiutils.h:
4789           libs: move memory types conversions to gstvaapiutils
4790           And add more supported memory types by current VA.
4791
4792 2019-08-01 19:48:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4793
4794         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4795         * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4796           libs: utils: remove unused function gst_vaapi_get_surface_formats()
4797
4798 2019-08-01 19:46:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4799
4800         * gst-libs/gst/vaapi/gstvaapicontext.c:
4801         * gst-libs/gst/vaapi/gstvaapicontext.h:
4802         * gst-libs/gst/vaapi/gstvaapifilter.c:
4803           libs: context, filter: use new surface attributes API
4804
4805 2019-08-01 19:13:39 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4806
4807         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4808         * gst-libs/gst/vaapi/gstvaapiutils_core.h:
4809           libs: utils: add gst_vaapi_config_surface_attributes_get()
4810           To extract the surface restrictions per config using a new structure:
4811           GstVaapiConfigSurfaceAttributes
4812
4813 2019-07-31 13:08:43 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4814
4815         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
4816           Split the surface attribute retrieval
4817
4818 2019-07-15 21:51:46 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4819
4820         * gst/vaapi/gstvaapipostproc.c:
4821           vaapipostproc: handle navigation downstream event
4822           When navigation events contains coordiantes those have to be mapped
4823           to the new size and/or orientation.
4824
4825 2019-07-15 21:23:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4826
4827         * tests/elements/test-vaapisink.c:
4828           test-vaapisink: also use vaapipostproc to change orientation
4829
4830 2019-07-15 21:27:20 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4831
4832         * gst-libs/gst/vaapi/gstvaapifilter.c:
4833         * gst-libs/gst/vaapi/gstvaapifilter.h:
4834         * gst/vaapi/gstvaapipostproc.c:
4835         * gst/vaapi/gstvaapipostproc.h:
4836         * gst/vaapi/gstvaapipostprocutil.c:
4837           vaapipostproc: handle image-orientation upstream event
4838           Now that vaapipostproc can possible handle video-direction, it
4839           should also handle the image-orientation event from upstream if
4840           video-direction property is set to auto.
4841
4842 2019-07-26 22:09:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4843
4844         * gst/vaapi/gstvaapipostproc.c:
4845           vaapipostproc: add missing locks when adding flags
4846
4847 2019-07-26 22:05:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4848
4849         * gst/vaapi/gstvaapipostproc.c:
4850           vaapipostproc: update filter before fixate caps
4851           It is requiered to know if postproc is capable to change the video
4852           direction before fixating the source caps.
4853           In order to do it, it'ss required to know if there's a functional VPP,
4854           but that's checked at create() vmethod, which occurs after caps
4855           fixating.
4856           This patch checks for a functional VPP at fixate caps and, if so,
4857           checks for the enabled filtes and later do the caps fixations.
4858
4859 2019-07-26 19:46:09 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4860
4861         * gst-libs/gst/vaapi/gstvaapifilter.c:
4862         * gst-libs/gst/vaapi/gstvaapivalue.c:
4863         * gst-libs/gst/vaapi/gstvaapivalue.h:
4864         * gst/vaapi/gstvaapipostproc.c:
4865           vaapipostproc: element warning if video direction is unsupported
4866           If the video direction is unsupported by the driver, an element
4867           warning is posted in the bus to notify the application.
4868           gst_vaapi_enum_type_get_nick() was added in the library thus it can
4869           be used elsewhere. It retrives the nick from an enum gtype.
4870
4871 2019-07-26 19:09:54 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4872
4873         * gst-libs/gst/vaapi/gstvaapifilter.c:
4874           libs: filter: check mirror and rotation caps only once
4875           This patch locks the display before querying the pipeline caps and
4876           stores the mirror and rotation capabilities, thus they are not queried
4877           every time the video direction is set.
4878
4879 2019-08-16 19:51:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4880
4881         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4882           libs: encoder: vp9: set VP9_0 profile as default
4883           Commit 0afc8131 introduced a regression and only NV12 format were
4884           admitted, failing in any other valid color format.
4885           This patch sets the profile to GST_VAAPI_PROFILE_VP9_0 by default.
4886
4887 2019-08-16 13:25:06 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4888
4889         * gst-libs/gst/vaapi/gstvaapifilter.c:
4890           libs: filter: fail if first color balance value is invalid
4891
4892 2019-08-06 19:24:08 +0800  Yan Wang <yan.wang@linux.intel.com>
4893
4894         * gst-libs/gst/vaapi/gstvaapifilter.c:
4895         * gst-libs/gst/vaapi/gstvaapiutils.c:
4896         * gst-libs/gst/vaapi/gstvaapiutils.h:
4897           libs: filter: set all color balance values
4898           When set multiple settings of color balance like hue, saturation,
4899           brightness and contrast for vaapipostproc, they should be set as
4900           parameters of color balance filter, at the same color balance
4901           filter calling.
4902           Otherwise, multiple color balance filter calling will cause
4903           previous setting get reset by the last calling with default value.
4904           Fixes #182.
4905           Signed-off-by: Yan Wang <yan.wang@linux.intel.com>
4906
4907 2019-08-16 11:02:08 +0800  Wangfei <fei.w.wang@intel.com>
4908
4909         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
4910           libs: h265dec: remove limitation of get iq matrix
4911           According hevc spec, scaling_list_data is not related
4912           to chroma_format_idc.
4913
4914 2019-05-30 23:52:51 +0800  He Junyan <junyan.he@hotmail.com>
4915
4916         * gst-libs/gst/vaapi/gstvaapivideopool.c:
4917           libs: videopool: fix undocumented behavior and counting
4918           gst_vaapi_video_pool_reserve_unlocked() hit an undocumented behavoir
4919           because it locks twice the same mutex.
4920           Also, n had different meanings in the current code: as an increase
4921           value and as a new total of allocated surfaces.
4922           This patche removes the undocumented behavoir (usually a deadlock) and
4923           fixes the meaning of n as the new total of allocated surfaces.
4924           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4925
4926 2019-07-17 11:56:45 +0800  He Junyan <junyan.he@hotmail.com>
4927
4928         * gst-libs/gst/vaapi/gstvaapiutils.c:
4929           libs: utils: Add missing entries for string_of_VAEntrypoint.
4930
4931 2019-07-18 22:01:01 +0800  He Junyan <junyan.he@hotmail.com>
4932
4933         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
4934           libs: encoder: Consider vp9 profiles based on input format.
4935           Only support GST_VAAPI_PROFILE_VP9_0 and GST_VAAPI_PROFILE_VP9_2 now.
4936           Fix: #184
4937
4938 2019-08-12 18:41:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4939
4940         * gst/vaapi/gstvaapivideomemory.c:
4941           vaapivideomemory: demote error message to info
4942           The main reason to demote the message's level is because it is not an
4943           error, it's a possible output of the trial and there's a code path
4944           that handles it.
4945           Secondly, it's very annoying when using gallium driver for radeon.
4946
4947 2019-07-18 13:32:46 +0800  Wangfei <fei.w.wang@intel.com>
4948
4949         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4950         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
4951         * gst-libs/gst/vaapi/gstvaapitypes.h:
4952         * gst-libs/gst/vaapi/gstvaapiutils.c:
4953         * gst-libs/gst/vaapi/gstvaapivalue.c:
4954           libs: encoder: h264: support ICQ/QVBR bitrate control mode
4955           ICQ is Intelligent Constant Quality. It will use the initial QP
4956           vaule of icq-quality-factor to adjust QP at MB level intelligently
4957           to improve subjective quality.
4958           QVBR is Quality defined VBR. It will use qvbr-quality-factor to
4959           adjust QP for each MB to get enough quality picture without waste
4960           of bits.
4961
4962 2019-08-05 10:51:24 +0800  Wangfei <fei.w.wang@intel.com>
4963
4964         * gst-libs/gst/vaapi/gstvaapitypes.h:
4965           libs: Let GST_VAAPI_RATECONTROL_MASK return unsigned int
4966           The value return from GST_VAAPI_RATECONTROL_MASK will be used by
4967           GST_VAAPI_POPCOUNT32 as its inpput. GST_VAAPI_POPCOUNT32 can only
4968           deal with unsigned int. Otherwise there may be an error of out of
4969           range of integer if we define few more rate-control mode.
4970
4971 2019-06-07 09:54:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4972
4973         * gst/vaapi/gstvaapidecodebin.c:
4974           vaapidecodebin: set queue's max size buffers to 1
4975           Otherwise the queue will swallow all the available decoder's surfaces
4976           reaching a dead-lock.
4977           This setting might impact the bin's peformance, but it's a trade-off.
4978
4979 2019-06-07 09:53:08 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4980
4981         * gst/vaapi/gstvaapidecodebin.c:
4982           vaapidecodebin: set properties default values
4983
4984 2019-05-31 13:12:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
4985
4986         * gst/vaapi/gstvaapidecode.c:
4987           vaapidecode: don't error if can't push buffers downtream
4988           When the code path goes to push buffers downstream when no surface
4989           available in decoder context, and it fails the code bails out with a
4990           fatal error.
4991           That behavior is wrong, since it shouldn't be fatal. The use case is
4992           when the video stream is disabled.
4993           This patch just ignores the errors in this situation and demotes the
4994           level of a log message.
4995
4996 2019-05-18 13:24:35 +0800  Wangfei <fei.w.wang@intel.com>
4997
4998         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
4999         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
5000         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5001         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
5002         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5003         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
5004           libs: encoder: h264,h265: add new property "max-qp"
5005           Add new property "max-qp" to allow set the maximum quantisation
5006           parameter values.
5007
5008 2019-05-23 10:18:52 -0400  Wangfei <fei.w.wang@intel.com>
5009
5010         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5011           libs: encoder: vp9: add low power mode encode
5012           By now, this feature only support by media-driver on Ice Lake
5013           platform, more information you can reference:
5014           https://github.com/intel/media-driver
5015
5016 2019-07-15 15:33:07 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5017
5018         * gst/vaapi/gstvaapipostprocutil.c:
5019           vaapipostproc: update PAR when rotating
5020           When rotating, swap pixel-aspect-ratio during
5021           negotiation.
5022           Fixes #181
5023
5024 2019-07-01 15:26:18 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5025
5026         * gst-libs/gst/vaapi/gstvaapifilter.c:
5027         * gst-libs/gst/vaapi/gstvaapiutils.c:
5028         * gst-libs/gst/vaapi/gstvaapiutils.h:
5029         * gst/vaapi/gstvaapipostprocutil.c:
5030           vaapipostproc: add rotation support
5031           Adds vpp rotation support to vaapipostproc.  Uses
5032           property video-direction. Default is identity (no
5033           rotation).
5034           Closes #104
5035
5036 2019-05-22 10:47:30 -0400  Wangfei <fei.w.wang@intel.com>
5037
5038         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5039           libs: encoder: h265: pass diff_cu_qp_delta_depth flag to driver
5040           Intel media-driver requires enablement of diff_cu_qp_delta_depth when
5041           cu_qp_delta_enabled_flag enabled.
5042           Fixes: #177
5043
5044 2019-07-01 17:02:33 +0800  Wangfei <fei.w.wang@intel.com>
5045
5046         * gst-libs/gst/vaapi/gstvaapiutils.c:
5047           libs: encoder: Add MB ratecontrol mode to get its string
5048
5049 2019-07-01 16:52:00 +0800  Wangfei <fei.w.wang@intel.com>
5050
5051         * gst-libs/gst/vaapi/gstvaapiutils.c:
5052           libs: encoder: refine guard of bitrate control mode
5053           Remove useless guard of all bitrate control mode's guard except MB
5054           which is define in VA-API version 0.39.1.
5055
5056 2019-06-29 00:08:40 +1000  Jan Schmidt <jan@centricular.com>
5057
5058         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
5059           h264: Update for parse_vui_params parameter removal.
5060           Update calls to the h264 parser lib for removal of the
5061           parse_vui_params parameter.
5062
5063 2019-06-24 16:26:56 -0400  Wang Zhanjun <zhanjunx.wang@intel.com>
5064
5065         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5066           libs: dec: vp9: do not use display size as decoded size
5067           If display size is smaller than current frame size, then the crop size
5068           will be set as display size, which either crashes the pipeline or the
5069           output MD5 does not match. Rather it should use the actual decoded size.
5070           This patch removes the cropping set. For rendering we can use aspect
5071           ratio to set display size.
5072           Fixes #175
5073           Signed-off-by: Wang Zhanjun <zhanjunx.wang@intel.com>
5074           Signed-off-by: Xu Guangxin <guangxin.xu@intel.com>
5075
5076 2019-06-28 16:32:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5077
5078         * README:
5079           Update README
5080
5081 2019-06-25 19:11:12 +0800  He Junyan <junyan.he@hotmail.com>
5082
5083         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5084         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5085         * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
5086           libs: dec: h265: Consider chroma_bit_depth to choose chrome type
5087           For some main-10 stream, sometime the luma is 8 bits while chrome is more
5088           than 8 bits, which cause using the wrong NV12 surface as the render target
5089           and decoding error.
5090           Fix #176
5091
5092 2019-06-25 10:31:20 +0800  Wangfei <fei.w.wang@intel.com>
5093
5094         * gst/vaapi/gstvaapidecode.c:
5095           vaapidecode: set initial decode format according surface chroma type
5096           For surfaces with different chroma type, it is prefer to initialize
5097           a format which chroma type should be same with surface chroma type
5098           instead of using fixed NV12.
5099
5100 2019-05-30 09:48:51 -0400  Wangfei <fei.w.wang@intel.com>
5101
5102         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5103         * gst-libs/gst/vaapi/gstvaapiimage.c:
5104         * gst-libs/gst/vaapi/video-format.c:
5105         * gst/vaapi/gstvaapidecode.c:
5106         * gst/vaapi/gstvaapipluginutil.h:
5107           libs: decoder: jpeg: add support 400/411/422/444 chroma type
5108           When create vaapi surface, it is better to use the chroma type get
5109           from jpeg file instead of using fixed 420 format. And the correct
5110           chroma type can be determined by horizontal_factor/vertical_factor
5111           flags that get from jpegparse.
5112
5113 2019-06-22 00:05:24 +0800  He Junyan <junyan.he@hotmail.com>
5114
5115         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
5116           libs: dec: h265: Fix profile_idc mapping.
5117           The old mapping values return by gst_vaapi_utils_h265_get_profile_idc is
5118           wrong, though GST_H265_PROFILE_IDC_MAIN and GST_H265_PROFILE_IDC_MAIN_10
5119           happened to be the correct value.
5120           We only support Annex A profile_idc (1-4).
5121
5122 2019-06-10 20:46:30 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5123
5124         * gst/vaapi/gstvaapipluginbase.c:
5125           plugins: remove last negotiated video info if caps are same
5126           If the allocation caps and negotiated caps are the same,
5127           then ensure any previously negotiated video info is also
5128           removed.  This can occur when multi-resolution video
5129           decoding returns to it's original resolution.
5130           Fixes #170
5131
5132 2019-06-10 20:39:28 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5133
5134         * gst/vaapi/gstvaapivideomemory.c:
5135           vaapivideomemory: allow negotiated info to be removed
5136           Allow NULL negotiated_vinfo to be passed into
5137           gst_allocator_set_vaapi_negotiated_video_info to allow
5138           any previously set info to be removed.
5139
5140 2019-06-06 17:24:30 +0300  Freyr <freyrnjordrson@gmail.com>
5141
5142         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
5143         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
5144           libs: encoder: vp8,vp9: reset frame_counter when input frame's format changes
5145           When input frame's formate changes, vp{8,9} encoders don't reset their frame
5146           counter, hence the newly created frame could become a P-frame, leading to some
5147           major troubles (sigabrt in libdrm in case of vp9). This patch adds some frame
5148           prediction-related reset logic to the `flush' methods of GstVaapiEncoderVP8 and
5149           GstVaapiEncoderVP9 implementations.
5150
5151 2019-05-31 12:30:03 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5152
5153         * gst-libs/gst/vaapi/gstvaapiencoder.c:
5154           libs: encoder: increase bitrate prop max value
5155           There are many profile levels that can support
5156           more than 102400 kbps.  Thus, increase the max
5157           allowed bitrate property value from 102400 kbps
5158           to 2048000 kbps (same as msdk encoder plugins).
5159
5160 2019-06-04 13:27:50 +0800  He Junyan <junyan.he@hotmail.com>
5161
5162         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
5163           libs: mpeg2 encoder: No packed header for SPS and PPS
5164           Dislable passing down packed PPS and PPS to driver if driver does
5165           not want it.
5166           Fix: #168
5167
5168 2019-05-31 23:10:33 +0200  Niels De Graef <niels.degraef@barco.com>
5169
5170         * configure.ac:
5171         * meson.build:
5172         * tests/output.c:
5173           meson: Bump minimal GLib version to 2.44
5174           This means we can use some newer features and get rid of some
5175           boilerplate code using the G_DECLARE_* macros.
5176           As discussed on IRC, 2.44 is old enough by now to start depending on it.
5177
5178 2019-05-31 13:08:39 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5179
5180         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5181           libs: dec: vp9: clear parser pointer after release
5182           Fix an use-after-release of the parser pointer in VP9 decoder.
5183
5184 2019-05-28 12:09:36 +0300  Freyr666 <sky_rider_93@mail.ru>
5185
5186         * gst/vaapi/gstvaapiencode.c:
5187           vaapiencode: Fixes deadlock in gst_vaapiencode_change_state function
5188           This fixes a deadlock in gst_vaapiencode_change_state, which was due to
5189           srcpad's chain function was locked waiting for available buffers. Since the
5190           coded buffers in codedbuf_queue become available after sinkpad consume the
5191           encoded frames, Paused -> Ready state change leads to deadlock. Coded buffers
5192           are never consumed and marked free, hence gst_vaapiencode_handle_frame waits for
5193           available buffers and holds the stream_lock of the srcpad.
5194
5195 2019-05-29 23:08:22 +0200  Mathieu Duponchelle <mathieu@centricular.com>
5196
5197         * gst-libs/gst/vaapi/gstvaapitypes.h:
5198         * gst/vaapi/gstvaapidecodebin.c:
5199         * gst/vaapi/gstvaapidecodedoc.c:
5200         * gst/vaapi/gstvaapiencode_h264.c:
5201         * gst/vaapi/gstvaapiencode_h264_fei.c:
5202         * gst/vaapi/gstvaapiencode_h265.c:
5203         * gst/vaapi/gstvaapiencode_jpeg.c:
5204         * gst/vaapi/gstvaapiencode_mpeg2.c:
5205         * gst/vaapi/gstvaapiencode_vp8.c:
5206         * gst/vaapi/gstvaapiencode_vp9.c:
5207         * gst/vaapi/gstvaapipostproc.c:
5208         * gst/vaapi/gstvaapisink.c:
5209           doc: remove xml from comments
5210
5211 2019-05-13 16:39:33 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5212
5213         * gst-libs/gst/vaapi/gstvaapifilter.c:
5214         * gst-libs/gst/vaapi/gstvaapifilter.h:
5215         * gst-libs/gst/vaapi/gstvaapiutils.c:
5216         * gst-libs/gst/vaapi/gstvaapiutils.h:
5217         * gst/vaapi/gstvaapipostproc.c:
5218         * gst/vaapi/gstvaapipostproc.h:
5219           vaapipostproc: add mirror support
5220           Adds vpp mirroring support to vaapipostproc.  Use
5221           property video-direction.  Valid values are identity,
5222           horiz or vert.  Default is identity (no mirror).
5223           Closes #89
5224           v2: Use GstVideoOrientationMethod enum
5225           v3: Don't warn for VA_MIRROR_NONE.
5226           Use GST_TYPE_VIDEO_ORIENTATION_METHOD type.
5227           v4: Query VAAPI caps when setting mirror value
5228           instead of during per-frame processing.
5229           v5: Return TRUE in warning cases when setting mirror value.
5230
5231 2019-05-29 01:35:17 +0200  Mathieu Duponchelle <mathieu@centricular.com>
5232
5233         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
5234         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5235         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5236         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5237         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
5238         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
5239         * gst/vaapi/gstvaapidecodebin.c:
5240         * gst/vaapi/gstvaapisink.c:
5241           doc: fix some incorrect gtk-doc links
5242
5243 2019-05-16 09:22:42 -0400  Thibault Saunier <tsaunier@igalia.com>
5244
5245         * docs/gst_plugins_cache.json:
5246           docs: Update plugin cache
5247           Fixes https://gitlab.freedesktop.org/gstreamer/gst-docs/issues/36
5248
5249 2019-05-16 16:46:43 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5250
5251         * gst-libs/gst/vaapi/gstvaapisurface.h:
5252           libs: surface: fix documentation format
5253
5254 2019-05-16 10:05:17 +0800  Wangfei <fei.w.wang@intel.com>
5255
5256         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5257           libs: enc: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
5258           When enable low delay B, the reference list 1 will be same with
5259           reference list 0, so need reset the num_ref_idx_l1_active_minus1
5260           to num_ref_idx_l0_active_minus1.
5261           Fixes: #160
5262
5263 2019-05-13 19:05:43 -0400  Thibault Saunier <tsaunier@igalia.com>
5264
5265         * docs/meson.build:
5266           meson: Fix call to wrong function
5267
5268 2018-10-22 11:48:29 +0200  Thibault Saunier <tsaunier@igalia.com>
5269
5270         * Makefile.am:
5271         * configure.ac:
5272         * docs/Makefile.am:
5273         * docs/gst_plugins_cache.json:
5274         * docs/index.md:
5275         * docs/meson.build:
5276         * docs/plugins/Makefile.am:
5277         * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
5278         * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
5279         * docs/plugins/gstreamer-vaapi-plugins.types:
5280         * docs/plugins/inspect/plugin-vaapi.xml:
5281         * docs/plugins/running.xml:
5282         * docs/sitemap.txt:
5283         * docs/version.entities.in:
5284         * gst/vaapi/meson.build:
5285         * meson.build:
5286         * meson_options.txt:
5287           docs: Port to hotdoc
5288
5289 2019-05-10 18:29:10 +0800  He Junyan <junyan.he@hotmail.com>
5290
5291         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5292         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5293           libs: encoder: not call ensure_num_slices inside g_assert
5294           g_assert will take no effect when glib's G_DISABLE_ASSERT macro is
5295           defined. The function inside the g_assert will take no effect and
5296           we will fail to set the correct slice number.
5297
5298 2019-04-29 09:52:39 +0800  Wangfei <fei.w.wang@intel.com>
5299
5300         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
5301           libs: h265: dec: Add extension flags setting.
5302           Use VAPictureParameterBufferHEVCExtension&
5303           VASliceParameterBufferHEVCExtension to pass extension setting from
5304           some extension profile clips which may include these information.
5305           The hevc extension setting only supported after libva release 2.2.0
5306           (API 1.2.0).
5307
5308 2019-05-01 12:56:55 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5309
5310         * gst-libs/gst/vaapi/gstvaapiencoder.c:
5311         * gst-libs/gst/vaapi/gstvaapiencoder.h:
5312         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5313           libs: encoder: add target-percentage property
5314           Allow users to set the target-percentage for
5315           variable rate controls.  The default value is
5316           70 (as hard-coded prior).
5317           v2: minimum allowed value changed from 0 to 1
5318           v3: target-percentage unchanged if CBR used
5319           Resolves #129
5320
5321 2019-05-09 00:09:21 +0800  He Junyan <junyan.he@hotmail.com>
5322
5323         * gst-libs/gst/vaapi/gstvaapiencoder.h:
5324           libs: encoder: Add a missing comment for DEFAULT_ROI_VALUE property.
5325
5326 2019-05-08 23:39:20 +0800  He Junyan <junyan.he@hotmail.com>
5327
5328         * gst-libs/gst/vaapi/gstvaapiencoder.c:
5329         * gst-libs/gst/vaapi/gstvaapiencoder.h:
5330         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5331         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
5332         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5333           libs: encoder: Enable trellis quantization method.
5334           The advanced trellis algorithm is supported in VA driver. We add
5335           its support as a property named "trellis" of encoder.
5336           It only works for H264 now, should be more in future.
5337
5338 2019-05-07 11:03:51 +0800  Wangfei <fei.w.wang@intel.com>
5339
5340         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5341           libs: decoder: vp9: support 422/444 8bit/10bit chroma type.
5342           According to the vp9 sepc, profile 1/3 support 422/440/444 chroma
5343           type, so we need to add subsampling_x&subsampling_y to fix it.
5344           Here is the relationship between chroma type and profile and
5345           subsampling_x&subsampling_y according to vp9 spec:
5346           ------------------------------------------
5347           Profile | Bit depth | Chroma subsampling |
5348           ------------------------------------------
5349           0      | 8         | 420                |
5350           ------------------------------------------
5351           1      | 8         | 422,440,444        |
5352           ------------------------------------------
5353           2      | 10, 12    | 420                |
5354           ------------------------------------------
5355           3      | 10, 12    | 422,440,444        |
5356           ------------------------------------------
5357           -----------------------------------------------
5358           Subsampling_x | Subsampling_y | Chroma format |
5359           -----------------------------------------------
5360           0            | 0             | 444           |
5361           -----------------------------------------------
5362           0            | 1             | 440           |
5363           -----------------------------------------------
5364           1            | 0             | 422           |
5365           -----------------------------------------------
5366           1            | 1             | 420           |
5367           -----------------------------------------------
5368
5369 2019-04-16 18:33:54 +0800  He Junyan <junyan.he@hotmail.com>
5370
5371         * gst-libs/gst/vaapi/gstvaapiimage.c:
5372         * gst-libs/gst/vaapi/video-format.c:
5373           libs: Add packed 24 RGB format support.
5374           Can not find a suitable chrome_type for this GST_VIDEO_FORMAT_RGB
5375           packed 24 format. Just use GST_VAAPI_CHROMA_TYPE_RGB32 as its chrome
5376           type. This kind of surface will just be created by new API with fourcc
5377           and no old style chrome based creation is available.
5378           fixes: #151
5379
5380 2019-03-15 14:29:41 +0800  Wangfei <fei.w.wang@intel.com>
5381
5382         * gst/vaapi/gstvaapiencode.c:
5383         * gst/vaapi/gstvaapiencode_h264.c:
5384         * gst/vaapi/gstvaapiencode_h264_fei.c:
5385         * gst/vaapi/gstvaapiencode_h265.c:
5386         * gst/vaapi/gstvaapiencode_jpeg.c:
5387         * gst/vaapi/gstvaapiencode_mpeg2.c:
5388         * gst/vaapi/gstvaapiencode_vp8.c:
5389         * gst/vaapi/gstvaapiencode_vp9.c:
5390           vaapiencode: handle DMABuf caps feature in sink pad
5391           Add DMABuff caps features in all encoders' sink pad.
5392
5393 2019-05-03 10:31:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5394
5395         * gst-libs/gst/vaapi/gstvaapiencoder.c:
5396           libs: encoder: continue if roi meta is NULL
5397           Coverity scan bug:
5398           If the function actually returns a null value, a null pointer
5399           dereference will occur.
5400           In gst_vaapi_encoder_ensure_param_roi_regions(): Return value of
5401           function which returns null is dereferenced without checking
5402
5403 2019-04-15 19:58:14 +0800  He Junyan <junyan.he@hotmail.com>
5404
5405         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
5406           lib: decoder: vp9: Set chroma_type by VP9 bit_depth
5407           The decoder's surface chroma type should depend on the bit depth
5408           of VP9's parser. For 10bits VP9 stream, we need to use P10LE kind
5409           10 bits surface as the decoder result.
5410           Fixes #155
5411
5412 2019-05-02 16:00:57 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5413
5414         * gst/vaapi/gstvaapipostprocutil.c:
5415           vaapipostproc: don't do any color conversion when GL_TEXTURE_UPLOAD
5416           https://bugzilla.gnome.org/show_bug.cgi?id=748184 has resurrected
5417           with commit 3e992d8a
5418           Since gst_vaapi_find_preferred_caps_feature() returns a color format
5419           from caps negotiation, different from the default one (NV12), the
5420           postproc enables the color transformation. But when GL_TEXTURE_UPLOAD
5421           feature is negotiated, no color transformation shall be done.
5422           Nonetheless, with commit 3e992d8a the requested format changes
5423           firstly, because there's no video sink yet, so ANY caps are
5424           negotiated; but later, when there's a video sink and a caps
5425           renegotiation, the GL_TEXTURE_UPLOAD is negotiated though the color
5426           format conversion still ongoing. It is required to reset that
5427           conversion.
5428           This patch force default color format when GL_TEXTURE_UPLOAD is
5429           selected as preferred, thus avoiding the color conversion.
5430           Fixes: #157
5431
5432 2019-04-19 15:49:37 -0700  Julien Isorce <jisorce@oblong.com>
5433
5434         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
5435           libs: surface: fix double free when dmabuf export fails
5436           Happens if vaAcquireBufferHandle fails.
5437
5438 2019-04-29 20:10:39 +0800  He Junyan <junyan.he@hotmail.com>
5439
5440         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5441           libs: h264encoder: fix a typo of GstVaapiEncoderH264PredictionType
5442
5443 2019-04-19 10:43:35 +0100  Tim-Philipp Müller <tim@centricular.com>
5444
5445         * RELEASE:
5446         * configure.ac:
5447         * docs/plugins/inspect/plugin-vaapi.xml:
5448         * meson.build:
5449           Back to development
5450
5451 === release 1.16.0 ===
5452
5453 2019-04-19 00:38:12 +0100  Tim-Philipp Müller <tim@centricular.com>
5454
5455         * ChangeLog:
5456         * NEWS:
5457         * RELEASE:
5458         * configure.ac:
5459         * gstreamer-vaapi.doap:
5460         * meson.build:
5461           Release 1.16.0
5462
5463 2019-04-19 00:38:12 +0100  Tim-Philipp Müller <tim@centricular.com>
5464
5465         * docs/plugins/inspect/plugin-vaapi.xml:
5466           Update docs
5467
5468 2019-04-15 19:34:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5469
5470         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5471         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5472         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5473           libs: encoder: h264,h265: guard VA version for max_qp property
5474           This patch fixes a regression from commit 5b1fe9c6.
5475           max_qp, in rate control configuration, appeared in libva release
5476           2.1 (API 1.1), thus it is required to guard the VA API version.
5477           Fixes: #150
5478
5479 2019-04-08 18:29:35 +0800  He Junyan <junyan.he@hotmail.com>
5480
5481         * gst-libs/gst/vaapi/gstvaapiimage.c:
5482         * gst-libs/gst/vaapi/video-format.c:
5483           libs: Add RGB565 image format support.
5484
5485 2019-04-10 13:59:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5486
5487         * configure.ac:
5488           build: configure: delay USE_GTK conditional until check libva-x11
5489           libva-x11 is used for X11 applications, so it is required to build
5490           any GTK application.
5491           Later, when Wayland test is added, we should change this.
5492
5493 2019-04-10 13:25:10 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5494
5495         * configure.ac:
5496           build: configure: disable GLX if libva-x11 is not found
5497
5498 2019-04-15 13:55:26 +0200  He Junyan <junyan.he@hotmail.com>
5499
5500         * gst-libs/gst/vaapi/gstvaapiutils.c:
5501           libs: utils: avoid macro evaluation when stringify
5502           string_of_va_chroma_format() gets a wrong string format description.
5503           For example, the YUV420_10BPP get a string of 0x00000100 as output.
5504           It's because VA_RT_FORMAT_xxx values are macro definitions. And
5505           STRINGIFY(VA_RT_FORMAT_xxx) will expand to its real value
5506           0x00000XXX.
5507           To avoid the macro evaluation, it is changed to show only the color
5508           format without VA_RT_FORMAT_ prefix.
5509
5510 2019-04-15 13:54:15 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5511
5512         * gst-libs/gst/vaapi/gstvaapiutils.c:
5513           libs: utils: use glib's macros
5514           Don't reinvent the wheel.
5515
5516 2019-04-11 15:05:02 +0800  Wangfei <fei.w.wang@intel.com>
5517
5518         * gst/vaapi/gstvaapipluginutil.c:
5519           plugins: find the preferred format from right caps.
5520           When the downstream has any caps, then raw video feature will
5521           be used. At this situation, the preferred format should be chose
5522           from caps which contains "vide/x-raw" feature instead of from
5523           the fist allowed caps.
5524           Fixes #142
5525
5526 2019-04-10 11:43:33 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
5527
5528         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5529           libs: encoder: h265: fill tier in va seq param buf
5530           Now that tier is calculated in commit 58e74f9440fe (!68),
5531           ensure we fill in the general_tier_flag in the
5532           VAEncSequenceParameterBufferHEVC.
5533
5534 === release 1.15.90 ===
5535
5536 2019-04-11 00:40:03 +0100  Tim-Philipp Müller <tim@centricular.com>
5537
5538         * ChangeLog:
5539         * NEWS:
5540         * RELEASE:
5541         * configure.ac:
5542         * gstreamer-vaapi.doap:
5543         * meson.build:
5544           Release 1.15.90
5545
5546 2019-04-11 00:40:03 +0100  Tim-Philipp Müller <tim@centricular.com>
5547
5548         * docs/plugins/inspect/plugin-vaapi.xml:
5549           Update docs
5550
5551 2019-04-09 20:42:04 +0800  He Junyan <junyan.he@hotmail.com>
5552
5553         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5554           libs: encoder: h265: Recognize the correct level and tier.
5555           The current manner can not recognize the correct level and always
5556           set the tier to main. Need to add frame rate check to recognize
5557           levels such as 4.1, 6.2, etc. We also add a logic to check main
5558           and high tier based on bitrate.
5559           Fixes: #145
5560
5561 2019-04-03 14:12:23 +0800  He Junyan <junyan.he@hotmail.com>
5562
5563         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5564         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5565         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5566           libs: encoder: h264,h265: Set max_qp if min_qp is non-zero.
5567           media-driver currently fails to set a correct value of max_qp when
5568           min_qp is different to zero, in CBR and VBR mode, generating full
5569           quality frames, thus unexpected huge output.
5570           This patch sets max_qp to an arbitrary value to avoid this output
5571           temporary.
5572           Fixes: #144
5573
5574 2019-04-09 12:42:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5575
5576         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5577         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5578         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5579           libs: encoder: h264,h265: initial and minimal QP can be zero
5580           Currently the minimal value for either min_qp and init_qp are 1,
5581           but VA documentation specifiy that zero is also valid and means
5582           to ignore the quantiser.
5583           The default value is not changed though to avoid behaivor changes
5584           to users.
5585
5586 2019-04-09 09:20:23 +0800  Haihao Xiang <haihao.xiang@intel.com>
5587
5588         * tests/elements/meson.build:
5589           meson: build test-vaapicontext when using X11
5590           x11_dep and libva_x11_dep are optional and meson ignores these
5591           dependencies even if they are added into the dependency list.
5592           This fixes the error below when libva-x11 is not avaiblabe:
5593           cc -Itests/elements/tests@elements@@test-vaapicontext@exe
5594           -Itests/elements -I../../gstreamer-vaapi/tests/elements -I.
5595           -I../../gstreamer-vaapi/ -Igst-libs -I../../gstreamer-vaapi/gst-libs
5596           -I/usr/include/gstreamer-1.0 -I/usr/include/glib-2.0
5597           -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orc-0.4
5598           -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0
5599           -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include
5600           -I/usr/include/gtk-3.0 -I/usr/include/gio-unix-2.0/
5601           -I/usr/include/libdrm -I/usr/include/harfbuzz -I/usr/include/pango-1.0
5602           -I/usr/include/fribidi -I/usr/include/atk-1.0 -I/usr/include/cairo
5603           -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2
5604           -I/usr/include/libpng16 -I/usr/include/gdk-pixbuf-2.0
5605           -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall
5606           -Winvalid-pch -O2 -g -fvisibility=hidden -fno-strict-aliasing -pthread
5607           -DHAVE_CONFIG_H  -MD -MQ
5608           'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5609           -MF
5610           'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o.d'
5611           -o
5612           'tests/elements/tests@elements@@test-vaapicontext@exe/test-vaapicontext.c.o'
5613           -c ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c
5614           ../../gstreamer-vaapi/tests/elements/test-vaapicontext.c:29:10: fatal
5615           error: va/va_x11.h: No such file or directory
5616           #include <va/va_x11.h>
5617
5618 2019-04-01 12:56:28 +0800  He Junyan <junyan.he@hotmail.com>
5619
5620         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
5621         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
5622         * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
5623           libs: encoder: h264_fei: Use gst_param_spec_array for view-ids
5624           GValueArray is deprecated. Use GstValueArray instead.
5625
5626 2019-03-30 18:29:31 +0100  Danilo Spinella <danyspin97@protonmail.com>
5627
5628         * gst/vaapi/gstvaapipluginutil.c:
5629           vaapipluginutil: Fix #endif for USE_X11
5630
5631 2019-03-29 18:29:51 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5632
5633         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5634           libs: encoder: h264: simplify the view-ids setting
5635
5636 2019-03-26 14:54:47 +0800  He Junyan <junyan.he@hotmail.com>
5637
5638         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5639           libs: encoder: h264: Use gst_param_spec_array for view-ids
5640           GValueArray is deprecated. Use GstValueArray instead.
5641           gst_param_spec_array can be deserialized from command line using:
5642           vaapih264enc view-ids="<(uint)40,(uint)100>" num-views=2
5643           While the g_param_spec_value_array() can not, and always get
5644           error: "gst_value_deserialize_g_value_array: unimplemented"
5645           Also fixed an out-of-range bug.
5646
5647 2019-03-29 13:33:41 +0800  He Junyan <junyan.he@hotmail.com>
5648
5649         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
5650           libs: Change the parameter setting order when encode picture.
5651           The order in gst_vaapi_enc_picture_encode when encoding one
5652           picture is not very correct. The misc parameters are set before
5653           the picture parameters. Some of the misc parameters such as
5654           ROI may change the current picture parameters. But the later
5655           setting of picture parameter will re-init all picture related
5656           parameters and clear the previous setting. The right order
5657           should be picture parameter first and then misc parameters.
5658           Signed-off-by: He Junyan <junyan.he@hotmail.com>
5659
5660 2019-03-26 14:20:34 +0800  Wangfei <fei.w.wang@intel.com>
5661
5662         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
5663           libs: decoder: jpeg: support dynamic resolution change decode.
5664           Add size_changed flag to watch out resolution. if change, reset
5665           jpeg decoder's context.
5666
5667 2019-03-23 15:34:03 +0800  Wangfei <fei.w.wang@intel.com>
5668
5669         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5670           libs: encoder: h265: add low power mode encode.
5671           By now, this feature only support by media-driver on Ice Lake
5672           platform, more information you can reference:
5673           https://github.com/intel/media-driver
5674
5675 2019-03-15 18:40:21 +0800  He Junyan <junyan.he@hotmail.com>
5676
5677         * gst/vaapi/gstvaapiencode.c:
5678           vaapiencode: gobject's prop_id differ from vaapi encoder
5679           The vaapi internal encoder's property id are negative, thus they are
5680           different from GObject's property ids.
5681           gst_vaapi_encoder_set_property() should map to the internal encoder
5682           property id, assigned in gst_vaapiencode_default_set_property().
5683
5684 2019-03-21 16:56:34 +0000  Tim-Philipp Müller <tim@centricular.com>
5685
5686         * meson.build:
5687           meson: disable compiler warnings for unused vars and args if gst debug system is disabled
5688
5689 2019-03-21 13:31:57 +0000  Tim-Philipp Müller <tim@centricular.com>
5690
5691         * meson.build:
5692           meson: use new 'python' module instead of deprecated 'python3' one
5693
5694 2019-03-11 18:38:36 -0300  Thibault Saunier <tsaunier@igalia.com>
5695
5696         * common:
5697           Update common submodule back to 59cb678164719ff59dcf6c8b93df4617a1075d11
5698           It was wrongly changed in 3d9555a86d45565870c684fe00ec8bbb0fed7205
5699
5700 2019-03-04 09:16:17 +0000  Tim-Philipp Müller <tim@centricular.com>
5701
5702         * NEWS:
5703         * RELEASE:
5704         * configure.ac:
5705         * docs/plugins/inspect/plugin-vaapi.xml:
5706         * meson.build:
5707           Back to development
5708
5709 2019-03-01 12:33:26 +0800  He Junyan <junyan.he@hotmail.com>
5710
5711         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
5712           libs: Fix a typo in comments.
5713           Fix a typo in function description of
5714           gst_vaapi_surface_pool_new_with_chroma_type.
5715           Signed-off-by: He Junyan <junyan.he@hotmail.com>
5716
5717 2019-02-27 13:02:10 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5718
5719         * gst/vaapi/gstvaapipluginutil.c:
5720           plugin: if any caps in downstream, negotiate raw video
5721           When downstream has any caps, vaapi should not shovel vaapi featured
5722           buffers, but rather plain raw video, assuming always the worst case
5723           scenario (downstream cannot handle featured video memory but raw
5724           system memory buffers).
5725           This patch query the peer caps without any filter, to know if
5726           donwstream just ask for any caps, if so jump to the color space
5727           checking, otherwise do the caps intersection and continue with the
5728           feature selection algorithm.
5729           Fixes: #139
5730
5731 === release 1.15.2 ===
5732
5733 2019-02-26 12:01:53 +0000  Tim-Philipp Müller <tim@centricular.com>
5734
5735         * ChangeLog:
5736         * NEWS:
5737         * RELEASE:
5738         * configure.ac:
5739         * gstreamer-vaapi.doap:
5740         * meson.build:
5741           Release 1.15.2
5742
5743 2019-02-26 12:01:53 +0000  Tim-Philipp Müller <tim@centricular.com>
5744
5745         * docs/plugins/inspect/plugin-vaapi.xml:
5746           Update docs
5747
5748 2019-02-05 16:59:40 +0800  He Junyan <junyan.he@hotmail.com>
5749
5750         * gst/vaapi/gstvaapivideomemory.c:
5751           vaapivideomemory: Prefer same format for surface and image
5752           We prefer to use the same format between image and surface for gst
5753           vaapi allocator. The old way may choose different formats between
5754           image and surface. For example, the RGBA image may have a NV12 surface.
5755           So we need to do format conversion when we put/get image to surface.
5756           Some drivers such as iHD can not support such conversion and always
5757           cause a data flow error. There may also have some performance cost
5758           for format conversion when put/get images.
5759           So we prefer to use the same format for image and surface in the
5760           allocator. If the surface can not support that format, we then
5761           fallback to find a best one as the surface format.
5762           Co-authored-by: Víctor Jáquez <vjaquez@igalia.com>
5763
5764 2019-02-15 15:19:51 +0800  He Junyan <junyan.he@hotmail.com>
5765
5766         * gst-libs/gst/vaapi/video-format.c:
5767           libs: Delete the duplicated ARGB video format.
5768           Two ARGB formats with the same format information.
5769           Should be verbose and delete one.
5770           Signed-off-by: He Junyan <junyan.he@hotmail.com>
5771
5772 2019-02-13 10:39:59 -0500  Adam Jackson <ajax@redhat.com>
5773
5774         * common:
5775         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
5776           glx: Stop specifying GLX_DEPTH_SIZE
5777           This code is just confused. It's asking for at least as many bits of
5778           (z-axis) depth as the root window has bits of (color) depth. For rgb565
5779           or rgb888 this is harmless, but at 10 bits per channel this demands a
5780           30-bit or deeper Z buffer. While some hardware could in principle do a
5781           32-bit Z buffer, Mesa does not expose such fbconfigs (at least on Intel
5782           and AMD).
5783           We're not actually using the Z buffer, so just stop asking for one.
5784
5785 2019-01-14 11:30:48 +0100  Niels De Graef <niels.degraef@barco.com>
5786
5787         * configure.ac:
5788         * gst-libs/gst/vaapi/Makefile.am:
5789         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5790         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5791         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5792         * gst-libs/gst/vaapi/meson.build:
5793         * gst/vaapi/gstvaapisink.c:
5794         * meson.build:
5795           libs: wayland: add support for XDG-shell protocol
5796           [wl_shell] is officially [deprecated], so provide support for the
5797           XDG-shell protocol should be provided by all desktop-like compositors.
5798           (In case they don't, we can of course fall back to wl_shell).
5799           Note that the XML file is directly provided by the `wayland-protocols`
5800           dependency and generates the protocol marshalling code.
5801           [wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
5802           [deprecated]: https://github.com/wayland-project/wayland/commit/698dde195837f3d0844b2725ba4ea8ce9ee7518c
5803
5804 2019-02-16 19:09:50 +0100  Niels De Graef <nielsdegraef@gmail.com>
5805
5806         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5807           libs: window: wayland: Prefix wl_shell_surface field with `wl_`
5808           It will help us to distinguish from other Wayland shell surface
5809           (such as XDG-shell) later on.
5810
5811 2019-01-14 09:58:19 +0100  Niels De Graef <nielsdegraef@gmail.com>
5812
5813         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
5814         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
5815         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5816           libs: wayland: Prefix wl_shell field with `wl_`
5817           It will help us to distinguish from other Wayland shells (such as
5818           XDG-shell) later on.
5819
5820 2019-02-08 09:21:28 +0300  Denis Nagorny <denis.nagorny@intel.com>
5821
5822         * gst-libs/gst/vaapi/gstvaapidisplay.c:
5823           libs: display: lock ensure_profile()
5824           Thread safety patch for ensure_profile() function
5825           Fixes #133
5826
5827 2019-02-08 16:35:39 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5828
5829         * meson.build:
5830           meson: bump the minimum wayland version requirement to 1.11.0
5831           This was missed on commit 77bb3424
5832
5833 2019-01-24 21:08:07 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5834
5835         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5836         * gst/vaapi/gstvaapisink.c:
5837           vaapisink: x11: trap WM_DELETE_WINDOW message
5838           Register the WM_DELETE_WINDOW message from window manager and
5839           trap it to stop the pipeline cleanly.
5840           Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/130
5841
5842 2019-01-21 19:22:58 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5843
5844         * gst-libs/gst/vaapi/gstvaapiwindow.c:
5845           libs: window: remove native-id property
5846           native-id property is problematic since the variable that stores it is
5847           gsize, which is platform specific, and in some is bigger than unsigned
5848           long, and there are not way to handle gsize properties.
5849           Also, GST_VAAPI_ID_INVALID is defined in gsize terms, and we would
5850           like to keep using it for this scope.
5851           This patch removes the native-id property and set it manually in
5852           gst_vaapi_window_new_internal().
5853
5854 2019-01-18 10:33:37 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5855
5856         * gst-libs/gst/vaapi/gstvaapiwindow.c:
5857           libs: window: use G_GSIZE_MODIFIER for window id
5858           gsize type is not equal in all platforms, then the 'l' print modifier
5859           shall not be used always.
5860           This issue was found in Debian builds.
5861
5862 2019-01-17 10:27:13 +0800  Wangfei <fei.w.wang@intel.com>
5863
5864         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5865         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5866           encoder: h264/h265: set SPS cbr_flag with correct value.
5867           The flag only set as 1 when the rate-control mode is CBR.
5868
5869 === release 1.15.1 ===
5870
5871 2019-01-17 02:36:52 +0000  Tim-Philipp Müller <tim@centricular.com>
5872
5873         * ChangeLog:
5874         * NEWS:
5875         * RELEASE:
5876         * configure.ac:
5877         * gstreamer-vaapi.doap:
5878         * meson.build:
5879           Release 1.15.1
5880
5881 2019-01-17 02:36:52 +0000  Tim-Philipp Müller <tim@centricular.com>
5882
5883         * docs/plugins/inspect/plugin-vaapi.xml:
5884           Update docs
5885
5886 2019-01-14 19:35:34 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5887
5888         * gst-libs/gst/vaapi/gstvaapiencoder.c:
5889           libs: encoder: refactor to avoid code duplication
5890           gst_vaapi_encoder_put_frame() and gst_vaapi_encoder_flush() duplicates
5891           the same code segment where the coded buffer is created, the picture
5892           encoded on it and pushed to the async queue.
5893           The function gst_vaapi_encoder_encode_and_queue() refactor this.
5894
5895 2019-01-14 18:21:30 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5896
5897         * gst-libs/gst/vaapi/gstvaapiencoder.c:
5898         * gst-libs/gst/vaapi/gstvaapiencoder.h:
5899         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5900         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5901         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
5902           libs: encoder: h264/h265: flush pending ordered pictures
5903           In order to flush the pending pictures, a new internal encoder vmethod
5904           is used: get_pending_reordered()
5905           This method follows an iterator pattern which will return the next
5906           picture to encode and push.
5907           The base encoder will call this function in a loop when flush() is called.
5908           For now, only H.264 and H.265 encoders implement this flushing mechanism.
5909
5910 2018-12-06 10:18:53 +0800  Wangfei <fei.w.wang@intel.com>
5911
5912         * gst-libs/gst/vaapi/gstvaapiencoder.c:
5913         * gst-libs/gst/vaapi/gstvaapiencoder.h:
5914         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
5915         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
5916           libs: encoder: h264/h265: fix encode lose frame issue.
5917           Instead of dropping all remain frames in reorder_frame_list during
5918           flush, keep encoding.
5919           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/97
5920
5921 2019-01-15 14:33:11 +0800  Wangfei <fei.w.wang@intel.com>
5922
5923         * gst/vaapi/gstvaapipostproc.c:
5924           vaapipostproc: before set surface proxy, check if it already been created and exist.
5925           Fix the deinterlace black frame when playing with glimagesink:
5926           gst-launch-1.0 filesrc location=test.264 ! h264parse ! vaapih264dec \
5927           ! vaapipostproc deinterlace-mode=1 deinterlace-method=1 ! glimagesink
5928
5929 2019-01-11 13:48:29 +0800  Wangfei <fei.w.wang@intel.com>
5930
5931         * gst-libs/gst/vaapi/gstvaapiutils.c:
5932           vaapipostproc: clean up USE_VA_VPP macro since it already removed from configure file.
5933
5934 2018-12-26 14:36:23 +0800  Haihao Xiang <haihao.xiang@intel.com>
5935
5936         * gst-libs/gst/vaapi/meson.build:
5937         * gst/vaapi/meson.build:
5938         * meson.build:
5939         * tests/meson.build:
5940           meson: build h264 fei encoder if possible
5941
5942 2018-12-26 14:04:08 +0800  Haihao Xiang <haihao.xiang@intel.com>
5943
5944         * configure.ac:
5945           configure: bump the minimum wayland version requirement to 1.11.0
5946
5947 2018-12-24 12:58:53 +0800  Haihao Xiang <haihao.xiang@intel.com>
5948
5949         * configure.ac:
5950         * gst-libs/gst/vaapi/Makefile.am:
5951         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
5952         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
5953         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
5954         * gst-libs/gst/vaapi/gstvaapicompat.h:
5955         * gst-libs/gst/vaapi/gstvaapicontext.c:
5956         * gst-libs/gst/vaapi/gstvaapidisplay.c:
5957         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
5958         * gst-libs/gst/vaapi/gstvaapifilter.c:
5959         * gst-libs/gst/vaapi/gstvaapiprofile.c:
5960         * gst-libs/gst/vaapi/gstvaapisurface.c:
5961         * gst-libs/gst/vaapi/gstvaapiutils.c:
5962         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
5963         * gst-libs/gst/vaapi/meson.build:
5964         * gst/vaapi/Makefile.am:
5965         * gst/vaapi/gstvaapi.c:
5966         * gst/vaapi/gstvaapidecode.c:
5967         * gst/vaapi/gstvaapidecodebin.c:
5968         * gst/vaapi/gstvaapipluginbase.c:
5969         * gst/vaapi/meson.build:
5970         * meson.build:
5971         * tests/decoder.c:
5972         * tests/simple-decoder.c:
5973           vaapi: bump the minimum vaapi version requirement to 0.39.0
5974           And reduce unnecessary API version and structures check as well.
5975           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/108
5976
5977 2018-12-22 18:07:35 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5978
5979         * gst-libs/gst/vaapi/gstvaapiwindow.c:
5980         * gst-libs/gst/vaapi/gstvaapiwindow.h:
5981         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5982         * tests/test-decode.c:
5983         * tests/test-filter.c:
5984         * tests/test-subpicture.c:
5985         * tests/test-textures.c:
5986         * tests/test-windows.c:
5987           libs: window: remove custom ref() and unref()
5988           Use gst_object_ref() and gst_object_unref() instead.
5989
5990 2018-12-22 13:25:09 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
5991
5992         * gst-libs/gst/vaapi/gstvaapiwindow.c:
5993         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
5994         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
5995         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
5996         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
5997         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
5998           libs: window: use its own debug category
5999
6000 2018-12-22 18:02:38 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6001
6002         * gst-libs/gst/vaapi/gstvaapiwindow.c:
6003         * gst-libs/gst/vaapi/gstvaapiwindow.h:
6004         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
6005         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
6006         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
6007         * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
6008         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
6009         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
6010         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6011         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6012         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
6013         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6014         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
6015         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
6016           libs: window: refactor as gobject
6017           This is another step in the gobjectification of the internal library
6018           of gstreamer-vaapi. Now it is the turn of GstVaapiWindow and its
6019           derivates.
6020           The idea is to minimize the changeset keeping the same design as
6021           much as possible.
6022           GstVaapiWindow is defined as an abstract class with two properties:
6023           the GstVaapiDisplay and the native ID. Thus, many of the
6024           GstVaapiObject macros were copied as GstVaapiWindow macros.
6025           The function gst_vaapi_window_new_internal() is kept as a decorator
6026           of for calling gst_vaapi_window_create() and the possibility of
6027           failure.
6028           The descendant classes, such as glx, still use the private
6029           structures, but through the gobject mechanism.
6030
6031 2018-12-03 22:05:29 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6032
6033         * gst-libs/gst/vaapi/gstvaapifilter.c:
6034           libs: filter: use its own debug category
6035
6036 2018-12-24 14:08:42 +0800  He Junyan <junyan.he@hotmail.com>
6037
6038         * gst/vaapi/gstvaapidecode.c:
6039         * gst/vaapi/gstvaapipluginbase.c:
6040         * gst/vaapi/gstvaapipluginbase.h:
6041         * gst/vaapi/gstvaapipostproc.c:
6042         * gst/vaapi/gstvaapisink.c:
6043           plugins: Add more check for allowed raw caps.
6044           The gst_vaapi_plugin_base_get_allowed_raw_caps is used for both sink
6045           pad and src pad, which cause some bugs. For sink pad, we need to verify
6046           vaPutImage() while for the src pad we need to verify vaGetImage().
6047           For vaapidecoderXXX kind of plugins, the case is more complex. We need
6048           to verify whether the decoded result(in some surface, NV12 format most
6049           of the time) can be vaGetImage to some raw image format. Add more check
6050           to fix all these problems.
6051           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/123
6052           Signed-off-by: He Junyan <junyan.he@hotmail.com>
6053
6054 2018-12-18 10:44:21 +0800  Wangfei <fei.w.wang@intel.com>
6055
6056         * gst/vaapi/gstvaapipostproc.c:
6057           vaapipostproc: fix csc fail when only change width or height.
6058
6059 2018-12-15 09:47:15 +0900  Wonchul Lee <chul0812@gmail.com>
6060
6061         * tests/elements/meson.build:
6062           meson: Add gtk guard
6063
6064 2018-12-15 14:48:03 +0800  Wangfei <fei.w.wang@intel.com>
6065
6066         * gst/vaapi/gstvaapiencode_h264.c:
6067           libs: enc: h264: set max profile idc with correct profile.
6068           Use the highest rank of available profile as the max profile to
6069           set max idc value.
6070           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/124
6071
6072 2018-12-03 13:56:52 +0100  Niels De Graef <nielsdegraef@gmail.com>
6073
6074         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6075         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6076         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6077           Use G_DEFINE_TYPE_WITH_PRIVATE if applicable
6078           This gets rid of the strange `do_init` macro and makes the intent a bit
6079           more clear.
6080
6081 2018-12-05 17:24:53 -0300  Thibault Saunier <tsaunier@igalia.com>
6082
6083         * common:
6084           Automatic update of common submodule
6085           From ed78bee to 59cb678
6086
6087 2018-11-27 09:47:44 -0500  Wangfei <fei.w.wang@intel.com>
6088
6089         * gst-libs/gst/vaapi/gstvaapiimage.c:
6090         * gst-libs/gst/vaapi/gstvaapiprofile.c:
6091         * gst-libs/gst/vaapi/gstvaapiprofile.h:
6092         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6093         * gst-libs/gst/vaapi/video-format.c:
6094         * gst/vaapi/gstvaapidecode.c:
6095         * gst/vaapi/gstvaapipluginutil.h:
6096           libs: dec: h265: support decode for main-444 10bit streams.
6097           Add 444 10bit yuv format Y410, which can be used to decode
6098           main-444 10bit streams. Currently, this feature is only
6099           supported by media-driver in Icelake.
6100
6101 2018-11-28 05:56:44 +0200  Jordan Petridis <jordan@centricular.com>
6102
6103         * gst/vaapi/gstvaapidecode.c:
6104         * gst/vaapi/gstvaapisink.c:
6105           Run gst-indent through the files
6106           This is required before we enabled an indent test in the CI.
6107           https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
6108
6109 2018-11-14 13:11:56 +0800  He Junyan <junyan.he@hotmail.com>
6110
6111         * gst/vaapi/gstvaapipluginbase.c:
6112           plugins: modify image check of extract_allowed_surface_formats.
6113           The extract_allowed_surface_formats function just check whether
6114           we can support some kind of surface/image format pair. We just
6115           need to create a surface, create an image with the same video-format
6116           and putImage from image to surface. All these operations success,
6117           that kind of video-format is supported.
6118           The old manner do not work for some kind of video-format. For example,
6119           the RGBA kind of format will create a NV12 surface and RGBA image,
6120           and the putImage will fail because the format is not same. And so
6121           the RGBA format is not supported but actually it is supported.
6122
6123 2018-11-14 11:34:20 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
6124
6125         * gst/vaapi/gstvaapipostproc.c:
6126           vaapipostproc: add some missing locking
6127           gst_vaapi_plugin_base_close() removed the raw caps that are used indirectly
6128           in gst_vaapipostproc_transform_caps(). The usage is already protected by
6129           the mutex.
6130           This is needed when the pipeline is stopped during startup.
6131
6132 2018-11-20 16:07:44 +0800  Xiang, Haihao <haihao.xiang@intel.com>
6133
6134         * gst/vaapi/gstvaapivideomemory.c:
6135           Close dmabuf_fd
6136           Otherwise it will result in resource leak when failed to create
6137           dmabuf memory
6138
6139 2018-11-12 13:39:51 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
6140
6141         * gst/vaapi/gstvaapiencode.c:
6142           vaapiencode: don't start src pad task in set_format
6143           Otherwise the task may be restarted during shutdown. Start the task in
6144           gst_vaapiencode_handle_frame() instead.
6145
6146 2018-11-14 13:52:48 +0800  Wangfei <fei.w.wang@intel.com>
6147
6148         * gst-libs/gst/vaapi/gstvaapiprofile.c:
6149         * gst-libs/gst/vaapi/gstvaapiprofile.h:
6150         * gst-libs/gst/vaapi/gstvaapiutils.c:
6151         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6152         * gst/vaapi/gstvaapidecode.c:
6153         * gst/vaapi/gstvaapipluginutil.h:
6154           libs: dec: h265: support decode for main-444 8bit streams.
6155           Add 444 8bit yuv format AYUV, which can be used to decode
6156           main-444 8bit streams. Currently, this feature is only
6157           supported by media-driver in Icelake.
6158           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/119
6159
6160 2018-11-12 17:43:54 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6161
6162         * .gitlab-ci.yml:
6163           Add Gitlab CI configuration
6164           This commit adds a .gitlab-ci.yml file, which uses a feature
6165           to fetch the config from a centralized repository. The intent is
6166           to have all the gstreamer modules use the same configuration.
6167           The configuration is currently hosted at the gst-ci repository
6168           under the gitlab/ci_template.yml path.
6169           Part of https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/29
6170
6171 2018-11-09 22:03:43 +0800  He Junyan <junyan.he@hotmail.com>
6172
6173         * gst-libs/gst/vaapi/gstvaapisurface.h:
6174         * gst-libs/gst/vaapi/gstvaapiutils.c:
6175           libs: Sync the GstVaapiChromaType to VA header file.
6176           Add more kinds of chrometype which will be used to describe
6177           new video formats. Sync it with 1.4.0 version header file.
6178           Alse delete useless GST_VAAPI_CHROMA_TYPE_YUV410 chrome type.
6179           Signed-off-by: He Junyan <junyan.he@hotmail.com>
6180
6181 2018-11-09 23:55:05 +0000  Tim-Philipp Müller <tim@centricular.com>
6182
6183         * gst-libs/gst/vaapi/meson.build:
6184           meson: link with -lm
6185           Fixes #117 hopefully.
6186
6187 2018-11-09 23:46:53 +0000  Tim-Philipp Müller <tim@centricular.com>
6188
6189         * meson.build:
6190           meson: bump meson required to 0.47 for feature options
6191
6192 2018-11-06 14:38:08 +0800  Junyan He <junyan.he@intel.com>
6193
6194         * gst-libs/gst/vaapi/video-format.c:
6195           libs: Modify the video format of endianness.
6196           We lack some video format because endianness declare.
6197           The video format should not directly relate to endianness. For example,
6198           ARGB on big endian should not be simplely seen as BGRA on little endian
6199           machine. We should provide endianess convert or format convert help
6200           functions if endianness does not match.
6201           https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/112
6202           Signed-off-by: Junyan He <junyan.he@intel.com>
6203
6204 2018-10-17 18:36:52 +0800  Junyan He <junyan.he@intel.com>
6205
6206         * gst/vaapi/gstvaapipluginutil.c:
6207           plugins: Fix build error when GL is enabled while EGL is disabled.
6208           gl_platform_type in gst_vaapi_get_display_type_from_gl_env generate
6209           unused-variable warning and may block build when Werror enabled.
6210           Several functions like gst_vaapi_display_egl_new_with_native_display
6211           have no prototype warning and link error when GL is enabled but EGL
6212           is disabled. Fix all these warning and link error.
6213           https://bugzilla.gnome.org/show_bug.cgi?id=797358
6214           Signed-off-by: Junyan He <junyan.he@intel.com>
6215
6216 2018-11-03 15:06:09 +0800  Wangfei <fei.w.wang@intel.com>
6217
6218         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
6219         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
6220           libs: encoder: h264/h264fei: remove unuseless code.
6221           The variable are set twice, remove previous one.
6222           https://bugzilla.gnome.org/show_bug.cgi?id=797365
6223
6224 2018-11-03 15:28:35 +0800  Wangfei <fei.w.wang@intel.com>
6225
6226         * tests/simple-encoder.c:
6227         * tests/test-fei-enc-in.c:
6228           tests: check return value when using gst_buffer_map.
6229           https://bugzilla.gnome.org/show_bug.cgi?id=797366
6230
6231 2018-11-02 16:50:47 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6232
6233         * meson.build:
6234         * meson_options.txt:
6235         * tests/elements/meson.build:
6236         * tests/meson.build:
6237           build: meson: build examples
6238
6239 2018-11-02 16:50:00 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6240
6241         * gst-libs/gst/vaapi/meson.build:
6242           build: meson: declare headers for libgstvaapi
6243           Thus handling its recompilation if needed.
6244
6245 2018-11-05 05:41:13 +0000  Matthew Waters <matthew@centricular.com>
6246
6247         * .gitmodules:
6248           Update common submodule location
6249           Remove the git directory
6250
6251 2018-11-05 13:00:28 +0800  Haihao Xiang <haihao.xiang@intel.com>
6252
6253         * .gitmodules:
6254         * gstreamer-vaapi.doap:
6255           Clone the code from gitlab
6256           This fixes https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/116
6257
6258 2018-10-24 14:18:37 -0400  Wangfei <fei.w.wang@intel.com>
6259
6260         * gst-libs/gst/vaapi/gstvaapiimage.c:
6261         * gst-libs/gst/vaapi/gstvaapisurface.h:
6262         * gst-libs/gst/vaapi/gstvaapiutils.c:
6263         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6264         * gst-libs/gst/vaapi/video-format.c:
6265         * gst/vaapi/gstvaapidecode.c:
6266         * gst/vaapi/gstvaapipluginutil.h:
6267           libs: dec: h265: support decode for main-10-422 10bit streams.
6268           Add 422 10bit yuv format Y210, which can be used to decode
6269           main-10-422 10bit streams. Currently, this feature is only
6270           supported by media-driver in Icelake.
6271           https://bugzilla.gnome.org/show_bug.cgi?id=797264
6272
6273 2018-10-13 15:00:32 +0800  Wangfei <fei.w.wang@intel.com>
6274
6275         * gst-libs/gst/vaapi/gstvaapicontext.c:
6276           libs: context: roi_rc_qp_delta_support should not be checked when CQP.
6277           VA_ROI_RC_QP_DELTA_SUPPORT return value will be ignored when the
6278           rate control mode is set as CQP. In CQP mode, it shouldn't check
6279           roi_rc_qp_delta_support return value from driver backend.
6280           https://bugzilla.gnome.org/show_bug.cgi?id=797087
6281
6282 2018-10-15 17:55:24 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6283
6284         * gst/vaapi/gstvaapipostproc.c:
6285           vaapipostproc: fix classification string
6286           The classification string is splitted by '/' and then looks for the
6287           components.
6288           This patch removes the ';' by unifying all the components.
6289
6290 2018-10-15 16:05:02 +0100  Philippe Normand <philn@igalia.com>
6291
6292         * gst/vaapi/gstvaapipostproc.c:
6293           vaapipostproc: Add Hardware classifier to metadata
6294
6295 2018-10-12 16:37:34 +0800  Wangfei <fei.w.wang@intel.com>
6296
6297         * gst-libs/gst/vaapi/gstvaapicontext.c:
6298           libs: context: create context first before using it to create surface.
6299           In gst_vaapi_context_reset(), if the context has to be destroyed, make
6300           sure to create it first before allocating its associated surfaces.
6301           This patch fixes a regression introduced in commit 82872f4 because
6302           the formats available in the current context now are ensured before
6303           creating the context's surfaces.
6304           https://bugzilla.gnome.org/show_bug.cgi?id=797277
6305
6306 2018-10-12 15:39:53 +0100  Philippe Normand <philn@igalia.com>
6307
6308         * docs/plugins/inspect/plugin-vaapi.xml:
6309         * gst/vaapi/gstvaapidecode.c:
6310         * gst/vaapi/gstvaapiencode_h264.c:
6311         * gst/vaapi/gstvaapiencode_h264_fei.c:
6312         * gst/vaapi/gstvaapiencode_h265.c:
6313         * gst/vaapi/gstvaapiencode_jpeg.c:
6314         * gst/vaapi/gstvaapiencode_mpeg2.c:
6315         * gst/vaapi/gstvaapiencode_vp8.c:
6316         * gst/vaapi/gstvaapiencode_vp9.c:
6317           gst: Advertise elements interacting with hardware devices
6318
6319 2018-10-01 09:26:05 +0800  Wangfei <fei.w.wang@intel.com>
6320
6321         * gst-libs/gst/vaapi/gstvaapicontext.c:
6322         * gst-libs/gst/vaapi/gstvaapisurface.c:
6323         * gst-libs/gst/vaapi/gstvaapisurface.h:
6324           libs: context: query surface format before context to create surface.
6325           Before using context to create surface, the supported surface format
6326           should be checked first.
6327           https://bugzilla.gnome.org/show_bug.cgi?id=797222
6328
6329 2018-10-09 17:23:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6330
6331         * gst-libs/gst/vaapi/gstvaapiimage.c:
6332         * gst-libs/gst/vaapi/gstvaapivalue.c:
6333           libs: replace g_error with GST_ERROR
6334           And handle those errors rather than halting.
6335
6336 2018-10-09 17:23:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6337
6338         * gst-libs/gst/vaapi/gstvaapiimage.c:
6339         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6340         * gst-libs/gst/vaapi/gstvaapisurface.c:
6341           libs: replace g_warning with GST_WARNING
6342
6343 2018-09-26 14:55:32 -0500  Matteo Valdina <matteo.valdina@gmail.com>
6344
6345         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6346         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6347         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6348         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
6349           libs: Move from g_debug to GST_DEBUG.
6350           https://bugzilla.gnome.org/show_bug.cgi?id=797202
6351
6352 2018-10-04 02:20:10 +0800  Soon, Thean Siew <thean.siew.soon@intel.com>
6353
6354         * gst/vaapi/gstvaapipostproc.c:
6355           vaapipostproc: change the way of handling deinterlace
6356           The current vaapipostproc calls driver's video processing
6357           pipeline for deinterlacing only if it is Advance deinterlacing.
6358           Modify in the way that it always tries with driver's video
6359           processing pipeline for deinterlacing, and falls back to software
6360           method of appending picture structure meta data only if it fails
6361           with driver's method.
6362           https://bugzilla.gnome.org/show_bug.cgi?id=797095
6363
6364 2018-09-24 16:54:29 -0500  Matteo Valdina <matteo.valdina@gmail.com>
6365
6366         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
6367         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
6368           libs: h264: Update level table to "Recommendation H.264 (04/17)".
6369           Added level 6, 6.1 and 6.2. Reference Table A-1 – Level limits
6370           from T-REC-H.264-201704.
6371           https://bugzilla.gnome.org/show_bug.cgi?id=797202
6372
6373 2018-09-20 09:57:33 +0800  Wangfei <fei.w.wang@intel.com>
6374
6375         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6376         * gst-libs/gst/vaapi/gstvaapiprofile.c:
6377         * gst-libs/gst/vaapi/gstvaapiprofile.h:
6378         * gst-libs/gst/vaapi/gstvaapisurface.c:
6379         * gst-libs/gst/vaapi/gstvaapiutils.c:
6380         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6381         * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
6382         * gst-libs/gst/vaapi/video-format.c:
6383         * gst-libs/gst/vaapi/video-format.h:
6384         * gst/vaapi/gstvaapidecode.c:
6385         * gst/vaapi/gstvaapipluginbase.c:
6386         * gst/vaapi/gstvaapipluginutil.h:
6387           libs: dec: h265: add 422 chroma format support.
6388           Add main-422-10 profile which support 422 chroma format stream.
6389           Currently, this feature is only supported by media-driver in Icelake.
6390           https://bugzilla.gnome.org/show_bug.cgi?id=797143
6391
6392 2018-09-26 19:34:06 +0200  U. Artie Eoff <ullysses.a.eoff@intel.com>
6393
6394         * tests/y4mreader.c:
6395           tests: include sysdeps.h in compilation unit
6396           Fixes https://bugzilla.gnome.org/show_bug.cgi?id=797204
6397           Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6398
6399 2018-09-26 18:04:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6400
6401         * tests/y4mreader.c:
6402         * tests/y4mreader.h:
6403           tests: fix compilation
6404           https://bugzilla.gnome.org/show_bug.cgi?id=797204
6405
6406 2018-09-25 20:28:02 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6407
6408         * tests/y4mreader.h:
6409           tests: don's use sysdeps.h in header
6410
6411 2018-09-14 19:30:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6412
6413         * gst-libs/gst/vaapi/gstvaapiutils.h:
6414           libs: utils: no need of include config.h
6415
6416 2018-09-13 18:12:02 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6417
6418         * tests/decoder.c:
6419         * tests/output.c:
6420         * tests/test-decode.c:
6421         * tests/test-subpicture.c:
6422           tests: remove already include string.h
6423           Since sysdeps.h includes string.h there's no need to include it again.
6424
6425 2018-09-13 18:11:25 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6426
6427         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
6428         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6429         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6430         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6431         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6432         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6433         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6434         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6435         * gst-libs/gst/vaapi/gstvaapidisplay.c:
6436         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6437         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6438         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6439         * gst-libs/gst/vaapi/gstvaapiimage.c:
6440         * gst-libs/gst/vaapi/gstvaapiprofile.c:
6441         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
6442         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
6443         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6444         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6445           libs: remove already include string.h
6446           Since sysdeps.h includes string.h there's no need to include it again.
6447
6448 2018-09-13 18:26:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6449
6450         * gst-libs/gst/vaapi/gstvaapiobject.h:
6451         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6452         * gst/vaapi/gstvaapivideometa_texture.c:
6453           libs: object: separation of internal API and plugins
6454           Removed exposed macros GST_VAAPI_OBJECT_DISPLAY() and
6455           GST_VAAPI_OBJECT_ID() to plugins, keeping them only for internal
6456           library usage.
6457           The purpose is readability.
6458           https://bugzilla.gnome.org/show_bug.cgi?id=797139
6459
6460 2018-09-13 16:34:54 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6461
6462         * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
6463           libs: parser_frame: change macros for inlined functions
6464           https://bugzilla.gnome.org/show_bug.cgi?id=797139
6465
6466 2018-09-13 16:10:13 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6467
6468         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
6469         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
6470         * gst-libs/gst/vaapi/gstvaapivideopool.c:
6471         * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
6472           libs: videopool: remove unneeded code
6473           The removed code comes frome the bad practice of copy&paste. Better
6474           move it as internal function.
6475           https://bugzilla.gnome.org/show_bug.cgi?id=797139
6476
6477 2018-09-13 12:22:42 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6478
6479         * gst-libs/gst/vaapi/Makefile.am:
6480         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
6481         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
6482         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
6483         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
6484         * gst-libs/gst/vaapi/gstvaapiobject.c:
6485         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
6486         * gst-libs/gst/vaapi/gstvaapipixmap.c:
6487         * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
6488         * gst-libs/gst/vaapi/gstvaapitexture.c:
6489         * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
6490         * gst-libs/gst/vaapi/gstvaapiwindow.c:
6491         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
6492         * gst-libs/gst/vaapi/meson.build:
6493           libs: remove dependency on IN_LIBGSTVAAPI_CORE
6494           This conditional code was when libgstvaapi was intended to be library
6495           used outside GStreamer. This not the case anymore, thus removing it.
6496           https://bugzilla.gnome.org/show_bug.cgi?id=797139
6497
6498 2018-09-19 10:16:36 +0800  Wangfei <fei.w.wang@intel.com>
6499
6500         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
6501           libs: dec: h265: fix the macros used for IDC profile
6502           profile_idc flag in SPS only indicate the IDC profile, which may
6503           need some other flags together to get the real profile.
6504           https://bugzilla.gnome.org/show_bug.cgi?id=797160
6505
6506 2018-09-12 19:06:22 +0900  Jimmy Ohn <yongjin.ohn@lge.com>
6507
6508         * gst-libs/gst/vaapi/gstvaapidisplay.c:
6509         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6510         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6511         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6512         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
6513           libs: use g_clear_pointer() when possible
6514           https://bugzilla.gnome.org/show_bug.cgi?id=797131
6515
6516 2018-09-03 13:56:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6517
6518         * gst-libs/gst/vaapi/gstvaapifilter.h:
6519           libs: filter: add gobject's cleanup function
6520
6521 2018-05-22 14:28:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6522
6523         * gst-libs/gst/vaapi/gstvaapifilter.c:
6524         * gst-libs/gst/vaapi/gstvaapifilter.h:
6525         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
6526         * tests/test-filter.c:
6527           libs: filter: remove custom ref() and unref()
6528           Replacing them by gst_object_ref() and gst_object_unref()
6529           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6530
6531 2018-05-22 14:26:48 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6532
6533         * gst-libs/gst/vaapi/gstvaapifilter.c:
6534         * gst-libs/gst/vaapi/gstvaapifilter.h:
6535           libs: filter: refactor filter as gobject
6536           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6537
6538 2018-05-21 13:38:00 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6539
6540         * gst-libs/gst/vaapi/gstvaapidecoder.c:
6541         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6542           libs: decoder: remove destoy() and create() callbacks
6543           They were all replaced by reset()
6544           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6545
6546 2018-05-21 13:26:01 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6547
6548         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6549           libs: decoder: vp9: implement reset() callback
6550           remove destroy() and create() callback
6551           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6552
6553 2018-05-21 13:25:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6554
6555         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6556           libs: decoder: vp8: implement reset() callback
6557           remove create() and destroy() callbacks
6558           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6559
6560 2018-05-21 13:24:39 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6561
6562         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6563           libs: decoder: vc1: implement reset() callback
6564           remove destroy() and create() callbacks
6565           use g_clear_pointer for rbdu_buffer
6566           no cast for enum
6567           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6568
6569 2018-05-21 13:24:13 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6570
6571         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6572           libs: decoder: mpeg4: implement reset() callback
6573           remove destroy() and create() callback
6574           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6575
6576 2018-05-21 13:22:45 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6577
6578         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6579           libs: decoder: mpeg2: implement reset() callback
6580           remove create() and destroy() callbacks
6581           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6582
6583 2018-05-21 13:22:07 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6584
6585         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6586           libs: decoder: jpeg: implement reset() callback
6587           and remove create() and destroy() callbacks.
6588           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6589
6590 2018-05-21 13:13:31 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6591
6592         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6593           libs: decoder: h265: implement reset() callback
6594           and remove create() and destroy()
6595           and use g_clear_pointer for dpb structure
6596           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6597
6598 2018-05-21 13:11:41 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6599
6600         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6601           libs: decoder: h264: remove create() and destroy() callbacks
6602           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6603
6604 2018-05-21 11:56:11 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6605
6606         * gst-libs/gst/vaapi/gstvaapidecoder.c:
6607         * gst-libs/gst/vaapi/gstvaapidecoder.h:
6608         * tests/test-decode.c:
6609         * tests/test-subpicture.c:
6610           libs: decoder: remove gst_vaapi_decoder_unref()
6611           Replaced by gst_object_unref() in tests
6612           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6613
6614 2018-05-21 11:51:14 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6615
6616         * gst-libs/gst/vaapi/gstvaapidecoder.c:
6617         * gst-libs/gst/vaapi/gstvaapidecoder.h:
6618           libs: decoder: remove gst_vaapi_decoder_ref()
6619           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6620
6621 2018-05-21 11:50:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6622
6623         * gst-libs/gst/vaapi/gstvaapidecoder.c:
6624         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6625           libs: decoder: remove gst_vaapi_decoder_new()
6626           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6627
6628 2018-05-18 16:09:31 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6629
6630         * gst-libs/gst/vaapi/gstvaapidecoder.c:
6631         * gst-libs/gst/vaapi/gstvaapidecoder.h:
6632         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6633         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
6634         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6635         * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
6636         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
6637         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
6638         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
6639         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
6640         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
6641         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
6642         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
6643         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
6644         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
6645         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
6646         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
6647         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
6648         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
6649           libs: decoder: refactor decoders as gobject
6650           https://bugzilla.gnome.org/show_bug.cgi?id=796308
6651
6652 2018-08-31 20:56:13 -0500  Matteo Valdina <matteo.valdina@gmail.com>
6653
6654         * gst/vaapi/gstvaapidecode.c:
6655           vaapidecode: Requests upstream a key unit at parse or decode error.
6656           This is done to resume decoding after a parse error or decode error.
6657           Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6658
6659 2018-08-31 20:48:13 -0500  Matteo Valdina <matteo.valdina@gmail.com>
6660
6661         * gst/vaapi/gstvaapidecode.c:
6662           vaapidecode: sets return value in failure case.
6663           In gst_vaapidecode_handle_frame, when there is a decode error
6664           there is a code path the returns an uninitialized value.
6665           Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=797006
6666
6667 2018-08-30 18:56:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6668
6669         * gst-libs/gst/vaapi/gstvaapidisplay.c:
6670           libs: display: lock at extracting available image formates
6671           When running several vaapi elements at the concurrently, at
6672           initialization, there is a race condition when extractin the avaible
6673           formats for images and subpictures.
6674           This patch add a lock when the those arrays are filled.
6675           https://bugzilla.gnome.org/show_bug.cgi?id=797039
6676
6677 2018-08-31 14:47:55 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
6678
6679         * meson.build:
6680           meson: Sync libversion and osxversion code from other repos
6681           gstreamer-vaapi does not build any libraries, only plugins, so this is
6682           not used, but sync it just in case someone does add it in the future.
6683
6684 2018-08-29 13:44:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6685
6686         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6687           libs: encoder: h265: trivial documentation fix
6688
6689 2018-08-30 11:08:07 +0800  Wangfei <fei.w.wang@intel.com>
6690
6691         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
6692         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
6693           libs: encoder: h265: add low delay B frame support.
6694           Low delay B frame provide the function of transforming
6695           P frame into low delay B frame which frame type is B, but
6696           only reference predictive frames. This can be used when P
6697           frame unsupported. Especially for P and B both unsupported,
6698           in this case, I and low delay B frame can be encoded in a
6699           stream.
6700           https://bugzilla.gnome.org/show_bug.cgi?id=796984
6701
6702 2018-08-27 20:42:15 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6703
6704         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6705           libs: decoder: h264: Avoid using picture after it has been free
6706           In some cases, the found_picture ended up being evicted and freed, which
6707           would lead to a use after free when accessing picture->base.poc. In this
6708           fix, we take a ref on the picture before calling dpb_evict.
6709           https://bugzilla.gnome.org/show_bug.cgi?id=787124
6710
6711 2018-07-25 17:03:19 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6712
6713         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6714           h264decoder: Fail decoding slice with missing inter-view reference
6715           Similarly to previous patch, we have no error concealment. As a side
6716           effect, it's better to skip slices with missing references then passing
6717           NULL pointers to the accelerator. Passing NULL pointer would lead to
6718           major visual artifact, a behaviour that is likely undefined.
6719           https://bugzilla.gnome.org/show_bug.cgi?id=787124
6720
6721 2017-09-14 14:25:41 +0900  Hyunjun Ko <zzoon@igalia.com>
6722
6723         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6724           libs: decoder: h264: reset context when the number of view is increased
6725           Usually in case of MVC decoding, dpb size is increasedi if subset sps.
6726           That's why it resets context without this patch.
6727           But for some media it doesn't increase dpb size. Even in this case we
6728           should reset context to deal with MVC decoding.
6729           Otherwise, it leads to assert.
6730           https://bugzilla.gnome.org/show_bug.cgi?id=787124
6731
6732 2018-07-25 13:50:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6733
6734         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6735         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6736         * gst/vaapi/gstvaapidecode.c:
6737           vaapidecode: Skip unparsable units from adapter
6738           If the unit could not be parsed, just skip this nal and keep parsing
6739           what is left in the adapter. We need to flush the broken unit in the
6740           decoder specific parser because the generic code does not know about
6741           units boundary. This increases error resilliance.
6742           Before this, the broken unit would stay in the adapter and EOS would be
6743           returned. Which stopped the streaming. Just removing the EOS would have
6744           lead to the adapter size growing indefinitely.
6745           https://bugzilla.gnome.org/show_bug.cgi?id=796863
6746
6747 2018-07-24 12:40:00 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6748
6749         * gst/vaapi/gstvaapidecode.c:
6750           vaapidecoder: Don't error out on decode errors
6751           This is problematic on live pipeline where loosing network can
6752           cause an important amount of errors.
6753           https://bugzilla.gnome.org/show_bug.cgi?id=796832
6754
6755 2018-07-25 15:47:49 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6756
6757         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
6758           h265decoder: Don't scan empty buffer
6759           Same as what we did for H264 decoder, this is to avoid an assertion
6760           in the adapter.
6761           https://bugzilla.gnome.org/show_bug.cgi?id=796832
6762
6763 2018-07-25 20:21:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6764
6765         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6766           libs: h264: renable the vaapi category for logging
6767           h264 log messages were logged in default category because a regression
6768           in code. This patch renable the usage of vaapi logging category.
6769           This regression was introduced in commit 7c365bdd.
6770
6771 2018-07-18 13:09:42 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6772
6773         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6774           h264decoder: Fail decoding slice if modification process failed
6775           This patch chains up failure to executing the modification process. The
6776           end result is that we now fail decoding the slice if this process fails.
6777           This avoid sending a corrupted state to the accelerator. In some special
6778           cases, this could lead to unrecoverable errors.
6779           https://bugzilla.gnome.org/show_bug.cgi?id=796832
6780
6781 2018-07-18 13:07:51 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6782
6783         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6784           h264decoder: Don't scan empty buffer
6785           gst_adapter_masked_scan_uint32_peek() asserts if size is 0. Don't
6786           try and scan in that case. This fixes assertion that would some times
6787           happen when the stream is corrupted.
6788           https://bugzilla.gnome.org/show_bug.cgi?id=796832
6789
6790 2018-07-04 12:51:10 +0800  Tianhao Liu <tianhao.liu@intel.com>
6791
6792         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
6793           libs: encoder: jpeg: set component id and Tqi
6794           This change is due a problem encoding JPEGs with Intel's
6795           media-driver: green/black image when playback jpeg
6796           This patch sets component identifier and quantization table
6797           destination selector in frame header to support packing headers
6798           by Intel's media-driver that does not accept packed header
6799           in AP level.
6800           https://bugzilla.gnome.org/show_bug.cgi?id=796705
6801
6802 2018-06-25 14:20:32 +0200  Mathieu Duponchelle <mathieu@centricular.com>
6803
6804         * gst/vaapi/gstvaapipluginutil.c:
6805           pluginutil: downgrade unsupported driver logging
6806           On systems with an Nvidia card, this error is output each time
6807           the registry is rebuilt, which happens pretty often when
6808           using gst-build as a development environment.
6809           https://bugzilla.gnome.org/show_bug.cgi?id=796663
6810
6811 2018-06-24 13:07:20 +0200  Tim-Philipp Müller <tim@centricular.com>
6812
6813         * gst/vaapi/gstvaapivideobufferpool.c:
6814           Update for g_type_class_add_private() deprecation in recent GLib
6815
6816 2018-05-30 16:01:36 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6817
6818         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6819           h264dec: Remove false assumption about parity order
6820           The decoder was trying to detect earlier that a field was lost base
6821           on guessing the parity order. This breaks in streams were the parity
6822           order changes.
6823           This patch reverts the field order prediction code added by commit
6824           8dd93e9c8.
6825           https://bugzilla.gnome.org/show_bug.cgi?id=796169
6826
6827 2018-05-18 17:03:57 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
6828
6829         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
6830           h264dec: Properly set sentinel in ref frame list
6831           This ensure that we always have sentinels set in the reference
6832           pictures arrays. The code wasn't unsafe, this simply improve the
6833           tracing, so instead of printing 32 lines of zeros, va tracer
6834           prints proper empty lists.
6835           https://bugzilla.gnome.org/show_bug.cgi?id=796169
6836
6837 2018-06-13 18:00:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6838
6839         * gst-libs/gst/vaapi/gstvaapidecoder.c:
6840         * gst-libs/gst/vaapi/gstvaapidisplay.c:
6841         * gst-libs/gst/vaapi/gstvaapidisplay.h:
6842         * gst-libs/gst/vaapi/gstvaapiencoder.c:
6843         * gst-libs/gst/vaapi/gstvaapifilter.c:
6844         * gst-libs/gst/vaapi/gstvaapiobject.c:
6845         * gst-libs/gst/vaapi/gstvaapivideopool.c:
6846         * gst/vaapi/gstvaapipluginbase.c:
6847         * gst/vaapi/gstvaapivideometa.c:
6848         * tests/test-decode.c:
6849           libs: display: remove gst_vaapi_display_ref()
6850           Replace it with gst_object_ref()
6851           https://bugzilla.gnome.org/show_bug.cgi?id=796470
6852
6853 2018-06-13 17:54:23 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6854
6855         * gst-libs/gst/vaapi/gstvaapidisplay.c:
6856         * gst-libs/gst/vaapi/gstvaapidisplay.h:
6857         * gst/vaapi/gstvaapi.c:
6858         * gst/vaapi/gstvaapidecode.c:
6859         * gst/vaapi/gstvaapiencode.c:
6860         * gst/vaapi/gstvaapipluginbase.c:
6861         * gst/vaapi/gstvaapipluginutil.c:
6862         * tests/output.c:
6863         * tests/simple-encoder.c:
6864         * tests/test-decode.c:
6865         * tests/test-display.c:
6866         * tests/test-fei-enc-in.c:
6867         * tests/test-filter.c:
6868         * tests/test-subpicture.c:
6869         * tests/test-surfaces.c:
6870         * tests/test-textures.c:
6871         * tests/test-windows.c:
6872           libs: display: remove gst_vaapi_display_unref()
6873           Use gst_object_unref() instead.
6874           https://bugzilla.gnome.org/show_bug.cgi?id=796470
6875
6876 2018-06-13 18:10:28 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6877
6878         * gst/vaapi/gstvaapivideobufferpool.c:
6879           vaapibufferpool: declare parameter display as object
6880           We have neglected to update this code since GstVaapiDisplay turned
6881           into a GstObject descendant.
6882           https://bugzilla.gnome.org/show_bug.cgi?id=796470
6883
6884 2018-06-01 12:36:51 +0900  Hyunjun Ko <zzoon@igalia.com>
6885
6886         * gst-libs/gst/vaapi/gstvaapidisplay.c:
6887         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
6888         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6889         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
6890         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6891         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
6892         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6893           libs: display: replace gst_vaapi_display_new() with gst_vaapi_display_config()
6894           Gobjectification for GstVaapiDisplay was almost done by the commit 185da3d1.
6895           But still something breaking GObject code convention remains, which is
6896           calling gst_vaapi_display_new() in each decendants.
6897           This patch replaces it with gst_vaapi_display_config(), defined in private
6898           header.
6899           https://bugzilla.gnome.org/show_bug.cgi?id=796470
6900
6901 2018-06-13 17:05:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6902
6903         * gst-libs/gst/vaapi/gstvaapidisplay.c:
6904           libs: display: redefine gst_vaapi_display_create()
6905           The function name was gst_vaapi_display_create_unlocked(), nonetheless
6906           it wasn't called unlocked. In order to keep the semantics this patch
6907           renames the gst_vaapi_display_create_unlocked() as
6908           gst_vaapi_display_create(), removing the previous function
6909           gst_vaapi_display_create().
6910           https://bugzilla.gnome.org/show_bug.cgi?id=796470
6911
6912 2018-06-12 15:53:04 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6913
6914         * meson.build:
6915           Revert "build: meson: libva gst-uninstall friendly"
6916           This reverts commit fc3eef9c432c1628cb92ab56e74924cf1182da30.
6917
6918 2018-06-12 15:13:33 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6919
6920         * gst/vaapi/gstvaapipluginutil.c:
6921           plugins: fix compilation
6922           gstvaapipluginutil.c:171:1: error: old-style function definition [-Werror=old-style-definition]
6923
6924 2018-04-20 18:05:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6925
6926         * meson.build:
6927           build: meson: libva gst-uninstall friendly
6928           Make gstreamer-vaapi to use libva uninstalled.
6929
6930 2018-06-10 10:44:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6931
6932         * gst/vaapi/gstvaapipluginutil.c:
6933           plugins: refactor gst_vaapi_create_display_from_gl_context()
6934           gst_vaapi_create_display_from_gl_context() was a spaghetti mess.
6935           This path refactors it, in order to make the code readable and
6936           easy to follow.
6937           https://bugzilla.gnome.org/show_bug.cgi?id=796564
6938
6939 2018-05-25 12:17:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6940
6941         * gst-libs/gst/vaapi/gstvaapidisplay.c:
6942         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6943         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
6944           libs: display: resurrect parent private member
6945           This is, practically, a revert of commit dcf135e2.
6946           The parent logic is useful for the EGL display, which is a decorator
6947           of the real windowing subsystem (X11 or Wayland). Thus it is avoided
6948           calling vaInitialize() and vaTerminate() twice.
6949           https://bugzilla.gnome.org/show_bug.cgi?id=795391
6950
6951 2018-04-27 18:35:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6952
6953         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6954           libs: display: egl: initialize params structure
6955           Statically initialise the internal params structure.
6956           https://bugzilla.gnome.org/show_bug.cgi?id=795391
6957
6958 2018-04-27 18:34:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
6959
6960         * gst/vaapi/gstvaapipluginutil.c:
6961           plugins: handle EGL when creating VAAPI display from gl
6962           If GstGL reports a EGL platform force to create a EGL display using
6963           the native EGL display.
6964           https://bugzilla.gnome.org/show_bug.cgi?id=795391
6965
6966 2018-04-24 18:17:24 +0900  Hyunjun Ko <zzoon@igalia.com>
6967
6968         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
6969         * gst/vaapi/gstvaapipluginutil.c:
6970           display: egl: create VaapiDisplayEGL with native EGL display
6971           gst_vaapi_display_egl_new_with_native_display() has been broken since
6972           it wasn't used.
6973           Currently it's needed to call this API to create a display providing
6974           the EGL display, so it could avoid duplicated calls to the native
6975           display (eg. eglTerminate).
6976           Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
6977           https://bugzilla.gnome.org/show_bug.cgi?id=795391
6978
6979 2018-06-07 09:34:11 +0800  Tianhao Liu <tianhao.liu@intel.com>
6980
6981         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
6982           libs: decoder: release VA buffers after vaEndPicture
6983           This change is due a problem decoding JPEGs with Intel's media-driver:
6984           no image was generated.
6985           This patch relases the VA buffers after vaEndPicture() is called,
6986           and not before (after vaRenderPicture()).
6987           https://bugzilla.gnome.org/show_bug.cgi?id=796505
6988
6989 2018-06-07 19:49:02 +0100  Tim-Philipp Müller <tim@centricular.com>
6990
6991         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
6992         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
6993         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
6994           meson: fix build when xrender or xrandr are not available
6995           HAVE_XRENDER are defined to 1 or 0, not defined or undefined.
6996
6997 2018-05-25 16:47:00 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
6998
6999         * gst/vaapi/gstvaapipostproc.c:
7000           vaapipostproc: don't copy the GstParentBufferMeta if use_vpp
7001           Otherwise a reference to a DMABuf input buffer is kept until the output
7002           buffer is deleted.
7003           https://bugzilla.gnome.org/show_bug.cgi?id=796399
7004
7005 2018-05-22 21:13:08 +0900  Hyunjun Ko <zzoon@igalia.com>
7006
7007         * gst-libs/gst/vaapi/gstvaapidisplay.c:
7008         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
7009           libs: display: remove unnecessary legacy code since gobjectification
7010           https://bugzilla.gnome.org/show_bug.cgi?id=796470
7011
7012 2018-05-22 21:05:54 +0900  Hyunjun Ko <zzoon@igalia.com>
7013
7014         * gst-libs/gst/vaapi/gstvaapidisplay.c:
7015         * gst-libs/gst/vaapi/gstvaapidisplay.h:
7016           libs: display: remove unused code
7017           https://bugzilla.gnome.org/show_bug.cgi?id=796470
7018
7019 2018-06-05 15:16:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7020
7021         * gst/vaapi/gstvaapiencode_h264.c:
7022           vaapiencode: h264: log output caps
7023
7024 2018-06-05 22:38:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7025
7026         * gst/vaapi/gstvaapiencode_h264.c:
7027           vaapiencode: h264: find profile in available and allowed caps
7028           The commit 67e33d3de225d0e006d7bf606e7abb20d4544eab ("vaapiencode: h264:
7029           find best profile in those available") changed the code to pick a profile
7030           that is actually supported by the hardware. Unfortunately it dropped the
7031           downstream constraints. This can cause negotiation failures under certain
7032           circumstances.
7033           The fix is split in two cases:
7034           1\ the available VA-API caps doesn't intersect with pipeline's allowed
7035           caps:
7036           * The best allowed profile (pipeline's caps) is set as the encoding
7037           target profile (it will be adjusted later by the available profiles
7038           and properties)
7039           2\ the available VA-API caps does intersect with pipeline's allowed
7040           caps:
7041           * The intersected caps are fixed, and its profile is set as the
7042           encoding target profile. In this case the is not the best profile,
7043           but the minimal one (if VA-API reports the profiles in order).
7044           Setting the minimal profile of the intersected caps is better for
7045           compatibility.
7046           This patch fixes other tests related with caps negotiation, for
7047           example, it handles baseline profile, even when VA only supports
7048           constrained-baseline.
7049           Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
7050           https://bugzilla.gnome.org/show_bug.cgi?id=794306
7051
7052 2018-06-01 15:27:25 +0900  Hyunjun Ko <zzoon@igalia.com>
7053
7054         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7055           libs: encoder: h265: increase log2_max_pic_order_cnt range according to spec
7056           The specification says,
7057           "log2_max_pic_order_cnt_lsb_minus4 shall be in the range of 0 to 12, inclusive."
7058           This patch changes the upper limit from 6 to 12.
7059           https://bugzilla.gnome.org/show_bug.cgi?id=796179
7060
7061 2018-05-21 13:27:14 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7062
7063         * gst/vaapi/gstvaapipluginutil.c:
7064           plugins: guard GstGL code
7065
7066 2018-05-18 18:23:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7067
7068         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7069           libs: decoder: h264: use g_clear_pointer()
7070
7071 2018-05-18 17:27:46 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7072
7073         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
7074         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
7075           libs: decoder: mpeg4, vc1: remove unused header
7076
7077 2018-05-18 11:09:58 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7078
7079         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
7080           libs: decoder: remove unused forward declaration
7081
7082 2018-05-07 07:59:25 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
7083
7084         * configure.ac:
7085           fix configure.ac regression
7086           Fixes regression introduced by 77527d67abe
7087           https://bugzilla.gnome.org/show_bug.cgi?id=795885
7088
7089 2018-05-05 17:57:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7090
7091         * gst-libs/gst/Makefile.am:
7092         * gst-libs/gst/base/Makefile.am:
7093         * gst-libs/gst/base/gstbitwriter.c:
7094         * gst-libs/gst/base/gstbitwriter.h:
7095         * gst-libs/gst/base/meson.build:
7096         * gst-libs/gst/meson.build:
7097         * gst-libs/gst/vaapi/Makefile.am:
7098         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7099         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7100         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7101         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
7102         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
7103         * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7104         * gst-libs/gst/vaapi/meson.build:
7105           libs: remove gstbitwriter
7106           Since it is deployed in gstreamer-core, there is no need to use
7107           our custom version.
7108           https://bugzilla.gnome.org/show_bug.cgi?id=795848
7109
7110 2018-04-28 16:10:46 +0800  Wang,Fei <fei.w.wang@intel.com>
7111
7112         * gst/vaapi/gstvaapidecode.c:
7113           vaapih264dec: add constrained and progressive profiles
7114           Those profiles have been added in the version 2012-01
7115           and 2011-06 of the AVC spec (A.2.4.1 and A.2.4.2).
7116           Both are supported by VAProfileH264High
7117           https://bugzilla.gnome.org/show_bug.cgi?id=795624
7118
7119 2018-04-26 18:15:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7120
7121         * gst/vaapi/gstvaapipluginbase.c:
7122         * gst/vaapi/gstvaapipluginutil.c:
7123         * gst/vaapi/gstvaapivideocontext.c:
7124         * gst/vaapi/gstvaapivideocontext.h:
7125           plugin: remove custom GstGL context handling
7126           Instead of using our own context handling for looking for GstGL
7127           parameters (display, context and other context), this patch changes
7128           the logic to use the utility function offered by GstGL.
7129           https://bugzilla.gnome.org/show_bug.cgi?id=793643
7130
7131 2018-04-26 15:03:23 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7132
7133         * gst/vaapi/gstvaapipluginbase.c:
7134           plugins: GstGL API must use the member variables
7135           This commit basically is a revert of commits 8092537 and fc1c415
7136           https://bugzilla.gnome.org/show_bug.cgi?id=793643
7137
7138 2018-04-25 16:24:32 +0900  Hyunjun Ko <zzoon@igalia.com>
7139
7140         * gst/vaapi/gstvaapipluginbase.c:
7141           plugins: pass members as parameters of gst_gl_ensure_element_data()
7142           The parameters of gst_gl_ensure_element_data() have to be not
7143           local variable since they are going to be used to see if they're
7144           set in gst_element_set_context() inside the API.
7145           This is basically a revert of commit 3d56306c
7146           https://bugzilla.gnome.org/show_bug.cgi?id=793643
7147
7148 2018-04-25 17:50:14 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7149
7150         * meson.build:
7151           meson: fix USE_GLES_VERSION_MASK
7152           1. The macro in the code is USE_GLES_VERSION_MASK
7153           2. glesv3 is provided by glesv2 pkg-config, then it's required to
7154           check headers
7155           https://bugzilla.gnome.org/show_bug.cgi?id=795391
7156
7157 2018-04-24 18:12:44 +0900  Hyunjun Ko <zzoon@igalia.com>
7158
7159         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7160           libs: egl: utils: mark context as wrapped when it is
7161           The returning egl context may be null, so we should check the
7162           return value.
7163           https://bugzilla.gnome.org/show_bug.cgi?id=795391
7164
7165 2018-04-24 10:02:33 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7166
7167         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7168           libs: egl: utils: fix usage of GstGL macros
7169           Include gl.h for the required GstGL symbols.
7170           https://bugzilla.gnome.org/show_bug.cgi?id=795391
7171
7172 2018-04-25 11:01:45 +0100  Tim-Philipp Müller <tim@centricular.com>
7173
7174         * meson.build:
7175           meson: use -Wl,-Bsymbolic-functions where supported
7176           Just like the autotools build.
7177
7178 2018-04-20 16:01:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7179
7180         * meson.build:
7181           meson: use get_pkgconfig_variable()
7182           Use get_pkgconfig_variable() method, of dependency class, rather
7183           than using run_command().
7184
7185 2018-04-20 11:50:55 +0100  Tim-Philipp Müller <tim@centricular.com>
7186
7187         * gst-libs/gst/base/meson.build:
7188         * gst-libs/gst/vaapi/meson.build:
7189         * meson.build:
7190           meson: fix miscellaneous meson warnings
7191           WARNING: Passed invalid keyword argument "rqeuired".
7192           gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "version".
7193           gst-libs/gst/base/meson.build:11: WARNING: Passed invalid keyword argument "soversion".
7194           gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "version".
7195           gst-libs/gst/vaapi/meson.build:223: WARNING: Passed invalid keyword argument "soversion".
7196
7197 2018-03-30 13:41:39 +0200  Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7198
7199         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
7200           display: drm: Allow finding DRM paths out of the PCI subsystem
7201           This removes hard-coded checks on the parent subsystem of potential DRM
7202           devices. These checks were set to exlude devices that do not originate
7203           from the PCI bus, which is only a valid approach on x86 devices.
7204           Other devices may have a DRM device originating from the platform
7205           subsystem, so the checks that were previously restricted to PCI are
7206           extended to cover platform devices as well.
7207           https://bugzilla.gnome.org/show_bug.cgi?id=794840
7208           Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
7209
7210 2017-11-08 13:27:06 +0900  Hyunjun Ko <zzoon@igalia.com>
7211
7212         * gst/vaapi/gstvaapivideocontext.c:
7213           videocontext: support wl-display in "gst.vaapi.app.Display"
7214           Through "gst.vaapi.app.Display" context, users can set their own
7215           VADisplay and native display of their backend.
7216           So far we support only X11 display, from now we also support Wayland
7217           display.
7218           Attributes:
7219           - wl-display : pointer of struct wl_display .
7220           https://bugzilla.gnome.org/show_bug.cgi?id=705821
7221
7222 2017-11-08 13:26:38 +0900  Hyunjun Ko <zzoon@igalia.com>
7223
7224         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
7225         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
7226           libs: display: wayland: add gst_vaapi_display_wayland_new_with_va_display()
7227           Implements new API function so that users could create GstVaapiDisplay
7228           with their own VADisplay within a native display as backend.
7229           https://bugzilla.gnome.org/show_bug.cgi?id=705821
7230
7231 2018-04-13 09:28:53 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
7232
7233         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
7234           wayland: don't poll if there are no pending frames
7235           Otherwise the following poll may not return for an arbitrary amount of
7236           time. This can happen if another wayland event queue has flushed and read
7237           our events.
7238           https://bugzilla.gnome.org/show_bug.cgi?id=795224
7239
7240 2017-10-16 12:09:08 +0900  Hyunjun Ko <zzoon@igalia.com>
7241
7242         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7243           libs: encoder: h265: 16 bit rounding of picture width and height
7244           pic_width_in_luma_samples/pic_height_in_luma_samples can be 16-bit rounded
7245           instead of 32-bit.
7246           In addition, codedbuf_size must be calculated according to this change.
7247           https://bugzilla.gnome.org/show_bug.cgi?id=753229
7248
7249 2018-04-16 10:53:47 +0100  Tim-Philipp Müller <tim@centricular.com>
7250
7251         * common:
7252           Automatic update of common submodule
7253           From 3fa2c9e to ed78bee
7254
7255 2018-03-30 20:39:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7256
7257         * gst/vaapi/gstvaapiencode_h264.c:
7258           vaapiencode: h264: find best profile in those available
7259           Instead to look for the best profile in the allowed profiles by
7260           downstream, the encoder should look for the base profile in the
7261           available profile in VA-API.
7262           https://bugzilla.gnome.org/show_bug.cgi?id=794306
7263
7264 2018-03-20 10:49:10 +0000  Tim-Philipp Müller <tim@centricular.com>
7265
7266         * NEWS:
7267         * RELEASE:
7268         * configure.ac:
7269         * docs/plugins/inspect/plugin-vaapi.xml:
7270         * meson.build:
7271           Back to development
7272
7273 === release 1.14.0 ===
7274
7275 2018-03-19 20:30:28 +0000  Tim-Philipp Müller <tim@centricular.com>
7276
7277         * ChangeLog:
7278         * NEWS:
7279         * configure.ac:
7280         * gstreamer-vaapi.doap:
7281         * meson.build:
7282           Release 1.14.0
7283
7284 2018-03-12 16:59:01 +0000  Julien Isorce <jisorce@oblong.com>
7285
7286         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
7287           libs: decoder: h264: ensure num_ref_frames is greater than 0
7288           Even if it is the h264parse fault or bad video file, vaapih264dec
7289           should set a proper value for VAPictureParameterBufferH264.num_ref_frames
7290           as the driver might use it.
7291           Also see "info.ref_frames = dpb_size;" in
7292           gstvaapidecoder_h264.c::ensure_context
7293           https://bugzilla.gnome.org/show_bug.cgi?id=793836
7294
7295 === release 1.13.91 ===
7296
7297 2018-03-13 19:32:05 +0000  Tim-Philipp Müller <tim@centricular.com>
7298
7299         * ChangeLog:
7300         * NEWS:
7301         * configure.ac:
7302         * gstreamer-vaapi.doap:
7303         * meson.build:
7304           Release 1.13.91
7305
7306 === release 1.13.90 ===
7307
7308 2018-03-03 22:59:30 +0000  Tim-Philipp Müller <tim@centricular.com>
7309
7310         * ChangeLog:
7311         * NEWS:
7312         * configure.ac:
7313         * gstreamer-vaapi.doap:
7314         * meson.build:
7315           Release 1.13.90
7316
7317 2018-03-01 07:33:27 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7318
7319         * gst/vaapi/gstvaapipostproc.c:
7320           vaapipostproc: change how the metadata is copied
7321           Instead of copying the metada in prepare_output_buffer() vmethod,
7322           it is done in append_output_buffer_metadata() thus deinterlaced
7323           buffers could also have the proper metas.
7324           GstVideoCropMeta now it is copied internally and it is decided via
7325           transform_meta() vmethod.
7326           A new internal method, copy_metadata() was added to handle VPP
7327           transformation where non-GstVideoVaapiMeta metas were lost.
7328
7329 2018-02-27 16:20:15 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
7330
7331         * gst/vaapi/gstvaapipostproc.c:
7332           postproc: Copy meta data from input to output
7333           This will ensure that meta data without memory tags will be copied. This
7334           was noticed when testing ROI.
7335           https://bugzilla.gnome.org/show_bug.cgi?id=768248
7336
7337 2018-02-23 10:48:36 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7338
7339         * tests/elements/test-roi.c:
7340           tests: element: rewrite ROI test
7341           Rewrote the ROI test to use GstVideoRegionOfInterest meta rather
7342           than injecting GstEvents. These meta are added as a pad probe in
7343           the queue src pad.
7344           Also
7345           * Use of navigation messages to control de test
7346           * Use signal watch for processing messages
7347           * Change to H265 rather than H264 since current intel-vaapi-driver
7348           only supports ROI on kabylake.
7349           TODO: add a parameter to change the encoder/decoder to test.
7350           https://bugzilla.gnome.org/show_bug.cgi?id=768248
7351
7352 2018-02-22 14:20:42 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7353
7354         * gst-libs/gst/vaapi/gstvaapicontext.c:
7355         * gst-libs/gst/vaapi/gstvaapiencoder.c:
7356         * gst-libs/gst/vaapi/gstvaapiencoder.h:
7357         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7358         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7359         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7360           libs: encoder: reimplement ROI using meta
7361           Check input buffers for ROI metas and pass them to VA. Also added a
7362           new "default-roi-delta-qp" property in order to tell the encoder what
7363           delta QP should be applied to ROI by default.
7364           Enabled it for H264 and H265 encoders.
7365           https://bugzilla.gnome.org/show_bug.cgi?id=768248
7366
7367 2018-02-22 08:22:35 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7368
7369         * gst-libs/gst/vaapi/gstvaapiencoder.c:
7370         * gst-libs/gst/vaapi/gstvaapiencoder.h:
7371         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
7372           Revert "libs: encoder: add api gst_vaapi_encoder_add/del_roi"
7373           This reverts commit 7a6f690340dcb3b82c59efa777d4453227851de8.
7374           https://bugzilla.gnome.org/show_bug.cgi?id=768248
7375
7376 2018-02-22 14:29:19 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7377
7378         * tests/simple-encoder.c:
7379           Revert "tests: simple-encoder: add an option to set ROI"
7380           This reverts commit c21345c4787bb6342adddea1190f53fe62abff04.
7381           https://bugzilla.gnome.org/show_bug.cgi?id=768248
7382
7383 2018-02-21 10:56:47 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7384
7385         * gst/vaapi/gstvaapiencode.c:
7386         * gst/vaapi/gstvaapiencode_h264.c:
7387           Revert "vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest"
7388           This reverts commit 8f1b88dac0e64a211325cdcb2cda693b80229bd1.
7389           https://bugzilla.gnome.org/show_bug.cgi?id=768248
7390
7391 2018-02-23 09:25:51 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7392
7393         * gst/vaapi/gstvaapipluginbase.c:
7394           plugins: copy input buffer metas
7395           When importing buffers to a VA-base buffer, it is required to copy
7396           the metas in the original buffer, otherwise information will be
7397           lost, such as GstVideoRegionOfInterestMeta.
7398           https://bugzilla.gnome.org/show_bug.cgi?id=768248
7399
7400 2018-02-27 06:10:09 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7401
7402         * gst-libs/gst/vaapi/gstvaapisurface.c:
7403           libs: surface: cast to uintptr_t pointer
7404           According to Debian package auto-building, uintptr_t is not an
7405           unsigned long in i386 arch, raising an "incompatible pointer type"
7406           error.
7407           This patch adds a casting for compiler's satisfaction in i386.
7408
7409 2018-02-25 20:46:56 -0600  Matteo Valdina <matteo.valdina@gmail.com>
7410
7411         * gst-libs/gst/vaapi/gstvaapiencoder.c:
7412           libs: encoder: add zero as valid value for periodic keyframe.
7413           Enabled zero as valid value for keyframe-period property.
7414           https://bugzilla.gnome.org/show_bug.cgi?id=793829
7415
7416 2018-02-22 08:24:12 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7417
7418         * gst-libs/gst/vaapi/gstvaapiencoder.c:
7419           libs: encoder: code-style fix
7420
7421 2018-02-17 18:32:11 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7422
7423         * gst/vaapi/gstvaapidecode.c:
7424           vaapidecode: generate system allocated buffers
7425           Generate system allocated output buffers when downstream doesn't
7426           support GstVideoMeta.
7427           The VA buffer content is copied to the new output buffer, and it
7428           replaces the VA buffer.
7429           https://bugzilla.gnome.org/show_bug.cgi?id=785054
7430
7431 2018-02-15 19:32:37 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7432
7433         * gst/vaapi/gstvaapipostproc.c:
7434           vaapipostproc: handle system allocated buffers when required
7435           When downstream can't handle GstVideoMeta it is required to send
7436           system allocated buffers.
7437           The system allocated buffers are produced in prepare_output_buffer()
7438           vmethod if downstream can't handl GstVideoMeta.
7439           At transform() vmethod if the buffer is a system allocated buffer,
7440           a VA buffer is instanciated and replaces the out buffer. Later
7441           the VA buffer is copied to the system allocate buffer and it
7442           replaces the output buffer.
7443           https://bugzilla.gnome.org/show_bug.cgi?id=785054
7444
7445 2018-02-15 19:32:19 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7446
7447         * gst/vaapi/gstvaapipluginbase.c:
7448         * gst/vaapi/gstvaapipluginbase.h:
7449           plugins: add gst_vaapi_copy_va_buffer()
7450           This helper function aims to copy buffers with VA memory to dumb
7451           buffers, when GstVideoMeta is not available dowstream.
7452           https://bugzilla.gnome.org/show_bug.cgi?id=785054
7453
7454 2018-02-15 19:29:51 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7455
7456         * gst/vaapi/gstvaapipluginbase.c:
7457         * gst/vaapi/gstvaapipluginbase.h:
7458           plugins: add COPY_OUTPUT_FRAME flag
7459           This patch add the member copy_output_frame and set it TRUE when
7460           when downstream didn't request GstVideoMeta API, the caps are raw
7461           and the internal allocator is the VA-API one.
7462           https://bugzilla.gnome.org/show_bug.cgi?id=785054
7463
7464 2018-02-15 19:28:33 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7465
7466         * gst/vaapi/gstvaapipluginbase.c:
7467         * gst/vaapi/gstvaapipluginbase.h:
7468           plugins: store the first downstream allocator if available
7469           The allocator will be required if we need to allocate a buffer
7470           to store the frame with the expected strides.
7471           https://bugzilla.gnome.org/show_bug.cgi?id=785054
7472
7473 2018-02-20 02:25:13 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7474
7475         * gst/vaapi/gstvaapivideobufferpool.c:
7476         * gst/vaapi/gstvaapivideobufferpool.h:
7477           vaapibufferpool: add gst_vaapi_video_buffer_pool_copy_buffer()
7478           This function will inform the element if it shall copy the generated
7479           buffer by the pool to a system allocated buffer before pushing it
7480           to downstream.
7481           https://bugzilla.gnome.org/show_bug.cgi?id=785054
7482
7483 2018-02-15 19:22:08 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7484
7485         * gst/vaapi/gstvaapivideobufferpool.c:
7486           vaapibufferpool: don't change config when forcing video meta
7487           VA-API based buffer might need a video meta because of different
7488           strides. But when donwstream doesn't support video meta we need to
7489           force the usage of video meta.
7490           Before we changed the buffer pool configuration, but actually this
7491           is a hack and we cannot rely on that for downstream.
7492           This patch add a check fo raw video caps and allocator is VA-API,
7493           then the option is enabled without changing the pool configuration.
7494           In this case the element is responsible to copy the frame to a
7495           simple buffer with the expected strides.
7496           https://bugzilla.gnome.org/show_bug.cgi?id=785054
7497
7498 2018-02-20 09:15:05 -0600  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7499
7500         * gst/vaapi/gstvaapipostproc.c:
7501           vaapipostproc: set discont flag at vpp deinterlacing
7502           When deinterlacing with VPP the discont flag was not forwarded to
7503           the new created buffer. This patch sets the discont flag if input
7504           buffer has it.
7505
7506 2018-02-20 02:14:37 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7507
7508         * gst/vaapi/gstvaapivideobufferpool.h:
7509           vaapibufferpool: remove wrong gcc annotation
7510
7511 2018-02-15 14:55:42 -0600  Matteo Valdina <matteo.valdina@gmail.com>
7512
7513         * gst-libs/gst/vaapi/gstvaapiencoder.c:
7514         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7515         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
7516         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7517         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
7518         * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
7519         * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
7520           libs: encoder: h264,h265: extend max periodic keyframe.
7521           Increased max values of periodic key frame for h26x codecs.
7522           This allow more fine tunning of encoder that in certian scenario
7523           want higher periodic key frame.
7524           For example: it doesn't want a key frame each 10 seconds but
7525           each 120 seconds.
7526           https://bugzilla.gnome.org/show_bug.cgi?id=786320
7527
7528 2018-02-15 19:44:35 +0000  Tim-Philipp Müller <tim@centricular.com>
7529
7530         * configure.ac:
7531         * meson.build:
7532           Back to development
7533
7534 === release 1.13.1 ===
7535
7536 2018-02-15 17:39:16 +0000  Tim-Philipp Müller <tim@centricular.com>
7537
7538         * Makefile.am:
7539         * NEWS:
7540         * configure.ac:
7541         * gstreamer-vaapi.doap:
7542         * meson.build:
7543           Release 1.13.1
7544
7545 2018-02-15 18:15:33 +0000  Tim-Philipp Müller <tim@centricular.com>
7546
7547         * gst/vaapi/Makefile.am:
7548           vaapi: dist new header
7549
7550 2018-02-12 17:53:58 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7551
7552         * gst/vaapi/gstvaapi.c:
7553           vaapi: register vaapisink as marginal on wayland
7554           vaapsink, when used with the Intel VA-API driver, tries to display
7555           surfaces with format NV12, which are handled correctly by
7556           Weston. Nonetheless, COGL cannot display YUV surfaces, making fail
7557           pipelines on mutter.
7558           This shall be solved either by COGL or by making the driver to paint
7559           RGB surfaces. In the meanwhile, let's just demote vaapisink as
7560           marginal when the Wayland environment is detected, no matter if it is
7561           Weston.
7562           https://bugzilla.gnome.org/show_bug.cgi?id=775698
7563
7564 2018-02-12 19:00:36 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7565
7566         * gst/vaapi/gstvaapipluginutil.c:
7567           plugins: update mesa's vendor string in whitelist
7568           Mesa has updated its VA-API Gallium driver vendor string:
7569           https://cgit.freedesktop.org/mesa/mesa/commit/?id=5db29d62ce1fefa3f2ee6e4a4688576fde4bde4a
7570           This patch tries to cover both, the old and the new one.
7571           https://bugzilla.gnome.org/show_bug.cgi?id=793386
7572
7573 2018-02-08 19:22:17 +0000  Tim-Philipp Müller <tim@centricular.com>
7574
7575         * meson.build:
7576           meson: make version numbers ints and fix int/string comparison
7577           WARNING: Trying to compare values of different types (str, int).
7578           The result of this is undefined and will become a hard error
7579           in a future Meson release.
7580
7581 2018-02-07 09:13:26 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7582
7583         * gst/vaapi/gstvaapipluginbase.c:
7584           plugins: handle vaapi allocator in allocation query
7585           In propose_allocation() if the numer of allocation params is zero, the
7586           system's allocator is added first, and lastly the native VA-API
7587           allocator.
7588           In decide_allocation(), the allocations params in query are travered,
7589           looking for a native VA-API allocator. If it is found, it is reused as
7590           src pad allocator. Otherwise, a new allocator is instantiated and
7591           appended in the query.
7592           https://bugzilla.gnome.org/show_bug.cgi?id=789476
7593
7594 2018-02-07 09:06:46 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7595
7596         * gst/vaapi/gstvaapivideomemory.h:
7597           vaapivideomemory: remove unused macro
7598           GST_VAAPI_VIDEO_ALLOCATOR_NAME was added in commit 5b11b8332 but it
7599           was never used, since the native VA-API allocator name has been
7600           GST_VAAPI_VIDEO_MEMORY_NAME.
7601           This patch removes GST_VAAPI_VIDEO_ALLOCATOR_NAME macro.
7602           https://bugzilla.gnome.org/show_bug.cgi?id=789476
7603
7604 2018-02-02 08:54:00 +0000  VaL Doroshchuk <valkov@yandex.ru>
7605
7606         * gst/vaapi/gstvaapisink.c:
7607           vaapisink: don't mask button events for foreign windows
7608           Don't subscribe to button press events when using a foreing window,
7609           because the user created window would trap those events, preveting the
7610           show of frames.
7611           https://bugzilla.gnome.org/show_bug.cgi?id=791615
7612
7613 2018-02-05 08:51:56 +0100  Tim-Philipp Müller <tim@centricular.com>
7614
7615         * configure.ac:
7616           autotools: use -fno-strict-aliasing where supported
7617           https://bugzilla.gnome.org/show_bug.cgi?id=769183
7618
7619 2018-01-30 20:38:37 +0000  Tim-Philipp Müller <tim@centricular.com>
7620
7621         * meson.build:
7622           meson: use -fno-strict-aliasing where supported
7623           https://bugzilla.gnome.org/show_bug.cgi?id=769183
7624
7625 2018-01-30 12:56:49 +0000  Philippe Normand <philn@igalia.com>
7626
7627         * gst/vaapi/gstvaapi.c:
7628           vaapi: add NULL-sentinel to kernel_names
7629           The array needs to be NULL-terminated according to the
7630           gst_plugin_add_dependency() documentation.
7631
7632 2018-01-18 18:53:29 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7633
7634         * gst/vaapi/gstvaapipostprocutil.c:
7635           vaapipostproc: remove spurious code
7636           This assignation is dead code, since gst_video_info_from_caps() set
7637           to 1 by default.
7638           https://bugzilla.gnome.org/show_bug.cgi?id=790149
7639
7640 2018-01-18 18:51:57 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7641
7642         * gst/vaapi/gstvaapipostprocutil.c:
7643           vaapipostproc: if no p-a-r in out caps define a range
7644           Instead of copying the pixel-aspect-ratio from the sink caps, define
7645           an open range for the src caps pixel-aspect-ratio. Later it will be
7646           defined.
7647           https://bugzilla.gnome.org/show_bug.cgi?id=790149
7648
7649 2018-01-18 13:10:59 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7650
7651         * gst/vaapi/gstvaapisink.c:
7652           vaapisink: check for display's color-balance properties
7653           Check for display's color-balance properties, available by the VA-API
7654           driver, before setting them.
7655           Also logs an info message of those unavailable properties.
7656           https://bugzilla.gnome.org/show_bug.cgi?id=792638
7657
7658 2018-01-17 17:30:50 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7659
7660         * gst/vaapi/gstvaapipluginbase.c:
7661           plugins: re-using buffer pool breaks renegotiation
7662           at propose_allocation() we should not reuse the proposed buffer,
7663           because it could break renegotiation.
7664           https://bugzilla.gnome.org/show_bug.cgi?id=792620
7665
7666 2018-01-17 17:26:24 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7667
7668         * gst/vaapi/gstvaapipluginbase.c:
7669           plugins: use g_clear_object() to unref sinkpad_buffer_pool
7670           https://bugzilla.gnome.org/show_bug.cgi?id=792620
7671
7672 2018-01-17 12:42:12 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7673
7674         * gst-libs/gst/vaapi/meson.build:
7675           build: meson: add missing GstGL dependency
7676
7677 2018-01-17 12:41:54 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7678
7679         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7680           libs: utils: egl: add missing guards for GstGL
7681
7682 2018-01-11 11:48:02 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7683
7684         * gst/vaapi/gstvaapipluginbase.c:
7685           plugins: remove dmabuf-import hack
7686           Remove the hack to check if an upstream element has enabled the
7687           property io-mode enabled as dmabuf-import.
7688           https://bugzilla.gnome.org/show_bug.cgi?id=792034
7689
7690 2017-12-01 15:04:35 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7691
7692         * gst-libs/gst/vaapi/Makefile.am:
7693         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7694         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
7695         * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
7696           libs: egl: utils: use eglGetPlatformDisplay()
7697           eglGetDisplay() is currently broken in Mesa for Wayland.  Also using
7698           eglGetDisplay() is rather fragile, and it is recommended to use
7699           eglGetPlatformDisplay() when possible.
7700           In order to do that, this patch uses the helper in GstGL. If
7701           gstreamer-vaapi is not compiled with GstGL support, eglGetDisplay()
7702           will be used.
7703           https://bugzilla.gnome.org/show_bug.cgi?id=790493
7704
7705 2017-12-08 14:46:02 +0100  Michael Tretter <m.tretter@pengutronix.de>
7706
7707         * gst/vaapi/gstvaapipostproc.c:
7708           vaapipostproc: lock ensure_filter with postproc_lock
7709           gst_vaapipostproc_ensure_filter might free the allowed_srcpad_caps
7710           and allowed_sinkpad_caps. This can race with copying these caps in
7711           gst_vaapipostproc_transform_caps and lead to segfaults.
7712           The gst_vaapipostproc_transform_caps function already locks
7713           postproc_lock before copying the caps. Make sure that calls to
7714           gst_vaapipostproc_ensure_filter also acquire this lock.
7715           https://bugzilla.gnome.org/show_bug.cgi?id=791404
7716
7717 2018-01-10 17:10:28 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7718
7719         * tests/test-filter.c:
7720           tests: test-filter: fix dereference before null check
7721           Null-checking op_info suggests that it may be null, but it has already
7722           been dereferenced on all paths leading to the check.
7723           There may be a null pointer dereference, or else the comparison
7724           against null is unnecessary.
7725
7726 2018-01-10 17:06:53 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7727
7728         * tests/y4mreader.c:
7729           tests: y4mreader: fix string state checkup
7730           str cannot be null in that moment, but it may be the end of string.
7731
7732 2018-01-10 16:59:56 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7733
7734         * tests/y4mreader.c:
7735           tests: y4mreader: use int for fgetc
7736           Assigning the return value of fgetc to char truncates its value.
7737           It will not be possible to distinguish between EOF and a valid
7738           character.
7739
7740 2018-01-10 16:48:07 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7741
7742         * tests/y4mreader.c:
7743           tests: y4mreader: fix incompatible cast
7744           Passed pointer in parse_int() are unsigned int (32 bits, unsigned) but
7745           they are dereferenced as a wider long (64 bits, signed). This may lead
7746           to memory corruption.
7747
7748 2017-12-19 16:01:10 +0000  Tim-Philipp Müller <tim@centricular.com>
7749
7750         * meson.build:
7751           meson: fix fallback for gstreamer-gl-1.0, it's now in -base
7752
7753 2017-12-14 14:53:27 +1100  Matthew Waters <matthew@centricular.com>
7754
7755         * common:
7756           Automatic update of common submodule
7757           From e8c7a71 to 3fa2c9e
7758
7759 2017-12-06 16:11:46 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
7760
7761         * gst/vaapi/gstvaapivideocontext.c:
7762           videoconvert: gst_element_post_message() is transfer full on msg
7763           For this reson we need not to unref the message, even if it failed.
7764
7765 2017-12-06 16:11:25 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.com>
7766
7767         * gst/vaapi/gstvaapivideocontext.c:
7768           Revert "vaapivideocontext: possible memleak when no bus attached"
7769           This reverts commit 0438a3e62660e64ed390b6bb83bfb560b91664aa.
7770
7771 2017-12-01 23:03:32 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7772
7773         * tests/elements/test-vaapicontext.c:
7774           test: vaapicontext: process have-context bus message
7775
7776 2017-11-29 18:29:45 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7777
7778         * tests/elements/test-vaapicontext.c:
7779           test: vaapicontext: app context is not persistent
7780
7781 2017-11-29 11:02:03 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7782
7783         * gst/vaapi/gstvaapipluginbase.c:
7784         * gst/vaapi/gstvaapivideocontext.c:
7785         * gst/vaapi/gstvaapivideocontext.h:
7786           vaapivideocontext: only vaapisink process app context
7787           gst.vaapi.app.Display context is made for applications that will
7788           provide the VA display and the native display to used by the
7789           pipeline, when are using vaapisink as overlay. There are no use
7790           case for encoders, decoders, neither for the postprocessor.
7791           In the case of the vaapisink, it shall query for gst.vaapi.Display
7792           upstream first, and then, if there is no reply,
7793           gst.vaapi.app.Display context will be posted in the bus for the
7794           application. If the application replies, a GstVaapiDisplay object
7795           is instantiated given the context info, otherwise a
7796           GstVaapiDisplay is created with the normal algorithm to guess the
7797           graphics platform. Either way, the instantiated GstVaapiDisplay
7798           is propagated among the pipeline and the have-message bus message.
7799           Also only vaapisink will process the gst.vaapi.app.Display, if
7800           and only if, it doesn't have a display already set. This is
7801           caused because if vaapisink is in a bin (playsink, for example)
7802           the need-context is posted twice, leading to an error state.
7803           https://bugzilla.gnome.org/show_bug.cgi?id=790999
7804
7805 2017-12-01 20:21:54 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7806
7807         * gst/vaapi/gstvaapivideocontext.c:
7808           vaapivideocontext: log the name of GstVaapiDisplay
7809           https://bugzilla.gnome.org/show_bug.cgi?id=790999
7810
7811 2017-11-30 14:24:43 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7812
7813         * gst/vaapi/gstvaapivideocontext.c:
7814           vaapivideocontext: possible memleak when no bus attached
7815           https://bugzilla.gnome.org/show_bug.cgi?id=790999
7816
7817 2017-11-27 13:04:24 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7818
7819         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
7820           libs: window: wayland: remove unused header include
7821           Remove wayland-client.h include since there is no exposed symbols from
7822           it.
7823
7824 2017-11-27 12:18:56 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7825
7826         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7827         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
7828           libs: encoder: h264,h265: guard rate control's macroblock
7829           macroblock parameter appear on VA-API 1.0.0. It should be guarded.
7830
7831 2017-11-27 20:17:55 +1100  Matthew Waters <matthew@centricular.com>
7832
7833         * common:
7834           Automatic update of common submodule
7835           From 3f4aa96 to e8c7a71
7836
7837 2016-07-29 14:58:49 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7838
7839         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7840           libs: encoder: h264: Add Hierarchical-B encode
7841           Frames are encoded as different layers. Frame in a particular
7842           layer will use pictures in lower or same layer as references.
7843           Which means decoder can drop the frames in upper layer but still
7844           decode lower layer frames.
7845           B-frames, except the one in top most layer, are reference frames.
7846           All the base layer frames are I or P.
7847           eg: with 3 temporal layers
7848           T3:             B1            B3              B5              B7
7849           T2:                   B2                              B6
7850           T1:   I0                                P4                        P8
7851           T1, T2, T3: Temporal Layers
7852           P1...Pn:   P-Frames:
7853           B1...Bn:   B-frames:
7854           T1: I0->P4 , P4->P8 etc..
7855           T2: I0--> B2 <-- P4
7856           T3: I0--> B1 <-- B2, B2 --> B3 <-- P4
7857           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7858           https://bugzilla.gnome.org/show_bug.cgi?id=788918
7859
7860 2016-07-28 18:33:23 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7861
7862         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7863           libs: encoder: h264: Add Hierarchical-P encode
7864           Frames are encoded as different layers. A frame in a particular
7865           layer will use pictures in lower or same layer as references.
7866           Which means decoder can drop the frames in upper layer but still
7867           decode lower layer frames.
7868           eg: with 3 temporal layers
7869           T3:             P1            P3              P5              P7
7870           T2:                   P2                              P6
7871           T1:   P0                                P4                        P8
7872           T1, T2, T3: Temporal Layers
7873           P1...pn:   P-Frames:
7874           P0->P1 , P0->P2, P2->P3, P0->P4......repeat
7875           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7876           https://bugzilla.gnome.org/show_bug.cgi?id=788918
7877
7878 2016-07-28 16:51:28 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7879
7880         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7881           libs: encoder: h264: Fix frame_num generation
7882           The frame_num generation was not correctly implemented.
7883           According to h264 spec, frame_num should get incremented
7884           for each frame if previous frame is a referece frame.
7885           For eg: IPBPB sequece should have the frame numbers 0,1,2,2,3
7886           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7887           https://bugzilla.gnome.org/show_bug.cgi?id=788918
7888
7889 2016-07-28 15:53:48 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7890
7891         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7892         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
7893           libs: encoder: h264: Add new property "prediction-type"
7894           Adds new property "prediction-type" to select different reference
7895           picture selection modes like hierarchical-p, hierarchical-b etc.
7896           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7897           https://bugzilla.gnome.org/show_bug.cgi?id=788918
7898
7899 2016-07-28 15:12:05 +0300  XuGuangxin <guangxin.xu@intel.com>
7900
7901         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7902         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
7903           libs: encoder: h264: Add machinery for implementing hierarchical-prediction
7904           Adds some basic building blocks to ease the implementation
7905           of hierarchical prediction modes.
7906           -- add an utility method to find temporal level of each frame
7907           -- define max_ref_frame count based on temporal level count
7908           -- add temporal_level_div[] for finding temporal level each frame
7909           to be encoded.
7910           -- find ip_period based on temporal level count
7911           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7912           https://bugzilla.gnome.org/show_bug.cgi?id=788918
7913
7914 2016-07-28 14:17:53 +0300  XuGuangxin <guangxin.xu@intel.com>
7915
7916         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
7917         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
7918           libs: encoder: h264: Add property "temporal-levels"
7919           Adds new property "temporal-levels" to select the number of
7920           temporal levels to be included in the encoded stream.
7921           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7922           https://bugzilla.gnome.org/show_bug.cgi?id=788918
7923
7924 2016-07-27 16:41:01 +0300  XuGuangxin <guangxin.xu@intel.com>
7925
7926         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
7927           libs: encoder: objects: Add a reference flag
7928           We can have p-frame as non-ref and also b-frame as ref
7929           which are not supported yet. Reference flag
7930           is the first machinery needed for more advanced
7931           reference picture selection modes.
7932           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
7933           https://bugzilla.gnome.org/show_bug.cgi?id=788918
7934
7935 2017-11-02 13:21:34 +0100  Daniel van Vugt <daniel.van.vugt@canonical.com>
7936
7937         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
7938           libs: surface: egl: add comment
7939           Add a warning comment when using old intel-vaapi-drivers (>1.8.4),
7940           where the creation of surfaces from GEM fd may fail.
7941           https://bugzilla.gnome.org/show_bug.cgi?id=773453
7942
7943 2017-10-10 13:38:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7944
7945         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
7946         * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
7947         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
7948           libs: display: egl: add gst_vaapi_display_egl_set_current_display()
7949           Adds a new function that changes the internal EGL display to the
7950           current one (eglGetCurrentDisplay()) and sets the current context
7951           too (eglGetCurrentContext()).
7952           This new function is called by gst_vaapi_texture_egl_create() updating
7953           the GstVaapiDisplayEGL with the current EGL display.
7954           https://bugzilla.gnome.org/show_bug.cgi?id=773453
7955
7956 2017-10-09 16:02:11 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7957
7958         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
7959           libs: texture: egl: update EGL display and context
7960           It is required to use the context of the calling thread when wrapping
7961           a foreign texture. According the documentation of
7962           GstVideoGLTextureUploadMeta:
7963           "The caller of gst_video_gl_texture_upload_meta_upload() must
7964           have OpenGL set up and call this from a thread where it is valid
7965           to upload something to an OpenGL texture."
7966           This patch updates the EGL display and context in GstVaapiDisplay
7967           instance to the one used by te renderer that uploads the texture.
7968           Original-patch-by: Daniel van Vugt <daniel.van.vugt@canonical.com>
7969           https://bugzilla.gnome.org/show_bug.cgi?id=773453
7970
7971 2017-10-10 19:53:04 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7972
7973         * gst/vaapi/gstvaapipluginbase.c:
7974           plugins: centralize assignation of GL objects
7975           Add plugin_set_gst_gl() where the GstGL objects are assigned.
7976           https://bugzilla.gnome.org/show_bug.cgi?id=773453
7977
7978 2017-10-10 19:13:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7979
7980         * gst/vaapi/gstvaapipluginbase.c:
7981           plugins: set GL objects if ensured
7982           Only set the GL display and GL other context if they are ensured.
7983           https://bugzilla.gnome.org/show_bug.cgi?id=773453
7984
7985 2017-10-10 17:14:15 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7986
7987         * gst/vaapi/gstvaapipluginbase.c:
7988           plugins: set GL objects if context is handled
7989           Only set the GL display and GL other context if they are extracted
7990           correctly from the gstreamer's context.
7991           https://bugzilla.gnome.org/show_bug.cgi?id=773453
7992
7993 2017-10-10 19:57:45 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
7994
7995         * gst/vaapi/gstvaapipluginbase.c:
7996           plugins: fix memory leak when GL context is created
7997           When the GL display and context are created inside an VAAPI element
7998           the created GL context is leaked.
7999           https://bugzilla.gnome.org/show_bug.cgi?id=773453
8000
8001 2017-10-10 14:01:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8002
8003         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8004           libs: display: egl: free leaked memory
8005           The EGL VAAPI display forgot to release the egl display, context and
8006           proxied VAAPI display.
8007           https://bugzilla.gnome.org/show_bug.cgi?id=773453
8008
8009 2017-10-05 19:25:08 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8010
8011         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
8012           libs: texture: egl: code style
8013           https://bugzilla.gnome.org/show_bug.cgi?id=773453
8014
8015 2017-10-04 13:51:23 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8016
8017         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
8018           libs: surface: egl: error message if no extension
8019           Instead of silently fail to export the image if there is not available
8020           the EGL_MESA_drm_image, log an error message. Also a code refactoring
8021           was done.
8022           https://bugzilla.gnome.org/show_bug.cgi?id=773453
8023
8024 2017-10-31 13:10:50 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8025
8026         * gst/vaapi/gstvaapipluginbase.c:
8027           plugins: direct rendering on memory:VASurface
8028           As buffers negotiated with memory:VASurface caps feature can also be
8029           mapped, they can also be configured to use VA derived images, in other
8030           words "direct rendering".
8031           Also, because of the changes in dmabuf allocator as default allocator,
8032           the code for configuring the direct rendering was not clear.
8033           This patch cleans up the code and enables direct rendering when the
8034           environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING is defined,
8035           even then the memory:VASurface cap feature is negotiated.
8036           https://bugzilla.gnome.org/show_bug.cgi?id=786054
8037
8038 2017-10-04 11:54:31 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8039
8040         * gst/vaapi/gstvaapipluginbase.c:
8041         * gst/vaapi/gstvaapipluginutil.c:
8042           plugins: only dmabuf on srcpad if downstream
8043           Set if source pad can handle dmabuf only if the GstGL context comes
8044           from downstream.
8045           It is possible to know that at two moments:
8046           1\ In the case of GstGLTextureUpload caps feature is negotiated and
8047           downstream pool reports back gst.gl.GstGLContext.
8048           2\ When GstGLContext is found as GstContext from dowstream.
8049           https://bugzilla.gnome.org/show_bug.cgi?id=788503
8050
8051 2017-10-04 11:52:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8052
8053         * gst/vaapi/gstvaapivideocontext.c:
8054           vaapivideocontext: add inline documentation
8055           Document function gst_vaapi_find_gl_local_context().
8056           https://bugzilla.gnome.org/show_bug.cgi?id=788503
8057
8058 2017-10-04 11:50:25 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8059
8060         * gst/vaapi/gstvaapipluginutil.c:
8061         * gst/vaapi/gstvaapivideocontext.c:
8062         * gst/vaapi/gstvaapivideocontext.h:
8063           vaapivideocontext: return the direction of gl context
8064           In function gst_vaapi_find_gl_context() add a direction parameter to
8065           return back the direction where the GstGL context was found.
8066           This is going to be useful when checking if downstream can import
8067           dmabuf-based buffers.
8068           https://bugzilla.gnome.org/show_bug.cgi?id=788503
8069
8070 2017-10-04 08:30:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8071
8072         * gst/vaapi/gstvaapipluginbase.c:
8073         * gst/vaapi/gstvaapipluginbase.h:
8074           plugins: add gst_vaapi_plugin_base_set_srcpad_can_dmabuf()
8075           This patch refactors the code by adding the function
8076           vaapi_plugin_base_set_srcpad_can_dmabuf(), it determines if the passed
8077           GstGLContext can handle dmabuf-based buffers.
8078           The function is exposed publicly since it is intended to be used later
8079           at GstVaapiDisplay instantiation.
8080           https://bugzilla.gnome.org/show_bug.cgi?id=788503
8081
8082 2017-10-20 12:37:15 +0200  Hyunjun Ko <zzoon@igalia.com>
8083
8084         * gst/vaapi/gstvaapiencode.c:
8085           vaapiencode: allow to set property on runtime
8086           Tis patch, allows some properties that we want to be set on
8087           runtime. (eg. bitrate)
8088           Note that all properties are under control by num_codedbuf_queued.
8089           https://bugzilla.gnome.org/show_bug.cgi?id=786321
8090
8091 2017-09-15 15:38:18 +0900  Hyunjun Ko <zzoon@igalia.com>
8092
8093         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8094           libs: encoder: allow to set bitrate on runtime
8095           In case of streaming, controlling bitrate dynamically for encoder might be
8096           important to manage quality of the streaming.
8097           This patch is to support such a scenario.
8098           https://bugzilla.gnome.org/show_bug.cgi?id=786321
8099
8100 2017-10-10 11:35:24 +0300  Sebastian Dröge <sebastian@centricular.com>
8101
8102         * gst/vaapi/gstvaapi.c:
8103         * gst/vaapi/gstvaapi.h:
8104         * gst/vaapi/gstvaapidecodebin.c:
8105           vaapidecodebin: Register element if no VPP support is available too
8106           VPP support is only needed for advanced deinterlacing, which is not
8107           enabled by default either. Error out if it is selected but VPP is not
8108           supported, and otherwise just work without VPP support.
8109           https://bugzilla.gnome.org/show_bug.cgi?id=788758
8110
8111 2017-10-16 11:57:16 +0200  Thibault Saunier <thibault.saunier@osg.samsung.com>
8112
8113         * gst/vaapi/gstvaapipluginutil.c:
8114           Avoid infinite loop when vaapi_create_display fails
8115           Which might be the case when using, for example, xvfb.
8116
8117 2017-10-02 18:53:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8118
8119         * gst-libs/gst/vaapi/gstvaapiutils.c:
8120           libs: utils: log warn if display fail
8121           gstreamer-vaapi initializes the display by trial-and-error, thus
8122           logging an error message if the display initialisation fails the user
8123           may be weary of the error message in the screen, if using VA-API 1.0
8124           This commit set the VA error log handler to GStreamer warning level
8125           while calling vaInitialize() and set it to error after that.
8126           https://bugzilla.gnome.org/show_bug.cgi?id=783169
8127
8128 2017-09-29 20:05:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8129
8130         * gst/vaapi/gstvaapipluginutil.c:
8131           plugins: try to create test display in order
8132           When creating the test display for querying capabilites, it try in
8133           certain order: DRM, Wayland and finally X11. GLX nor EGL are tried
8134           since they are either composited with X11 or Wayland.
8135           The reason for this is to reduce the posibility of failure that could
8136           blacklist the plugin.
8137           https://bugzilla.gnome.org/show_bug.cgi?id=782212
8138
8139 2017-09-29 15:07:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8140
8141         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8142         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8143           libs: display: delay getting screen resolution
8144           Instead of extracting the screen resolution at GstVaapiDisplay
8145           creation, this patch delay it until the screen size is requested for
8146           first time.
8147           https://bugzilla.gnome.org/show_bug.cgi?id=782212
8148
8149 2017-09-28 18:58:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8150
8151         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
8152           libs: display: egl: avoid two vaDisplay instantiates
8153           GstVaapiDisplayEGL is a wrapper of another GstVaapiDisplay, either X11
8154           or Wayland. Nonetheless it created another vaDisplay for it, instead
8155           of using the wrapped one.
8156           This patch enables the reuse of the wrapped vaDisplay avoiding
8157           instantiating two.
8158           https://bugzilla.gnome.org/show_bug.cgi?id=782212
8159
8160 2017-09-28 17:45:00 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8161
8162         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8163         * gst-libs/gst/vaapi/gstvaapidisplay.h:
8164         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
8165         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
8166         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
8167           libs: display: remove display_type from display info
8168           Since it's no required to pass the display type in the display info,
8169           the structure member is removed.
8170           https://bugzilla.gnome.org/show_bug.cgi?id=782212
8171
8172 2017-09-28 17:35:01 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8173
8174         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8175         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8176           libs: display: remove display_type member
8177           It is not used any more since GstVaapiDisplay was ported as a
8178           GstObject-based. This information is part of the class information.
8179           https://bugzilla.gnome.org/show_bug.cgi?id=782212
8180
8181 2017-09-28 16:12:23 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8182
8183         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8184         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
8185           libs: display: remove parent member
8186           Parent was a crumb left from display cache.
8187           https://bugzilla.gnome.org/show_bug.cgi?id=782212
8188
8189 2017-10-03 13:06:33 +0200  Sebastian Dröge <sebastian@centricular.com>
8190
8191         * gst/vaapi/gstvaapi.c:
8192           vaapi: Also register vaapipostproc without VPP support
8193           It can still do simple deinterlacing then.
8194
8195 2017-10-03 10:51:06 +0200  Sebastian Dröge <sebastian@centricular.com>
8196
8197         * gst/vaapi/gstvaapipostproc.c:
8198           vaapipostproc: Allow running without VPP support
8199           We returned FALSE from ::start() if VPP support is not available, but it
8200           is only really needed for complex filters and during transform we check
8201           for that. For simple deinterlacing it is not needed.
8202
8203 2017-09-27 18:35:20 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8204
8205         * gst/vaapi/gstvaapipostproc.c:
8206           vaapipostproc: use scoped variable for return value
8207           Instead of reusing a parameter variable for the return value of
8208           gst_vaapipostproc_transform_caps(), this patch uses the function
8209           scoped pointer. Thus, the code is cleaner.
8210           https://bugzilla.gnome.org/show_bug.cgi?id=785706
8211
8212 2017-09-27 18:32:03 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8213
8214         * gst/vaapi/gstvaapipostproc.c:
8215           vaapipostproc: removed unused parameter
8216           Removed caps parameter from gst_vaapipostproc_transform_caps_impl()
8217           helper function since the it is not used.
8218           https://bugzilla.gnome.org/show_bug.cgi?id=785706
8219
8220 2017-09-27 13:32:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8221
8222         * gst/vaapi/gstvaapipostproc.c:
8223           vaapipostproc: use scoped variable for return value
8224           Instead of reusing a parameter variable for the return value of
8225           gst_vaapipostproc_fixate_caps(), this patch uses the function scoped
8226           pointer. Thus, the code is cleaner.
8227           https://bugzilla.gnome.org/show_bug.cgi?id=785706
8228
8229 2017-09-27 11:27:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8230
8231         * gst/vaapi/gstvaapipluginutil.h:
8232           plugins: memory:DMABuf only handles planar formats
8233           When glimagesink negotiates the caps feature memory:DMABuf the
8234           exported dmabufs buffers with NV12 format are not well rendered, thus
8235           setting only planar.
8236           https://bugzilla.gnome.org/show_bug.cgi?id=788229
8237
8238 2017-09-25 17:04:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8239
8240         * gst/vaapi/gstvaapiencode.c:
8241           vaapiencode: flush pending frames before set format
8242           Flush pending frames, if any, in the internal encorder, before setting
8243           the new negotiated format.
8244           https://bugzilla.gnome.org/show_bug.cgi?id=786173
8245
8246 2017-09-25 15:50:19 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8247
8248         * gst/vaapi/gstvaapidecode.c:
8249           vaapidecode: drain pending frames before set format
8250           Drain pending frames, if any, in the internal decoder before setting
8251           the new negotiated format.
8252           https://bugzilla.gnome.org/show_bug.cgi?id=786173
8253
8254 2017-09-22 19:35:04 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8255
8256         * tests/test-display.c:
8257           tests: display: use GObject getter
8258           Instead of using the gst_vaapi_display_get_property(), this patch
8259           replaces it with g_object_get_property() to dump the available VA
8260           display properties.
8261           https://bugzilla.gnome.org/show_bug.cgi?id=788058
8262
8263 2017-09-22 19:25:20 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8264
8265         * gst/vaapi/gstvaapisink.c:
8266           vaapisink: use GObject setter and getter
8267           Instead of using gst_vaapi_display_set_property() or
8268           gst_vaapi_display_get_property(), this patch set replace it usage
8269           with g_object_set() or g_object_get().
8270           Also the internal helper cb_set_value() is removed since it is not
8271           used anymore.
8272           https://bugzilla.gnome.org/show_bug.cgi?id=788058
8273
8274 2017-09-22 18:59:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8275
8276         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8277           libs: display: initialize value if they are not yet
8278           This is a difference between the GObject API and the GstVaapi one: the
8279           GValue passed to get a property value, in GObject has to be
8280           initialized with g_value_init(), but in GstVaapi is has not.
8281           In order to overcome this mismatch, this patch call g_value_init()
8282           internally only in the passed one is not already initialized.
8283           https://bugzilla.gnome.org/show_bug.cgi?id=788058
8284
8285 2017-09-22 17:04:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8286
8287         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8288           libs: display: optimize properties setters and getters
8289           Shuffled some code to avoid to find the properties descriptor in the
8290           array twice, adding the internal functions _set_property() and
8291           _get_property().
8292           https://bugzilla.gnome.org/show_bug.cgi?id=788058
8293
8294 2017-09-22 16:29:02 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8295
8296         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8297           libs: display: install properties in class
8298           Install the properties in the class as a normal GObject. Implement
8299           set_property() and get_property() vmethods.
8300           https://bugzilla.gnome.org/show_bug.cgi?id=788058
8301
8302 2017-09-22 15:16:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8303
8304         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8305           libs: display: remove gst_vaapi_display_properties_init()
8306           Remove gst_vaapi_display_properties_init() since it can be unrolled in
8307           gst_vaapi_display_class_init()
8308           https://bugzilla.gnome.org/show_bug.cgi?id=788058
8309
8310 2017-09-22 15:12:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8311
8312         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8313           libs: display: remove libgstvaapi_init_once()
8314           It is not required since it can be unrolled in
8315           gst_vaapi_display_class_init()
8316           https://bugzilla.gnome.org/show_bug.cgi?id=788058
8317
8318 2017-09-22 17:50:15 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8319
8320         * tests/test-display.c:
8321           tests: test-display: remove display cache tests
8322           Since commit ec3e10f6, display cache was removed. This patch removes
8323           this leftovers in the display test.
8324
8325 2017-09-18 14:29:55 +0900  Hyunjun Ko <zzoon@igalia.com>
8326
8327         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8328         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
8329           libs: decoder: h264/h265: decode codec data only if opened
8330           Fixes regression introduced by commit 2eb2b26a.
8331           There is a use case when the decoder set the src caps and immediatly
8332           tries to process the media codec_data, this happens before decoder is
8333           even opened, thus priv->parser is not instantiated yet.
8334           https://bugzilla.gnome.org/show_bug.cgi?id=787818
8335
8336 2017-09-18 19:11:45 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8337
8338         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8339         * gst-libs/gst/vaapi/gstvaapiencoder.h:
8340         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8341         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8342         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8343           libs: encoder: change mbbrc from uint to enum
8344           Instead of handling the macroblock bitrate control as a integer, this
8345           patch changes it as a enum, which is more self documented in the
8346           GStreamer elements.
8347           https://bugzilla.gnome.org/show_bug.cgi?id=787855
8348
8349 2017-09-18 13:55:49 +1000  Jan Schmidt <jan@centricular.com>
8350
8351         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8352           Fix a typo in the prop string for compliance-mode
8353
8354 2017-09-15 18:31:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8355
8356         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8357           libs: encoder: don't unref properties
8358           This patch fixes a regression introduced in commit 148f867c, since the
8359           props variable is set to object's member variable
8360           encoder->properties. And it is set in the instance initialization,
8361           thus it will not be leaked.
8362           https://bugzilla.gnome.org/show_bug.cgi?id=787733
8363
8364 2017-09-15 15:14:47 +0900  Hyunjun Ko <zzoon@igalia.com>
8365
8366         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8367         * gst/vaapi/gstvaapiencode.c:
8368           vaapiencode/libs: encoder: fix leaks of properties
8369           https://bugzilla.gnome.org/show_bug.cgi?id=786321
8370
8371 2017-08-24 21:51:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8372
8373         * gst-libs/gst/vaapi/gstvaapidecoder.c:
8374           libs: decoder: at update_caps() decode codec_data
8375           When updating the caps in decoder, if the caps has codec_data (avC
8376           format), it has to be parsed to update the state of the decoder.
8377           https://bugzilla.gnome.org/show_bug.cgi?id=786173
8378
8379 2017-09-13 15:44:32 +0900  Hyunjun Ko <zzoon@igalia.com>
8380
8381         * gst-libs/gst/vaapi/gstvaapicontext.c:
8382           libs: context: fix wrong counter of the array of attributes
8383           The counter value passed to vaCreateConfig is always +1.
8384           This is a regression caused by commit e42ec3ad.
8385           The present patch fixes wrong counting of the array of attributes.
8386           https://bugzilla.gnome.org/show_bug.cgi?id=787613
8387
8388 2017-09-13 12:23:42 +0900  Hyunjun Ko <zzoon@igalia.com>
8389
8390         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8391         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8392           libs: encoder: h265: support I/P/B QP setting seperatedly
8393           Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8394           frames
8395           and set slice_qp_delta for each frame according to the value provided.
8396           https://bugzilla.gnome.org/show_bug.cgi?id=785923
8397
8398 2017-09-13 12:22:07 +0900  Hyunjun Ko <zzoon@igalia.com>
8399
8400         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8401         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8402           libs: encoder: h264: support I/P/B QP setting seperatedly
8403           Creates 2 properties, qp-ip and qp-ib for setting different QP for P/B
8404           frames
8405           and set slice_qp_delta for each frame according to the value provided.
8406           In addition, remove the limitation of (<= 4) when setting
8407           slice_qp_delta.
8408           https://bugzilla.gnome.org/show_bug.cgi?id=785923
8409
8410 2017-09-13 12:15:57 +0900  Hyunjun Ko <zzoon@igalia.com>
8411
8412         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8413         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8414           libs: encoder: h264/h265: keep min_qp as is unless it's over init_qp
8415           Creates new variable for QP for I frame and keep it at configuration and
8416           use this for pic_init_qp and slice_qp_delta setting.
8417           Since changing min qp doesn't make sense, keep min qp as is.
8418           https://bugzilla.gnome.org/show_bug.cgi?id=785923
8419
8420 2017-09-13 12:09:45 +0900  Hyunjun Ko <zzoon@igalia.com>
8421
8422         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8423         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8424           libs: encoder: h265: Add mbbrc property
8425           This property supports Macroblock level Bitrate Control as the
8426           following (same as h264 encoder):
8427           0: auto
8428           1: on
8429           2: off
8430           https://bugzilla.gnome.org/show_bug.cgi?id=785917
8431
8432 2017-09-13 12:02:53 +0900  Hyunjun Ko <zzoon@igalia.com>
8433
8434         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8435         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8436           libs: encoder: h264: Add mbbrc property
8437           This property supports Macroblock level Bitrate Control as the
8438           following:
8439           0: auto
8440           1: on
8441           2: off
8442           https://bugzilla.gnome.org/show_bug.cgi?id=785917
8443
8444 2017-09-13 11:39:09 +0900  Hyunjun Ko <zzoon@igalia.com>
8445
8446         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8447           libs: encoder: h265: add multi reference support
8448           This is doing the same as h264 encoder as the following:
8449           Using num_ref_frames provided and the result of the Query
8450           VAConfigAttribEncMaxRefFrames, it determines the size of reference list
8451           and perform encoding with multi reference frames as the following:
8452           1\ The num_ref_frames is being considered as the number of
8453           reference picture list0
8454           2\ Encoder adds 1 reference frame more to the reference picture list1
8455           internally if b-frame encoding.
8456           3\ If num_ref_frames is bigger than the number of refrence frames
8457           supported in the driver, it will be lowered.
8458           Also this patch includes:
8459           - Set num_negative_pics and num_positive_pics according to the number of
8460           refs.
8461           - Set delta_poc according to the number of refs.
8462           - Increase max_dec_pic_buffering according to the number of refs
8463           - Change max_num_reorder_pics according to num of bframes
8464           https://bugzilla.gnome.org/show_bug.cgi?id=783804
8465
8466 2017-09-13 11:37:33 +0900  Hyunjun Ko <zzoon@igalia.com>
8467
8468         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8469         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8470           libs: encoder: h265: add refs property
8471           Users can provide the number of reference frame by this property,
8472           which is exaclty same as h264.
8473           The value of the property will be considered as the number of
8474           reference picture list0 and will add 1 reference frame more to the
8475           reference picture list1 internally if b-frame encoding.
8476           If the value provided is bigger than the number of refrence frames
8477           supported in the driver, it will be lowered.
8478           The maximum value is aligned to the value of the driver supported now.
8479           https://bugzilla.gnome.org/show_bug.cgi?id=783804
8480
8481 2017-09-13 11:17:26 +0900  Hyunjun Ko <zzoon@igalia.com>
8482
8483         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8484         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8485           libs: encoder: h264/5: determine num_ref_idx_active_override_flag according to reference list
8486           Follows the specification as below:
8487           7.4.7.1 in Rec. ITU-T H.265 v4 (12/2016)
8488           num_ref_idx_active_override_flag equal to 1 specifies that the syntax
8489           element num_ref_idx_l0_active_minus1 is present for P and B slices and
8490           that the syntax element num_ref_idx_l1_active_minus1 is present for B
8491           slices.
8492           num_ref_idx_active_override_flag equal to 0 specifies that the syntax
8493           elements num_ref_idx_l0_active_minus1 and num_ref_idx_l1_active_minus1
8494           are not present.
8495           https://bugzilla.gnome.org/show_bug.cgi?id=783804
8496
8497 2017-09-13 11:06:20 +0900  Hyunjun Ko <zzoon@igalia.com>
8498
8499         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8500           libs: encoder: h265: keep idr_period equal to keyframe period
8501           Remove FIXME code, which makes previous assignation spurious.
8502           This also means to make idr_period equal to keyframe period,
8503           which is same as h264 encoder.
8504           https://bugzilla.gnome.org/show_bug.cgi?id=783804
8505
8506 2017-09-06 14:03:25 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
8507
8508         * gst/vaapi/gstvaapipluginbase.c:
8509           Request minimum buffer even if need_pool is FALSE
8510           When tee is used, it will not request a pool, but still it wants to
8511           know how many buffers are required.
8512           https://bugzilla.gnome.org/show_bug.cgi?id=730758
8513
8514 2017-09-05 10:58:57 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
8515
8516         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8517           libs: encoder: h264_fei: VA-API 1.0 compat
8518           Use VA_ENC_PACKED_HEADER_H264_SEI compat macro for VA-API 1.0
8519           compatibility.
8520           https://bugzilla.gnome.org/show_bug.cgi?id=787322
8521           Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
8522
8523 2017-09-01 13:48:01 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8524
8525         * gst/vaapi/gstvaapisink.c:
8526           vaapisink: Fix rendering in drm display
8527           Make sure vaapisink create a va surface backed buffer pool and all
8528           required attributes get assigned correctly for drm display type.
8529           This is needed to make the below pipeline working:
8530           gst-launch-1.0 filesrc location= raw_video.mov ! videoparse format=uyvy
8531           width=320 height=240 framerate=30/1 ! vaapisink display=drm
8532           https://bugzilla.gnome.org/show_bug.cgi?id=786954
8533
8534 2017-08-09 18:46:09 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8535
8536         * tests/Makefile.am:
8537         * tests/test-fei-enc-in.c:
8538         * tests/test-fei-enc-out.c:
8539           FEI: Add test applications to showcase fei use case
8540           test-fei-enc-out: A simple fei encoding application to output mv, mbcode and distortion
8541           eg:
8542           ./test-fei-enc-out -i sample_320x240.nv12 -w 320 -h 240 -o out.264 -v mv.out -d out.dist -m out.mbcode -e 1
8543           test-fei-enc-in: A simple fei encoding application for testing input fei buffers
8544           eg:
8545           ./test-fei-enc-in -c h264 -o out.264 -e 4 -q 1 sample_i420.y4m
8546           Fixme: Running test-fei-enc-in in PAK mode with mv and mbcode input buffers
8547           from saved files is still not working
8548           People contributed:
8549           Wang, Yi <yi.a.wang@intel.com>
8550           Leilei <leilei.shang@intel.com>
8551           Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8552           xiaominc <xiaomin.chen@intel.com>
8553           Li, Jing B <jing.b.li@intel.com>
8554           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8555           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8556
8557 2017-08-09 18:36:13 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8558
8559         * gst/vaapi/Makefile.am:
8560         * gst/vaapi/gstvaapi.c:
8561         * gst/vaapi/gstvaapiencode_h264_fei.c:
8562         * gst/vaapi/gstvaapiencode_h264_fei.h:
8563           FEI: plugin: Add vaapih264feienc element
8564           A new FEI based encoder element for h264 is added: vaapih264feienc
8565           FEI is a an extension to VA-API which is providing low level
8566           advanced control over different stages of encoding.
8567           Extending vaapih264enc with fei support is possible, but it will
8568           make the code too much complicated and will be difficult
8569           to debug. So adding the new encoder element, but keeping
8570           the rank as 0 , vaapih264enc will stay as the primary
8571           encoder for normal use cases.
8572           The vaaih264feienc is mainly useful for customers who want to play
8573           with MotionVectors and Macroblock Predictions. Also user can
8574           do one stage of encoding(eg: only the Motion Vector Calculation)
8575           in software and offload trasformation/entroy-coding etc to
8576           Hardware (which is what PAK module is doing) using FEI element.
8577           vaapih264feienc can work in  different modes using fei-mode properoty
8578           eg: gst-launch-1.0 videotestsrc ! vaapih264feienc fei-mode=ENC+PAK ! filesink location=sample.264
8579           Important Note: ENC only mode won't produce any encoded data which is expected.
8580           But ENC alwys requires the output of PAK in order to do the inter-prediction
8581           over reconstructed frames.
8582           Similary PAK mode alway requires MV and MBCode as input, so unless there is an
8583           upstream element providing those buffers, PAK only won't work as expected.
8584           In a nutshell, ENC_PAK and the ENC+PAK modes are the only options we can verify
8585           with vaapih264feienc. But ideally, EN+PAK mode verification is enough to make sure
8586           that ENC and PAK are working as expected since ENC+PAK mode always invoke ENC and PAK
8587           separately in vaapih264feienc.
8588           People contributed:
8589           Wang, Yi <yi.a.wang@intel.com>
8590           Leilei <leilei.shang@intel.com>
8591           Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8592           xiaominc <xiaomin.chen@intel.com>
8593           Li, Jing B <jing.b.li@intel.com>
8594           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8595           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8596           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8597
8598 2017-08-09 18:32:13 -0700  Yi A Wang <yi.a.wang@intel.com>
8599
8600         * gst/vaapi/gstvaapiencode.c:
8601         * gst/vaapi/gstvaapiencode.h:
8602           FEI: plugin: Add virtual methods to base encode
8603           Two new virtual methods are added to gstvaapiencode.
8604           load_control_data():  load the FEI input buffers set by the upstream elements
8605           save_stats_to_meta(): save the FEI output buffers to Meta for downnstream elements
8606           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8607           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8608           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8609
8610 2017-08-09 18:26:57 -0700  Yi A Wang <yi.a.wang@intel.com>
8611
8612         * gst/vaapi/Makefile.am:
8613         * gst/vaapi/gstvaapifeivideometa.c:
8614         * gst/vaapi/gstvaapifeivideometa.h:
8615           FEI: plugin: Add fei specific video meta
8616           GstVaapiFeiVideoMeta holds the below fei codec objects:
8617           GstVaapiEncFeiMbCode
8618           GstVaapiEncFeiMv
8619           GstVaapiEncFeiMvPredictor
8620           GstVaapiEncFeiMbControl
8621           GstVaapiEncFeiQp
8622           GstVaapiEncFeiDistortion
8623           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8624           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8625           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8626
8627 2017-08-09 18:19:06 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8628
8629         * gst-libs/gst/vaapi/Makefile.am:
8630         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.c:
8631         * gst-libs/gst/vaapi/gstvaapiencoder_h264_fei.h:
8632         * gst-libs/gst/vaapi/gstvaapifeienc_h264.c:
8633         * gst-libs/gst/vaapi/gstvaapifeienc_h264.h:
8634         * gst-libs/gst/vaapi/gstvaapifeipak_h264.c:
8635         * gst-libs/gst/vaapi/gstvaapifeipak_h264.h:
8636           FEI: libs: Add FEI encoder
8637           Adding FEI encoder to core lib.
8638           The code is splitted into three session:
8639           1: gstvaapiencoder_h264_fei.{h,c}
8640           This is the replica of gstvaapiencoder_h264.{c,h} but with FEI.
8641           All the modes ENC, PAK and ENC_PAK are running based
8642           the code in these files.
8643           2: gstvaapifeienc_h264.{h,c}
8644           Abstract implementation intended for ENC (only VME) operation.
8645           3: gstvaapifeipak_h264.{h,c}
8646           Abstrct implementation intended for PAK (only the PAK module)
8647           Right now ENC_PAK, ENC and PAK are running based on code
8648           in gstvaapiencoder_h264_fei.{h,c}. The abstract implementations
8649           in gstvaapifeienc_h264.{h,c} and gstvaapifeipak_h264.{h,c} are
8650           needed if user request for ENC+PAK mode operation.
8651           ENC+PAK: Here we need to invoke two sequence of
8652           vaBeginPicture/vaRenderPicutre/vaEndPicture for each frame,
8653           first for the ENC only and the second for PAK only.
8654           Each mode associated with separate context ,but same pool of surfaces are
8655           shared between the modes.
8656           This is more useful once we have custom BRC algorithms.
8657           Other Contributors:
8658           Wang, Yi <yi.a.wang@intel.com>
8659           Leilei <leilei.shang@intel.com>
8660           Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8661           xiaominc <xiaomin.chen@intel.com>
8662           Li, Jing B <jing.b.li@intel.com>
8663           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8664           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8665
8666 2017-08-09 17:54:27 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8667
8668         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
8669         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
8670           FEI: libs: Add fei codec objects to GstVaapiEncPicture
8671           All the codec objects(vaapi buffers) supposed to be
8672           submited in vaRenderPicutre are associated with a GstVaapiEncPicture
8673           for each frame, follow the same design for FEI too.
8674           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8675           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8676
8677 2017-08-09 16:05:13 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8678
8679         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
8680         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.h:
8681         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy_priv.h:
8682           FEI: libs: Add fei codec objects in codedbufferproxy
8683           MbCode, MV and Distortion buffers (fei codec objects)
8684           can be treated as output of different fei modes based user request.
8685           For eg: MbCode and MV are the output of ENC only. MbCode, MV and Dist
8686           can be dumped as output in ENC_PAK mode for analysis purpose.
8687           So treating them as a part of CodedBufferProxy too.
8688           Here we avoided Qp, MbControl and MvPredictor codec objects since
8689           there is no practical use case of treating them as "output buffers".
8690           Other contributors:
8691           Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8692           xiaominc <xiaomin.chen@intel.com>
8693           Leilei <leilei.shang@intel.com>
8694           Li, Jing B <jing.b.li@intel.com>
8695           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8696           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8697
8698 2017-08-09 15:49:21 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8699
8700         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
8701         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
8702         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
8703           FEI: libs: Add fei codec objects to surface proxy
8704           Add fei codec objects to surface proxy since handling the
8705           fei buffers(codec objects here) external to gstvaapisurfaceproxy
8706           will make the code complicated. Especially considering the behavior
8707           of encoder where the input frame order from upstream and output
8708           frame order to the downstream are not sequential.
8709           Other contributors:
8710           Zhong, Xiaoxia <xiaoxia.zhong@intel.com>
8711           xiaominc <xiaomin.chen@intel.com>
8712           Leilei <leilei.shang@intel.com>
8713           Li, Jing B <jing.b.li@intel.com>
8714           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8715           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8716
8717 2017-08-09 15:35:10 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8718
8719         * gst-libs/gst/vaapi/Makefile.am:
8720         * gst-libs/gst/vaapi/gstvaapifei_objects.c:
8721         * gst-libs/gst/vaapi/gstvaapifei_objects.h:
8722         * gst-libs/gst/vaapi/gstvaapifei_objects_priv.h:
8723           FEI: Add codec objects for fei usecase
8724           There are 6 new va buffer types, each defined as a specific codec object.
8725           Borrowed the code from gstvaapicodecobject , but made a clear separation
8726           to avoid any possible mess-up. Because unlike the other gstvaaicodecobjects,
8727           feicodecobjects can be shared between elements and also can be accessed
8728           from different thread.
8729           Unlike the other fei codecs object, VAEncMiscParameterTypeFEIFrameControl
8730           object is not shared between elements.So we utilize the already
8731           existing gst_vaapi_enc_misc_param_new(), but still keeping the code
8732           in gstvaapfei_objects_priv.h in order to have a better
8733           code readability.
8734           Fixme:
8735           -- Probably we need _locked_map() and _unlocked_map()
8736           -- Context can be associated with PreEnc(not just Enoder)
8737           once we have the proper support inplace, but for now we don't have
8738           PreEnc support, so should be safe enough to use GstVaapiEncoder.
8739           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8740           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8741
8742 2017-08-09 14:22:12 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8743
8744         * gst-libs/gst/vaapi/Makefile.am:
8745         * gst-libs/gst/vaapi/gstvaapifeiutils_h264.c:
8746         * gst-libs/gst/vaapi/gstvaapifeiutils_h264.h:
8747           FEI: libs: add H264 fei specific utility functions
8748           Added enum/flag type definitions for a number of FEI
8749           input and output parameters.
8750           Original author of the patch: Wang, Yi <yi.a.wang@intel.com>
8751           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8752           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8753           Signed-off-by: Wang, Yi <yi.a.wang@intel.com>
8754           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8755
8756 2017-08-09 14:10:16 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8757
8758         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8759         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
8760           FEI: libs: Add virtual method for secondary context creation.
8761           Add a new vitrual method ensure_secondary_context to the
8762           base encoder which is only required for the FEI entrypoint, that too
8763           only when user configures the ENC+PAK mode. ENC+PAK mode is not something
8764           supported directly by libva or driver, but this can be enabled
8765           from the middleware.
8766           Original Author of this idea: Leilei Shang <leilei.shang@intel.com>
8767           Signed-off-by: Leilei Shang <leilei.shang@intel.com>
8768           Signed-off-by: xiaominc <xiaomin.chen@intel.com>
8769           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8770           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8771           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8772
8773 2017-08-09 14:05:03 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8774
8775         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8776           FEI: libs: make sure the default context creation works as expected.
8777           Current code always guess the entrypoint during init phase in case
8778           if there is no entrypoint already configured in GstVaapiContextInfo.
8779           Make sure FEI Entrypoint is not messing up with this logic.
8780           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8781           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8782
8783 2017-08-09 13:45:40 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8784
8785         * gst-libs/gst/vaapi/gstvaapicontext.c:
8786         * gst-libs/gst/vaapi/gstvaapicontext.h:
8787         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8788           FEI: libs: Add FEI functional mode configuration
8789           FEI Entrypoint can work in either one of the 3 different modes:
8790           VA_FEI_FUNCTION_ENC, VA_FEI_FUNCTION_PAK or VA_FEI_FUNCTION_ENC_PAK.
8791           Add infrastructure in gstvaapicontext and gstvaapiencoder for this
8792           functioal mode configuration.
8793           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8794           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8795
8796 2017-08-09 13:02:24 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8797
8798         * gst-libs/gst/vaapi/gstvaapidisplay.c:
8799         * gst-libs/gst/vaapi/gstvaapiprofile.c:
8800         * gst-libs/gst/vaapi/gstvaapiprofile.h:
8801           FEI: libs: Add FEI Entrypoint mapping
8802           Define the new mapping GST_VAAPI_ENTRYPOINT_SLICE_ENCODE_FEI
8803           for VAEntrypointFEI.
8804           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8805           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8806
8807 2017-08-09 12:58:29 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8808
8809         * configure.ac:
8810           FEI: Add support for FEI conditional build
8811           FEI(Flexible Encoding Infrastructure) is an extension
8812           to VA API. Define USE_H264_FEI_ENCODER based on
8813           fei header file and required structures availability.
8814           https://bugzilla.gnome.org/show_bug.cgi?id=785712
8815           https://bugzilla.gnome.org/show_bug.cgi?id=784667
8816
8817 2017-08-28 17:34:50 -0700  Orestis Floros <orestisf1993@gmail.com>
8818
8819         * gst/vaapi/gstvaapidecode.c:
8820           vaapidecode: force add h264 SVC profiles in caps
8821           When vaapih264dec's base-only profile is set to TRUE, fake SVC profile
8822           support in caps.
8823           https://bugzilla.gnome.org/show_bug.cgi?id=732266
8824           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8825
8826 2017-08-28 17:32:57 -0700  Orestis Floros <orestisf1993@gmail.com>
8827
8828         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8829           libs: decoder: h264: decode SVC base layer only
8830           Drops non-base NALs when the base-only property is set to TRUE.
8831           This modifies the behavior for MVC streams with base-only too: All the
8832           non-base units are dropped before they are decoded instead of dropping
8833           the non-base frames.
8834           The relevant part from the H264 spec is:
8835           > Decoders that conform to one or more of the profiles specified in
8836           Annex A rather than the profiles specified in Annexes G or H shall
8837           ignore (remove from the bitstream and discard) the contents of all NAL
8838           units with nal_unit_type equal to 14, 15, or 20.
8839           To eliminate side effects from the offending units:
8840           - PPS's with a broken seq_parameter_set_id (referring to dropped subset
8841           SPS's) are ignored.
8842           - The NAL parsing is skipped and their flags are set to
8843           GST_VAAPI_DECODER_UNIT_FLAG_SKIP.
8844           - Prefix units are not stored in prev_pi. Otherwise, parse_slice() would
8845           use them even if they are flagged to be skipped. Subset SPS's and slice
8846           extension units are not stored there either.
8847           https://bugzilla.gnome.org/show_bug.cgi?id=732266
8848           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8849
8850 2017-08-28 17:28:04 -0700  Orestis Floros <orestisf1993@gmail.com>
8851
8852         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8853           libs: decoder: h264: check nalu validity in parser info finalize
8854           https://bugzilla.gnome.org/show_bug.cgi?id=732266
8855           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
8856
8857 2017-08-28 19:20:42 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8858
8859         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8860         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
8861         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
8862         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
8863         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
8864           libs: encoder: remove unused cast macro
8865           Remove internal macro to cast structure that are already declared
8866           in the header.
8867
8868 2017-08-28 19:09:07 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8869
8870         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8871         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8872         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
8873         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
8874         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
8875         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
8876           Revert "libs: encoders: remove unused cast macros"
8877           This reverts commit fd7d38f7d26b11e592638092b4073b5c1764f255.
8878
8879 2017-08-28 18:32:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8880
8881         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
8882         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
8883         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
8884         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
8885         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
8886         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
8887           libs: encoders: remove unused cast macros
8888           They are only used inside the code, where another macro is defined.
8889           Thus these exported macros have no use.
8890
8891 2017-08-24 20:26:11 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8892
8893         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
8894           libs: decoder: h264: improve code-style
8895           https://bugzilla.gnome.org/show_bug.cgi?id=786173
8896
8897 2017-08-25 16:22:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8898
8899         * gst-libs/gst/vaapi/gstvaapicompat.h:
8900         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8901           libs: encoder: h264: handle deprecated enum
8902           In VA-API 1.0 the enum VAEncPackedHeaderH264_SEI is deprecated, and
8903           instead VAEncPackedHeaderRawData should be used.
8904           This patch creates a compatibility symbol,
8905           VA_ENC_PACKED_HEADER_H264_SEI, to expose the used enum according the
8906           VA-API version.
8907           https://bugzilla.gnome.org/show_bug.cgi?id=784398
8908
8909 2017-08-25 16:07:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8910
8911         * gst-libs/gst/vaapi/gstvaapiprofile.c:
8912         * gst-libs/gst/vaapi/gstvaapiutils.c:
8913           libs: guard deprecated symbols
8914           In VA-API 1.0 the H.264 baseline profile is deprecated. This patch
8915           guards the H.264 baseline usage. Consider this commit as a
8916           continuation of commit e0e0a474
8917           https://bugzilla.gnome.org/show_bug.cgi?id=784398
8918
8919 2017-08-17 12:54:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8920
8921         * configure.ac:
8922         * meson.build:
8923         * meson_options.txt:
8924           Revert "build: check for libva-2.0"
8925           This reverts commit 8f2eb70803099d4b533ecc10fc259041d8714210.
8926           https://bugzilla.gnome.org/show_bug.cgi?id=784398
8927
8928 2017-08-17 12:44:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8929
8930         * gst-libs/gst/vaapi/gstvaapicompat.h:
8931         * gst-libs/gst/vaapi/gstvaapicontext.c:
8932         * gst-libs/gst/vaapi/gstvaapiencoder.c:
8933           libs: macro to get a renamed value in VA-API 1.0
8934           In VA-API 1.0 the union bits in VAEncMiscParameterBufferROI has
8935           renamed one member from roi_value_is_qp_delat to
8936           roi_value_is_qp_delta, which is the correct name.
8937           In order to keep back compatibility a macro has added to access this
8938           union member.
8939           https://bugzilla.gnome.org/show_bug.cgi?id=784398
8940
8941 2017-08-22 11:37:28 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8942
8943         * gst/vaapi/gstvaapipluginbase.h:
8944         * gst/vaapi/gstvaapipluginutil.c:
8945           plugins: include main gstgl header
8946           Instead including particular gstgl header files in a header file
8947           that doesn't export a gstgl symbol, the main gstgl header file is
8948           included in gstvaapipluginutil.c where the symbols are used.
8949           https://bugzilla.gnome.org/show_bug.cgi?id=786597
8950
8951 2017-08-18 18:00:24 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8952
8953         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8954           libs: encoder: h264: fix enum namespace
8955
8956 2017-08-17 12:26:12 +0100  Tim-Philipp Müller <tim@centricular.com>
8957
8958         * common:
8959           Automatic update of common submodule
8960           From 48a5d85 to 3f4aa96
8961
8962 2017-08-17 11:03:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8963
8964         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
8965           libs: encoder: h264: remove spurious assignation
8966           Coverity scan bug:
8967           An assigned value that is never used may represent unnecessary
8968           computation, an incorrect algorithm, or possibly the need for cleanup
8969           or refactoring.
8970           ip_period is assigned first to be rewritter inmediatly after. The
8971           first assignation is spurious.
8972
8973 2017-08-15 17:36:51 +0900  Hyunjun Ko <zzoon@igalia.com>
8974
8975         * gst/vaapi/gstvaapidecode.c:
8976           vaapidecode: fix mismatch of the return type
8977           https://bugzilla.gnome.org/show_bug.cgi?id=786307
8978
8979 2017-08-10 13:34:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8980
8981         * gst-libs/gst/vaapi/Makefile.am:
8982         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
8983         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
8984         * gst-libs/gst/vaapi/gstvaapiutils.h:
8985         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
8986         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
8987         * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
8988         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
8989         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
8990         * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
8991         * gst-libs/gst/vaapi/meson.build:
8992           libs: remove unused header
8993           Since libgstvaapi is not distributed, there is no need to check for
8994           private header inclusion. Thus removing it.
8995           https://bugzilla.gnome.org/show_bug.cgi?id=786119
8996
8997 2017-08-10 13:27:11 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
8998
8999         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9000         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9001         * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9002         * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
9003         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9004         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
9005           libs: utils: move gstvaapisurface.h to private headers
9006           Since the utils don't expose API defined in gstvaapisource.h, it is
9007           moved to their private headers where they are used.
9008           https://bugzilla.gnome.org/show_bug.cgi?id=786119
9009
9010 2017-08-10 13:26:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9011
9012         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9013         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
9014         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
9015         * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
9016         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
9017         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
9018           libs: utils: remove va.h include in header
9019           And include gstvaapicompat.h in the C files, since the VA-API is not
9020           exposed in the headers.
9021           https://bugzilla.gnome.org/show_bug.cgi?id=786119
9022
9023 2017-08-10 13:24:06 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9024
9025         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9026         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9027         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9028         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9029         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9030         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9031           libs: encoder: remove va.h include
9032           Since it is already managed by gstvaapicompat.h
9033           https://bugzilla.gnome.org/show_bug.cgi?id=786119
9034
9035 2017-08-10 13:11:04 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9036
9037         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
9038         * gst-libs/gst/vaapi/gstvaapicompat.h:
9039         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
9040         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
9041         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
9042         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9043         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9044         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9045         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9046         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9047         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9048         * gst-libs/gst/vaapi/gstvaapifilter.c:
9049         * gst-libs/gst/vaapi/gstvaapiutils.c:
9050         * meson.build:
9051           build: consolidate the VA sub API includes
9052           Include all VA sub APIs headers in a single point (gstvaapicompat.h),
9053           since they are all already included in va.h after VA-API 0.38.
9054           https://bugzilla.gnome.org/show_bug.cgi?id=786119
9055
9056 2017-08-10 13:09:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9057
9058         * configure.ac:
9059         * meson.build:
9060           build: check for va_vpp.h
9061           Thus, in config.h the macro HAVE_VA_VA_VPP_H is defined. This will
9062           allow us to handle the inclusion of the header better.
9063           https://bugzilla.gnome.org/show_bug.cgi?id=786119
9064
9065 2017-08-11 20:22:41 +0100  Tim-Philipp Müller <tim@centricular.com>
9066
9067         * meson.build:
9068           meson: don't export symbols by default
9069           Only plugin entry points should be exported.
9070
9071 2017-08-09 19:06:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9072
9073         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9074           libs: decoder: h265: remove spurious code
9075           Coverity scan:
9076           Logically dead code: The indicated dead code may have performed some
9077           action; that action will never occur.
9078           By using pointer arithmetic is impossible to get NULL.
9079
9080 2017-08-08 18:52:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9081
9082         * gst-libs/gst/vaapi/gstvaapicontext.c:
9083           libs: context: use attribs index instead pointers
9084           Coverity scan bug:
9085           Out-of-bounds write. This could cause an immediate crash or incorrect
9086           computations.
9087           Coverity basically found that it is possible to assign more than 4
9088           attribs in the array.
9089           In my opinion this was produced because code pattern used pointer
9090           arithmetic, which is not readable nor maintainable.
9091           This patch refactors config_create() to use an array index rather than
9092           pointer arithmetic. Also a run-time check for index size was added.
9093
9094 2017-08-08 17:38:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9095
9096         * gst/vaapi/gstvaapiencode_h264.c:
9097           vaapiencode: h264: remove spurious code
9098           Coverity scan bug:
9099           An unsigned value can never be negative, so this test will always
9100           evaluate the same way.
9101           As len is guint32, there is no need to check it if it is equal or
9102           bigger than zero.
9103
9104 2017-08-08 17:34:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9105
9106         * gst/vaapi/gstvaapidecode.c:
9107           vaapidecode: initialize variable
9108           Coverity scan bug:
9109           The variable will contain an arbitrary value left from earlier
9110           computations.
9111           Variable base_only is fetched from base-only property, and it may be
9112           not assigned. It needs to be initialized.
9113
9114 2017-08-08 17:29:54 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9115
9116         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
9117           libs: windows: wayland: fail if cannot remove last frame
9118           Converity scan bug:
9119           If the function returns an error value, the error value may be
9120           mistaken for a normal value.
9121           If g_atomic_pointer_compare_and_exchange() fails because the frame is
9122           not the last one, the function fails. Thus, logging an info message.
9123
9124 2017-08-08 17:21:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9125
9126         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
9127           libs: utils: glx: check return value
9128           Coverity scan bug:
9129           If the function returns an error value, the error value may be
9130           mistaken for a normal value.
9131           Function sscanf returns the number of assignations done. Validate this
9132           return value with the number of expected variables to match.
9133
9134 2017-08-08 17:12:06 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9135
9136         * gst-libs/gst/vaapi/gstvaapiobject.c:
9137           libs: vaapi: object: remove unrequired NULL check
9138           Coverity scan bug:
9139           Dereference after null check: Either the check against null is
9140           unnecessary, or there may be a null pointer dereference.
9141           Variable klass has been validated as non-NULL several time before in
9142           gst_vaapi_object_new() function, so there is no need to check it
9143           again.
9144
9145 2017-08-08 17:06:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9146
9147         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9148           libs: encoder: h265: remove spurious assignation
9149           Coverity scan bug:
9150           An assigned value that is never used may represent unnecessary
9151           computation, an incorrect algorithm, or possibly the need for cleanup
9152           or refactoring.
9153           ip_period is assigned first to be rewritter inmediatly after. The
9154           first assignation is spurious.
9155
9156 2017-08-08 16:50:39 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9157
9158         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9159           libs: encoder: h264: fix copy & paste error
9160           Coverity scan bug:
9161           The copied code will not have its intended effect.
9162           This is a bug from commit cdaf15b2, where the intention is to
9163           initialize RefPicList1 while setting RefPicList0.
9164
9165 2017-08-08 16:33:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9166
9167         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9168         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9169           libs: encoder: h265: fix possible integer overflow
9170           Coverity scan bug:
9171           Unintentional integer overflow. The expression's value may not be what
9172           the programmer intended, because the expression is evaluated using a
9173           narrow (i.e. few bits) integer type.
9174           Cast operator to guint64 before computation to avoid narrowing.
9175           merge with 3c5a6add
9176
9177 2017-08-08 16:12:13 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9178
9179         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
9180           libs: decoder: mpeg4: fail if return value is not OK
9181           Coverity scan bug:
9182           An assigned value that is never used may represent unnecessary
9183           computation, an incorrect algorithm, or possibly the need for cleanup
9184           or refactoring.
9185           In the return value of decode_slice() or
9186           gst_mpeg4_parse_video_packet_header() are not success, thus fail
9187           decode_packet() function.
9188
9189 2017-08-08 15:49:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9190
9191         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9192           libs: decoder: h265: check for null
9193           Coverity scan bug:
9194           Dereference after null check: Either the check against null is
9195           unnecessary, or there may be a null pointer dereference.
9196           While looking for hte lowest poc, according to rest of the code, the
9197           picture in the dbp (decoded picture buffer) might be NULL, thus we
9198           could check for a NULL picture before assigned as found.
9199           Also, split a comma operator because it is considered as a bad
9200           practice because it possible side effects.
9201
9202 2017-08-08 15:38:16 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9203
9204         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
9205           libs: decoder: h265: untaint loop control variable
9206           Coverity scan bug:
9207           Scalars (for example, integers) are not properly
9208           bounds-checked (sanitized) before being used as array or pointer
9209           indexes, loop boundaries, or function arguments are considered as
9210           tainted.
9211           In this case, num_nals were not checked before used as loop control.
9212
9213 2017-08-08 13:46:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9214
9215         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9216           libs: decoder: h264: remove unrequired NULL check
9217           Coverity scan bug:
9218           Dereference after null check: Either the check against null is
9219           unnecessary, or there may be a null pointer dereference.
9220           In the original commit for fill_picture_gaps() (commit 5abd2b90) the
9221           prev_picture could be NULL, that's why the code did a null check. But,
9222           since commit 52adebe7, the previous reference frames are tracked, thus
9223           there is no need to check null anymore.
9224
9225 2017-08-03 23:17:44 +0300  orestisf <orestisf1993@gmail.com>
9226
9227         * gst/vaapi/gstvaapidecode.c:
9228           vaapidecode: fix gst_caps_new_simple call
9229           https://bugzilla.gnome.org/show_bug.cgi?id=732265
9230
9231 2017-07-25 22:25:10 +0300  orestisf <orestisf1993@gmail.com>
9232
9233         * gst/vaapi/gstvaapidecode.c:
9234           vaapidecode: force add h264 MVC profiles in caps
9235           When vaapih264dec's base-only profile is set to TRUE, fake MVC profile
9236           support in caps.
9237           https://bugzilla.gnome.org/show_bug.cgi?id=732265
9238
9239 2017-07-25 22:54:30 +0300  orestisf <orestisf1993@gmail.com>
9240
9241         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9242           libs: decoder: h264: decode MVC base view only
9243           If processed SPS has mvc profile and the configuration is set to
9244           base-only, the frame is drop.
9245           https://bugzilla.gnome.org/show_bug.cgi?id=732265
9246
9247 2017-07-25 22:06:56 +0300  orestisf <orestisf1993@gmail.com>
9248
9249         * gst/vaapi/gstvaapidecode.c:
9250         * gst/vaapi/gstvaapidecode_props.c:
9251           vaapidecode: set h264 base-only to decoder
9252           Set the base-only value when property is set and the internal
9253           decoder is already instantiated or when the internal decoder
9254           is created.
9255           https://bugzilla.gnome.org/show_bug.cgi?id=732265
9256
9257 2017-07-25 22:03:34 +0300  orestisf <orestisf1993@gmail.com>
9258
9259         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9260         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9261           libs: decoder: h264: add setter for base-only mode
9262           https://bugzilla.gnome.org/show_bug.cgi?id=732265
9263
9264 2017-07-25 22:01:37 +0300  orestisf <orestisf1993@gmail.com>
9265
9266         * gst/vaapi/gstvaapidecode_props.c:
9267         * gst/vaapi/gstvaapidecode_props.h:
9268           vaapidecode_props: h264: add base-only property
9269           https://bugzilla.gnome.org/show_bug.cgi?id=732265
9270
9271 2017-08-01 11:11:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9272
9273         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9274           libs: encoder: h264: missing property enum documentation
9275
9276 2017-08-02 14:54:53 +0900  Hyunjun Ko <zzoon@igalia.com>
9277
9278         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9279           libs: encoder: h264: add multi reference support
9280           Using num_ref_frames provided and the result of the Query
9281           VAConfigAttribEncMaxRefFrames, it determines the size of reference list
9282           and perform encoding with multi reference frames as the following:
9283           1\ The num_ref_frames is being considered as the number of
9284           reference picture list0
9285           2\ Encoder adds 1 reference frame more to the reference picture list1
9286           internally if b-frame encoding.
9287           3\ If num_ref_frames is bigger than the number of refrence frames
9288           supported in the driver, it will be lowered.
9289           https://bugzilla.gnome.org/show_bug.cgi?id=783803
9290
9291 2017-08-02 14:53:34 +0900  Hyunjun Ko <zzoon@igalia.com>
9292
9293         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9294         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9295           libs: encoder: h264: add refs property
9296           Users can provide the number of reference frame by this property.
9297           The value of the property will be considered as the number of
9298           reference picture list0 and will add 1 reference frame more to the
9299           reference picture list1 internally if b-frame encoding.
9300           If the value provided is bigger than the number of refrence frames
9301           supported in the driver, it will be lowered.
9302           https://bugzilla.gnome.org/show_bug.cgi?id=783803
9303
9304 2017-07-28 15:27:20 +0900  Hyunjun Ko <zzoon@igalia.com>
9305
9306         * gst-libs/gst/vaapi/gstvaapiencoder.c:
9307         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
9308           libs: encoder: implements gst_vaapi_encoder_ensure_max_num_ref_frames
9309           This function will query VAConfigAttribEncMaxRefFrames to get the
9310           maximum number of reference frames supported in the driver.
9311           This will be used for h264/h265 encoding.
9312           https://bugzilla.gnome.org/show_bug.cgi?id=783803
9313
9314 2017-08-01 18:38:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9315
9316         * gst/vaapi/gstvaapiencode_h265.c:
9317           vaapiencode: h265: compare an unsigned int if not zero
9318           An unsigned value can never be negative, so this test (greater than
9319           zero) will always evaluate the same way. Thus change it to just if
9320           it's not zero.
9321
9322 2017-08-01 18:10:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9323
9324         * gst/vaapi/gstvaapipluginbase.c:
9325           plugins: check gst_gl_ensure_element_data() return value
9326           Refactor gst_vaapi_plugin_base_create_gl_context() in order to check
9327           the return value of gst_gl_ensure_element_data(). The result is a code
9328           bit cleaner.
9329
9330 2017-08-01 17:59:38 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9331
9332         * gst/vaapi/gstvaapipluginutil.c:
9333           plugins: avoid dead code detection
9334           By using #elif macro, the static code analysis would stop to detect
9335           these lines as dead code. Also it is inforced the mutually exclusive
9336           environments.
9337
9338 2017-08-01 17:39:04 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9339
9340         * gst/vaapi/gstvaapivideobufferpool.c:
9341           vaapivideobufferpool: don't shift by negative since it's undefined
9342           The function g_bit_nth_lsf() may return -1 if the request bit position
9343           is not avaible. Thus, this patch check if the return value is not -1
9344           in order to continue.
9345
9346 2017-08-01 17:29:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9347
9348         * gst/vaapi/gstvaapisink.c:
9349           vaapisink: fix memory leak
9350
9351 2017-08-01 17:23:48 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9352
9353         * gst/vaapi/gstvaapipostprocutil.c:
9354           vaapipostproc: fix memory leaks
9355
9356 2017-07-27 10:54:00 +0000  Tomas Rataj <rataj28@gmail.com>
9357
9358         * gst-libs/gst/vaapi/gstvaapidisplay.c:
9359           libs: display: when appending formats change pointers to indexes
9360           Thus, it fixes an invalid read when YV12 or I420 are not supported by
9361           the driver.
9362           https://bugzilla.gnome.org/show_bug.cgi?id=785085
9363
9364 2017-07-19 12:02:40 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9365
9366         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9367         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9368           libs: encoder: h264: Add uncompliant mode reducing coded buffer size
9369           Added a new property "compliance-mode", which default is the normal
9370           strict compliant mode.
9371           The second mode, "restrict-buf-alloc", is to limit the coded buffer
9372           allocation size to improve performance in some specific Intel
9373           platforms (there is asignificant performance improvement in parallel
9374           encodings). Under this new mode, we use the MinCR field in A.3.1 for
9375           pre-calculating the coded-buffer size.
9376           https://bugzilla.gnome.org/show_bug.cgi?id=784590
9377
9378 2017-07-05 17:13:44 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9379
9380         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
9381         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
9382           libs: utils_h264: Extend LevelLimit table with MinCR field
9383           Add MinCR(Minimum Compression Ratio) field to GstVaapiH264LevelLimits
9384           based on Annex A.3
9385           https://bugzilla.gnome.org/show_bug.cgi?id=784590
9386
9387 2017-07-11 17:29:13 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9388
9389         * gst-libs/gst/vaapi/gstvaapiutils.c:
9390           libs: utils: libva 1.0 changed the logging
9391           The logging mechanism in libva has changed it's functions
9392           signatures. This patch updates that for libva versions >= 1.0
9393           https://bugzilla.gnome.org/show_bug.cgi?id=784398
9394
9395 2017-07-11 17:27:32 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9396
9397         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9398           libs: decoder: h264: libva 1.0 deprecated baseline
9399           libva 1.0 deprecated H.264 baseline profile and FMO support
9400           (commit b4f332b3).
9401           https://bugzilla.gnome.org/show_bug.cgi?id=784398
9402
9403 2017-07-26 20:03:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9404
9405         * configure.ac:
9406         * meson.build:
9407         * meson_options.txt:
9408           build: check for libva-2.0
9409           Check for libva-2.0 since libva's developers decided to increase the
9410           library's version number.
9411           https://bugzilla.gnome.org/show_bug.cgi?id=784398
9412
9413 2017-07-11 16:55:26 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9414
9415         * configure.ac:
9416         * meson.build:
9417           build: blacklist only libva 0.99.0
9418           Intel's MSDK uses libva 0.99.0, meanwhile open source libva bumped
9419           its API version to 1.0.0. Thus we have to blacklist only the MSDK's
9420           libva (0.99.0)
9421           https://bugzilla.gnome.org/show_bug.cgi?id=784398
9422
9423 2017-07-26 20:30:37 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9424
9425         * gst-libs/gst/vaapi/meson.build:
9426           build: meson: remove gstvaapidisplaycache.c
9427           This is a missing bit of commit ec3e10f6
9428
9429 2017-07-26 09:53:10 -0700  U. Artie Eoff <ullysses.a.eoff@intel.com>
9430
9431         * configure.ac:
9432           configure: do not break configure if gtk+-3.0 devel missing
9433           Fix PKG_CHECK_MODULES rule for with_gtk=check condition to
9434           set USE_GTK=0 if gtk+-3.0 is not available.
9435           Since commit 85856c29a70d6de4aea5b708e04e9eb418190623
9436           Author: Hyunjun Ko <zzoon@igalia.com>
9437           Date:   Wed Jul 5 15:59:43 2017 +0900
9438           tests: elements: add testsuite of vaapi context
9439           ...configure fails if gtk+-3.0 development files are missing.
9440           The "with_gtk" option defaults to "check" in configure.ac
9441           which implies that if it is not explicitly requested then
9442           configure will only enable it if it's available on the system.
9443           However, the PKG_CHECK_MODULES rule that get's activated on
9444           "check" condition did not provide default when gtk+-3.0 devel
9445           packages are not found on the system.  Thus, it resulted in
9446           configure failure.
9447           Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
9448           https://bugzilla.gnome.org/show_bug.cgi?id=785452
9449
9450 2017-07-05 15:59:43 +0900  Hyunjun Ko <zzoon@igalia.com>
9451
9452         * configure.ac:
9453         * tests/elements/Makefile.am:
9454         * tests/elements/test-vaapicontext.c:
9455           tests: elements: add testsuite of vaapi context
9456           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9457           https://bugzilla.gnome.org/show_bug.cgi?id=766704
9458
9459 2017-07-05 15:32:43 +0900  Hyunjun Ko <zzoon@igalia.com>
9460
9461         * gst/vaapi/gstvaapisink.c:
9462           vaapisink: fail if surface display is different
9463           Replacing GstVaapiDisplay during rendering might be hiding problems
9464           at some cases, even though it's safe currently since we use cache
9465           of GstVaapidisplay.
9466           Play safe by failing if this happens.
9467           https://bugzilla.gnome.org/show_bug.cgi?id=766704
9468
9469 2017-07-05 15:31:55 +0900  Hyunjun Ko <zzoon@igalia.com>
9470
9471         * gst/vaapi/gstvaapivideocontext.c:
9472         * gst/vaapi/gstvaapivideocontext.h:
9473           videocontext: support "gst.vaapi.app.Display" context
9474           Through "gst.vaapi.app.Display" context, users can set their own VADisplay
9475           and native display of their backend.
9476           Attributes:
9477           - display : pointer of VADisplay
9478           - x11-display : pointer of X11 display (Display *), if they're using.
9479           This patch creates GstVaapidisplayX11 if information provided through
9480           "gst.vaapi.app.Display"
9481           https://bugzilla.gnome.org/show_bug.cgi?id=766704
9482
9483 2017-07-05 14:33:38 +0900  Hyunjun Ko <zzoon@igalia.com>
9484
9485         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9486         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
9487           libs: display: x11: add gst_vaapi_display_x11_new_with_va_display()
9488           Implements new API function so that users could create GstVaapiDisplay
9489           with their own VADisplay within a native display as backend.
9490           https://bugzilla.gnome.org/show_bug.cgi?id=766704
9491
9492 2017-07-05 14:32:35 +0900  Hyunjun Ko <zzoon@igalia.com>
9493
9494         * gst-libs/gst/vaapi/gstvaapidisplay.c:
9495           libs: display: pass display info when foreign display
9496           When creating a GstVaapiDisplay using a foreign VADisplay, and render
9497           with that display, it also requires native display of the backend.
9498           https://bugzilla.gnome.org/show_bug.cgi?id=766704
9499
9500 2017-06-26 21:18:25 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9501
9502         * gst-libs/gst/vaapi/Makefile.am:
9503         * gst-libs/gst/vaapi/gstvaapidisplay.c:
9504         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
9505         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
9506         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
9507         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
9508         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
9509         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
9510           libs: display: remove cache
9511           Remove a bunch of code that handles the VADisplay cache, since the
9512           context sharing should be doing this correctly.
9513           https://bugzilla.gnome.org/show_bug.cgi?id=747946
9514
9515 2017-07-13 10:56:18 +0900  Hyunjun Ko <zzoon@igalia.com>
9516
9517         * tests/elements/Makefile.am:
9518         * tests/elements/test-vaapipostproc.c:
9519           tests: elements: add test for vaapipostproc
9520           https://bugzilla.gnome.org/show_bug.cgi?id=754885
9521
9522 2017-07-12 18:25:15 +0900  Hyunjun Ko <zzoon@igalia.com>
9523
9524         * gst/vaapi/gstvaapipostproc.c:
9525           postproc: reconfigure when width or height changes
9526           https://bugzilla.gnome.org/show_bug.cgi?id=754885
9527
9528 2017-07-17 18:53:57 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9529
9530         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9531           libs: encoder: vp9: array terminated in zeros
9532           There is a crash when setting ref-pic-mode since the #GEnumValue
9533           array is not terminated with a structured with all memvers being
9534           zero.
9535           https://bugzilla.gnome.org/show_bug.cgi?id=785032
9536
9537 2017-07-13 16:43:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9538
9539         * gst/vaapi/gstvaapiencode_h264.c:
9540           vaapiencode: h264: add plugin documentation
9541           Comment how the profile is set and other parameters.
9542
9543 2017-05-26 15:19:00 +0000  Matt Staples <staples255@gmail.com>
9544
9545         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9546           libs: decoder: h264: push frames as soon as possible
9547           Push frames downstream as soon as possible instead of waiting until
9548           they are ejected from the DPB.
9549           This patch makes the decoder not comply with the H.264 specification,
9550           but it is required for some video cameras.
9551           https://bugzilla.gnome.org/show_bug.cgi?id=762509
9552           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9553
9554 2017-07-10 19:27:57 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9555
9556         * gst/vaapi/gstvaapidecode_props.c:
9557           vaapidecode_props: h264: set low-latency in decoder
9558           Set the low-latency property if the H264 decoder is already
9559           instantiated, thus you could change the behavior in run-time.
9560           https://bugzilla.gnome.org/show_bug.cgi?id=783588
9561
9562 2017-07-06 20:00:15 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9563
9564         * gst/vaapi/gstvaapidecode.c:
9565           vaapidecode: set h264 low latency to decoder
9566           https://bugzilla.gnome.org/show_bug.cgi?id=783588
9567
9568 2017-06-14 18:30:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9569
9570         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9571         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
9572           libs: decoder: h264: add getter/setter for low latency mode
9573           https://bugzilla.gnome.org/show_bug.cgi?id=783588
9574
9575 2017-06-14 18:31:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9576
9577         * gst/vaapi/gstvaapidecode_props.c:
9578         * gst/vaapi/gstvaapidecode_props.h:
9579           vaapidecode_props: h264: add low latency property
9580           Adding support for private data.
9581           https://bugzilla.gnome.org/show_bug.cgi?id=783588
9582
9583 2017-06-14 18:23:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9584
9585         * gst/vaapi/Makefile.am:
9586         * gst/vaapi/gstvaapidecode.c:
9587         * gst/vaapi/gstvaapidecode_props.c:
9588         * gst/vaapi/gstvaapidecode_props.h:
9589         * gst/vaapi/meson.build:
9590           vaapidecode_props: add skeleton for h264 decoder properties
9591           https://bugzilla.gnome.org/show_bug.cgi?id=783588
9592
9593 2017-06-14 17:07:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9594
9595         * gst/vaapi/gstvaapidecode.c:
9596           vaapidecode: properties callback in decoders map
9597           https://bugzilla.gnome.org/show_bug.cgi?id=783588
9598
9599 2017-07-07 12:01:59 +0100  Tim-Philipp Müller <tim@centricular.com>
9600
9601         * meson.build:
9602           meson: find python3 via python3 module
9603           https://bugzilla.gnome.org/show_bug.cgi?id=783198
9604
9605 2017-06-09 14:47:40 +0900  Hyunjun Ko <zzoon@igalia.com>
9606
9607         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9608           libs: encoder: h264: submit sps in case of IDR picture
9609           If the picture is IDR, also submit a SPS header.
9610           This means when frame number reaches to keyframe-period or an force
9611           key unit event arrives, we insert SPS/PPS again.
9612           https://bugzilla.gnome.org/show_bug.cgi?id=776712
9613
9614 2017-06-09 14:47:16 +0900  Hyunjun Ko <zzoon@igalia.com>
9615
9616         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9617           libs: encoder: h264: set the frame as IDR if forced key unit
9618           GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME() is a flag usually used to manage
9619           the `frame-lost` event in the case of streaming, such as RTP.
9620           In case of this event, it is needed to start new GOP rather than just
9621           produce an I-frame.
9622           https://bugzilla.gnome.org/show_bug.cgi?id=776712
9623
9624 2017-04-05 14:48:46 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9625
9626         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9627         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
9628           libs: encoder: h264: insert AU delimiter
9629           Insert an AUD as the first NAL of each encoded frame.
9630           Some applications require Access Unit Delimiter for decoding the
9631           stream.
9632           The AU delimeter insertion is done only when the aud parameter is
9633           TRUE (by default is disabled). The reason of this it is because this
9634           header is only available from Intel Gen9 and the VA intel driver
9635           should be 1.8 or superior. Otherwise, the output will be corrupted.
9636           https://bugzilla.gnome.org/show_bug.cgi?id=776712
9637           Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9638
9639 2017-06-29 12:50:26 +0900  Hyunjun Ko <zzoon@igalia.com>
9640
9641         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9642           libs: encoder: h264: initialize all elements of view_ids
9643           Currently when num_views is changed by multiview-mode on sink caps, it produces
9644           wrong MVC encoded stream since the array view_ids is not set properly according
9645           to changed num_views.
9646           So this patch initializes all of the array sequentially to handle this case.
9647           Side effect is not going to happen by this patch since this array is being
9648           handled by num_views.
9649           https://bugzilla.gnome.org/show_bug.cgi?id=784321
9650
9651 2017-06-27 14:30:54 +0900  Hyunjun Ko <zzoon@igalia.com>
9652
9653         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9654           Revert "encoder: h264: Use high profile by default"
9655           This reverts commit 4aec5bdd7207fc0e45813ef14c9c0ad5174a8f75.
9656           https://bugzilla.gnome.org/show_bug.cgi?id=757941
9657
9658 2017-06-27 16:03:37 +0900  Hyunjun Ko <zzoon@igalia.com>
9659
9660         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9661           libs: encoder: h264: set profile via capsfilter
9662           Until now, the encoder ignored the profile in src caps and chose one
9663           according with the given parameters. But the encoder must honor the
9664           profile specifed in src caps.
9665           This patch do that, and if the encoder needs to choose the profile,
9666           it will do it by following these rules:
9667           1\ If given parameters are not compatible with given profile, the
9668           encoder will bail out with an error.
9669           2\ The encoder will choose the higher profile indicated in the
9670           src caps.
9671           https://bugzilla.gnome.org/show_bug.cgi?id=757941
9672
9673 2017-06-27 13:14:31 +0900  Hyunjun Ko <zzoon@igalia.com>
9674
9675         * gst/vaapi/gstvaapiencode_h264.c:
9676           vaapiencode: h264: set profile to src caps
9677           So far vaapi encoder does not set profile to src caps. This patch makes it
9678           setting profile to src caps, which is determined by itself.
9679           In addition, if encoder chose different profile, which is not negotiated with
9680           downstream, we should set compatible profile to make negotiation working.
9681           https://bugzilla.gnome.org/show_bug.cgi?id=757941
9682
9683 2017-06-22 09:56:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9684
9685         * gst/vaapi/gstvaapiencode_h264.c:
9686         * gst/vaapi/gstvaapiencode_h264.h:
9687           vaapiencode: h264: verify if requested profile is supported
9688           Check if the requested profile in source caps, is supported by the
9689           VA driver. If it is not, an info log message is send saying that
9690           another (compatible?) profile will be used.
9691           https://bugzilla.gnome.org/show_bug.cgi?id=757941
9692
9693 2017-06-21 21:49:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9694
9695         * gst/vaapi/gstvaapiencode_h264.c:
9696           vaapiencode: h264: improve set_config() vmethod
9697           First check if downstream requests ANY caps. If so, byte-stream is
9698           used and the profile will be choose by the encoder. If dowstream
9699           requests EMPTY caps, the negotiation will fail.
9700           Lately, byte-stream and profile are looked in the allowed caps.
9701           https://bugzilla.gnome.org/show_bug.cgi?id=757941
9702
9703 2017-06-21 19:30:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9704
9705         * gst/vaapi/gstvaapiencode_h264.c:
9706           vaapiencode: h264: check for avc in set_config()
9707           The check for avc stream format was done in the vaapi encoder's
9708           vmethod get_caps(), but that is wrong since it has to be check
9709           when encoder set_format().
9710           https://bugzilla.gnome.org/show_bug.cgi?id=757941
9711
9712 2017-06-29 12:49:24 +0900  Hyunjun Ko <zzoon@igalia.com>
9713
9714         * gst/vaapi/gstvaapipostprocutil.c:
9715           vaapipostproc: set multivew-mode flags to src caps
9716           vaapipostproc didn't negotiate the proper multiview caps losing
9717           downstream information.
9718           This patch enables the playing of MVC encoded stream by setting
9719           the proper multiview mode/flags and views to src caps, according
9720           to sink caps.
9721           https://bugzilla.gnome.org/show_bug.cgi?id=784320
9722
9723 2016-11-22 15:52:47 +0000  Julien Isorce <j.isorce@samsung.com>
9724
9725         * gst/vaapi/gstvaapipostproc.c:
9726           vaapipostproc: add support for DMABuf caps feature
9727           https://bugzilla.gnome.org/show_bug.cgi?id=755072
9728           Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9729
9730 2017-06-01 19:42:20 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9731
9732         * gst/vaapi/gstvaapidecode.c:
9733           vaapidecode: add support for DMABuf caps feature
9734           https://bugzilla.gnome.org/show_bug.cgi?id=755072
9735           Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9736
9737 2017-06-23 12:12:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9738
9739         * gst/vaapi/gstvaapipluginbase.c:
9740           vaapipluginbase: force dmabuf allocator if DMABuf caps feature
9741           Instantiate all dmabuf allocator for src pad buffer pool if the
9742           src caps ask for memory:DMABuf feature.
9743           https://bugzilla.gnome.org/show_bug.cgi?id=755072
9744
9745 2016-11-22 23:26:05 +0000  Julien Isorce <j.isorce@samsung.com>
9746
9747         * gst/vaapi/gstvaapipluginutil.c:
9748         * gst/vaapi/gstvaapipluginutil.h:
9749           vaapipluginutil: add support for DMABuf caps feature
9750           https://bugzilla.gnome.org/show_bug.cgi?id=755072
9751           Signed-off-by: Julien Isorce <j.isorce@samsung.com>
9752           Signed-off-by: Victor Jaquez <vjaquez@igalia.com>
9753           vaapipluginutil: add support for DMABuf caps feature
9754
9755 2017-06-01 19:13:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9756
9757         * gst/vaapi/gstvaapipluginbase.c:
9758           vaapipluginbase: dmabuf memory map trial for raw caps
9759           Only push dmabuf-based buffers with raw caps if gst_memory_map()
9760           succeeds. Otherwise, use the the vaapi surfaces allocator.
9761           https://bugzilla.gnome.org/show_bug.cgi?id=755072
9762           https://bugzilla.gnome.org/show_bug.cgi?id=774649
9763           Original-patch-by: Julien Isorce <j.isorce@samsung.com>
9764
9765 2016-06-08 19:11:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9766
9767         * gst/vaapi/gstvaapivideomemory.c:
9768         * gst/vaapi/gstvaapivideomemory.h:
9769           vaapivideomemory: add gst_vaapi_dmabuf_can_map()
9770           This new method checks the specified allocator can create GstMemory that can
9771           be mapped.
9772           https://bugzilla.gnome.org/show_bug.cgi?id=755072
9773
9774 2017-06-23 17:33:03 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9775
9776         * gst/vaapi/gstvaapivideobufferpool.c:
9777           vaapivideobufferpool: fix regression with video metas
9778           There is another regression with 7a206923 when setting the video
9779           info for the video meta, it should be the one from the image's
9780           allocator rather from the allocation caps.
9781           Test pipeline:
9782           gst-launch-1.0 filesrc location=bug766184.flv ! decodebin \
9783           ! tee ! videoconvert ! videoscale                     \
9784           ! video/x-raw, width=1920, height=1080 ! xvimagesink
9785
9786 2017-06-23 14:38:10 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9787
9788         * gst/vaapi/gstvaapipluginbase.c:
9789         * gst/vaapi/gstvaapivideobufferpool.c:
9790           plugins: update buffer size with the one reported by allocator
9791           There is a regression in 7a206923, since the buffer pool ditches all
9792           the buffers generated by them because the pool config size is
9793           different of the buffer's size.
9794           Test pipeline:
9795           gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov \
9796           ! qtdemux ! vaapih264dec ! vaapipostproc ! xvimagesink    \
9797           --gst-debug=GST_PERFORMANCE:5
9798           The allocator may update the buffer size according to the VA surface
9799           properties. In order to do this, the video info is modified when the
9800           allocator is created, which reports through the allocation info the
9801           updated size, and set it to the pool config.
9802
9803 2017-06-14 21:40:33 +0900  Hyunjun Ko <zzoon@igalia.com>
9804
9805         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
9806           libs: decoder: h264: initialize active_sps/pps in reset
9807           Since commits in https://bugzilla.gnome.org/show_bug.cgi?id=781142 landed,
9808           they introduced regression in seek.
9809           Formerly, once seek is done, decoder drops P-frames until I-frame arrives.
9810           But since the commits landed, it doesn't drop P-frame and does try to
9811           decode it continuously because active_sps is still alive. See ensure_sps function.
9812           But there are prev_frames and prev_ref_frames reset already, then it
9813           causes assertion.
9814           So it's necessary to reset active_sps/pps also in reset method.
9815           https://bugzilla.gnome.org/show_bug.cgi?id=783726
9816
9817 2017-06-15 13:24:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9818
9819         * gst-libs/gst/vaapi/gstvaapiencoder.c:
9820         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9821           libs: encoder: fix compilation with old versions of libva
9822           There are some symbols that are not used when compiling with old
9823           version of libva and those generates a compilation error.
9824           Original-patch-by: Matt Staples <staples255@gmail.com>
9825
9826 2017-06-09 14:02:20 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9827
9828         * gst-libs/gst/vaapi/gstvaapiencoder.c:
9829           libs: encoder: Fix the quality level clamping
9830           Change the hard-coded range of quality-level from {1-8} to {1-7},
9831           since it is the range Intel Open source driver supports.
9832           Also perform the range clamping only if the user provided
9833           quality-level is greater than the max-range suppored by the driver,
9834           because there could be non-intel drivers giving lower value than
9835           the hard-coded max value 7.
9836           https://bugzilla.gnome.org/show_bug.cgi?id=783567
9837
9838 2017-04-06 19:35:27 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
9839
9840         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9841         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9842         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
9843         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9844         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9845         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9846           libs: encoder: log out the name of the profile
9847           Instead of printing a number, it is more readable to log out, in
9848           case of error, the name of the failing profile.
9849
9850 2017-05-31 12:36:17 +0900  Hyunjun Ko <zzoon@igalia.com>
9851
9852         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9853           libs: encoder: h264: changes raw number of profile to macro name of its
9854           Changes raw number of profile to macro name of its to improve readability.
9855           https://bugzilla.gnome.org/show_bug.cgi?id=757941
9856
9857 2017-06-09 17:00:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9858
9859         * gst/vaapi/gstvaapivideobufferpool.c:
9860           vaapivideobufferpool: remove allocation_vinfo private attribute
9861           There is no need to keep this attribute internally since it is
9862           already managed by the allocator.
9863           https://bugzilla.gnome.org/show_bug.cgi?id=783599
9864
9865 2017-06-09 15:02:08 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9866
9867         * gst/vaapi/gstvaapivideobufferpool.c:
9868           vaapivideobufferpool: refactor set_config()
9869           Refactor the set_config() virtual method considering a cleaner
9870           approach to allocator instanciation, if it it not set or if it is
9871           not valid for the pool.
9872           https://bugzilla.gnome.org/show_bug.cgi?id=783599
9873
9874 2017-06-09 13:05:36 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9875
9876         * gst/vaapi/gstvaapipluginbase.c:
9877         * gst/vaapi/gstvaapivideobufferpool.c:
9878         * gst/vaapi/gstvaapivideomemory.c:
9879         * gst/vaapi/gstvaapivideomemory.h:
9880           plugins: distinguish allocation and negotiation caps
9881           The vaapi video decoders might have different allocation caps from
9882           the negotiation caps, thus the GstVideoMeta shall use the negotiation
9883           caps, not the allocation caps.
9884           This was done before reusing gst_allocator_get_vaapi_video_info(),
9885           storing there the negotiation caps if they differ from the allocation
9886           ones, but this strategy felt short when the allocator had to be reset
9887           in the vaapi buffer pool, since we need both.
9888           This patch adds gst_allocator_set_vaapi_negotiated_video_info() and
9889           gst_allocator_get_vaapi_negotiated_video_info() to store the
9890           negotiated video info in the allocator, and distinguish it from
9891           the allocation video info.
9892           https://bugzilla.gnome.org/show_bug.cgi?id=783599
9893
9894 2017-06-08 19:32:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9895
9896         * gst/vaapi/gstvaapivideomemory.c:
9897         * gst/vaapi/gstvaapivideomemory.h:
9898           vaapivideomemory: rename qdata quarks and ids
9899           Also the parameter names were renamed to reflect their origin
9900           and purpose.
9901           https://bugzilla.gnome.org/show_bug.cgi?id=783599
9902
9903 2017-06-08 16:05:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9904
9905         * gst/vaapi/gstvaapivideobufferpool.c:
9906           vaapivideobufferpool: rename local variables
9907           Renamed local video info structure names in set_config() vitual
9908           method. The purpose of their renaming is to clarify the origin
9909           of those structures, whether come from passed caps parameter
9910           (new_allocation_vinfo) or from the configured allocator
9911           (allocator_vinfo).
9912           https://bugzilla.gnome.org/show_bug.cgi?id=783599
9913
9914 2017-06-08 15:49:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9915
9916         * gst/vaapi/gstvaapivideobufferpool.c:
9917           vaapivideobufferpool: rename video info structures
9918           Renamed private GstVideoInfo structure video_info to allocation_vinfo
9919           and alloc_info to negotiated_vinfo.
9920           The purpose of these renaming is to clarify the origin and purpose of
9921           these private variables:
9922           video_info (now allocation_vinfo) comes from the bufferpool
9923           configuration. It describes the physical video resolution to be
9924           allocated by the allocator, which may be different from the
9925           negotiated one.
9926           alloc_info (now vmeta_vinfo) comes from the negotiated caps in
9927           the pipeline. It represents how the frame is going to be mapped
9928           using the video meta.
9929           In Intel's VA-API backend, the allocation_vinfo resolution is
9930           bigger than the negotiated_info.
9931           https://bugzilla.gnome.org/show_bug.cgi?id=783599
9932
9933 2017-06-08 12:51:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9934
9935         * gst-libs/gst/vaapi/gstvaapiencoder.c:
9936           libs: encoder: set framerate if bigger than 0/1
9937           Just set the framerate parameter if the framerate numerator and
9938           denominator are bigger than zero.
9939           Otherwise, in Intel Gen6 driver, a warning is raised disabling the
9940           bitrate control.
9941           Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
9942           https://bugzilla.gnome.org/show_bug.cgi?id=783532
9943
9944 2017-06-07 12:32:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9945
9946         * gst-libs/gst/vaapi/gstvaapiencoder.c:
9947           libs: encoder: bitrate target percentage calculation
9948           If the rate control is set to Constant Bit Rate (CBR) the target
9949           percentage is 100%, otherwise is 70%
9950
9951 2017-06-07 12:25:24 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9952
9953         * gst-libs/gst/vaapi/gstvaapiencoder.c:
9954         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9955         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9956         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9957         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9958         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9959           libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor ratecontrol param
9960           Centralize the common configuration for the Rate Control parameter,
9961           thus can be overloaded per each specific encoder.
9962
9963 2017-06-07 11:10:49 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9964
9965         * gst-libs/gst/vaapi/gstvaapiencoder.c:
9966         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
9967         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9968         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
9969         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9970         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9971           libs: encoder: h264,h265,mpeg2,vp8,vp9: refactor framerate param
9972           Since the framerate VA parameter is calculated equally among all the
9973           encoders, it is better to handle it in the base encoder class.
9974
9975 2016-08-09 15:53:47 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
9976
9977         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
9978         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
9979           libs: encoder: vp9: Adds CBR and VBR Encoding support
9980           https://bugzilla.gnome.org/show_bug.cgi?id=766832
9981           Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
9982           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
9983
9984 2017-06-01 12:12:26 +0900  Hyunjun Ko <zzoon@igalia.com>
9985
9986         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
9987           libs: encoder: vp8: Adds VBR Encoding support
9988           https://bugzilla.gnome.org/show_bug.cgi?id=778732
9989
9990 2017-06-01 12:11:12 +0900  Hyunjun Ko <zzoon@igalia.com>
9991
9992         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
9993           libs: encoder: h265: Adds VBR Encoding support
9994           Enables Variable BitRate mode, which does set FrameRate and RateControl
9995           parameters.
9996           https://bugzilla.gnome.org/show_bug.cgi?id=778732
9997
9998 2017-06-02 13:50:05 +0900  Hyunjun Ko <zzoon@igalia.com>
9999
10000         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10001           libs: encoder: Describes more detail about the bitrate property
10002           https://bugzilla.gnome.org/show_bug.cgi?id=778732
10003
10004 2017-06-05 20:44:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10005
10006         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10007           libs: encoder: h265: add rate control parameter
10008           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10009
10010 2017-06-05 20:33:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10011
10012         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10013         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10014         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10015           libs: encoder: h264,h265,mpeg2: add framerate parameter
10016           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10017
10018 2017-06-05 20:30:07 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10019
10020         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10021         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10022         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10023         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10024           libs: encoder: vp8,h264,h265,mpeg2: set misc param once
10025           Instead of recalculating the miscellaneous buffer parameters for
10026           every buffer, it is only done once, when the encoder is configured.
10027           And for every buffer, the same structures are just copied.
10028           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10029
10030 2017-06-05 17:31:10 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10031
10032         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10033         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10034         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10035         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10036         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10037         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10038           libs: encoder: vp8,h264,h265,mpeg2: refactor misc parameters
10039           This is patch pretends to decouple the assignation of the values
10040           in the parameter structures and the VA buffer's parameters setting.
10041           It may lead to some issues since HRD, framerate or controlrate may
10042           not be handled by the specific encoder, but they are set in
10043           the VA buffer's parameters.
10044           I leave as it because this patch is just a transitional patch.
10045           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10046
10047 2017-06-05 16:34:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10048
10049         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10050           libs: encoder: vp8: fix frame rate calculation
10051           According to the VA documentation:
10052           The framerate is specified as a number of frames per second,
10053           as a fraction.  The denominator of the fraction is given in
10054           the top half (the high two bytes) of the framerate field, and
10055           the numerator is given in the bottom half (the low two bytes).
10056           For example, if framerate is set to (100 << 16 | 750), this is
10057           750 / 100, hence 7.5fps.
10058           If the denominator is zero (the high two bytes are both zero)
10059           then it takes the value one instead, so the framerate is just
10060           the integer in the low 2 bytes.
10061           This patch fixes the the framerate calculation in vp8 encoder
10062           according to this.
10063           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10064
10065 2017-06-02 19:46:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10066
10067         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10068           libs: encoder: vp8: refactor FrameRate parameter
10069           Move frame-rate parameter from ensure_misc_params() to
10070           ensure_contro_rate_param() since it only has meaning when the
10071           control rate is either VBR or CBR.
10072           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10073
10074 2017-06-02 19:33:36 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10075
10076         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10077         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10078         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10079         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10080           libs: encoder: h264,h265,mpeg2,vp8: refactor HDR
10081           Move the Hypothetical Reference Decoder (HRD) parameter, from
10082           ensure_misc_params() to ensure_control_rate_params(), since it
10083           only shall be defined when the control rate is either VBR or CBR.
10084           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10085
10086 2017-06-02 17:21:25 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10087
10088         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10089         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10090         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10091           libs: encoder: h264,vp8,mpeg2: refactor control rate
10092           Instead of filling the control rate param in ensure_misc_params(),
10093           this patch refactor it out, as a first step to merge the same code
10094           for all the encoders.
10095           https://bugzilla.gnome.org/show_bug.cgi?id=783449
10096
10097 2017-06-02 16:28:30 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10098
10099         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10100         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10101         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10102           libs: encoder: h264, h265, mpeg2: remove assert
10103           Remove spurious asserts for misc parameters. If they cannot be
10104           allocated, FALSE is already returned.
10105
10106 2017-06-05 18:19:05 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10107
10108         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10109         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10110           libs: encoder: use VA quality level structure
10111           Instead of using a proxy to story the buffer quality level, the
10112           encoder now uses the native VA structure, which is copied to the
10113           dynamically allocated VAEncMiscParameterBuffer.
10114           This approach is computationally less expensive.
10115
10116 2017-05-26 11:10:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10117
10118         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10119         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
10120         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10121         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10122           libs: standardize the FIXME comment
10123           This is a trivial patch that makes homogeneous the FIXME tag in
10124           comments.
10125           For more info about these comment style:
10126           http://wiki.c2.com/?FixmeComment
10127
10128 2017-05-22 17:20:45 +0200  Hyunjun Ko <zzoon@igalia.com>
10129
10130         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10131           libs: encoder: vp8: set quality level regardless of rate control mode
10132           https://bugzilla.gnome.org/show_bug.cgi?id=782957
10133
10134 2017-05-15 18:38:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10135
10136         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10137         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10138         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10139         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10140           libs: encoder: check for maximum number of slices
10141           Right now, H264 and HEVC can set as a property the number of slices to
10142           process. But each driver can set a maximum number of slices, depending
10143           on the supported profile & entry point.
10144           This patch verifies the current num_slices to process against the maximum
10145           permitted by the driver and the media size.
10146           https://bugzilla.gnome.org/show_bug.cgi?id=780955
10147
10148 2017-05-15 18:36:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10149
10150         * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10151           libs: utils: mark functions as internals
10152           The functions in this header are internal to the library.
10153
10154 2017-05-15 18:35:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10155
10156         * gst-libs/gst/vaapi/gstvaapicontext.h:
10157           libs: context: add missing documentation
10158           Document the region-of-interest configuration variables.
10159
10160 2017-05-12 18:46:50 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10161
10162         * tests/elements/test-vaapisink.c:
10163           tests: elements: vaapisink: handle nav events
10164           The test app can now handle navigation events to rotate the
10165           display.
10166
10167 2017-05-12 18:17:55 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10168
10169         * tests/elements/test-vaapisink.c:
10170           tests: elements: clean up vaapisink test
10171           - Use gst_element_send_event() instead of gst_pad_push_event()
10172           - don't zero App structure
10173           - check for pipeline parsing error
10174           - only get vaapisink for property set
10175
10176 2017-05-12 13:08:30 +0900  Hyunjun Ko <zzoon@igalia.com>
10177
10178         * gst/vaapi/gstvaapisink.c:
10179           vaapisink: keep handle_events flag except that if user want to set
10180           When state of vaapisink is changed from PLAYING to NULL, the handle_events
10181           flag is set to FALSE, and never recovered, and then event thread is never
10182           going to run.
10183           So we should allow to set the flag only when users try it.
10184           https://bugzilla.gnome.org/show_bug.cgi?id=782543
10185
10186 2017-05-12 13:06:24 +0900  Hyunjun Ko <zzoon@igalia.com>
10187
10188         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10189           libs: window: x11: fix src rect info when using vpp
10190           Since we started using VPP in VaapiWindowX11, we need to care about
10191           the case that src rect and window's size are different.
10192           So, once VPP has converted to other format, we should honor the
10193           size of the VPP's surface as source rect. Otherwise, it is cropped
10194           according the previous size of the source rect.
10195           https://bugzilla.gnome.org/show_bug.cgi?id=782542
10196
10197 2017-04-28 15:20:01 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10198
10199         * gst/vaapi/gstvaapipluginutil.c:
10200           plugins: remove par from caps negotiation
10201           https://bugzilla.gnome.org/show_bug.cgi?id=781759
10202
10203 2017-03-30 17:57:42 +0900  Hyunjun Ko <zzoon@igalia.com>
10204
10205         * tests/elements/Makefile.am:
10206         * tests/elements/test-roi.c:
10207           tests: elements: add an example for ROI
10208           This implements a pipleint to recognize difference between ROI and non-ROI.
10209           See comments in this code in detail.
10210           https://bugzilla.gnome.org/show_bug.cgi?id=768248
10211           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10212
10213 2017-03-30 17:54:20 +0900  Hyunjun Ko <zzoon@igalia.com>
10214
10215         * gst/vaapi/gstvaapiencode.c:
10216         * gst/vaapi/gstvaapiencode_h264.c:
10217           vaapiencode: handle custom event GstVaapiEncoderRegionOfInterest
10218           Handles new custom event GstVaapiEncoderRegionOfInterest
10219           to enable/disable a ROI region.
10220           Writes a way to use new event to document.
10221           https://bugzilla.gnome.org/show_bug.cgi?id=768248
10222           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10223
10224 2017-02-23 18:53:18 +0900  Hyunjun Ko <zzoon@igalia.com>
10225
10226         * tests/simple-encoder.c:
10227           tests: simple-encoder: add an option to set ROI
10228           $ simple-encoder -r inputfile.y4m
10229           And you'll got an output file in H264 with two regions of interest.
10230           https://bugzilla.gnome.org/show_bug.cgi?id=768248
10231           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10232
10233 2017-02-23 18:52:48 +0900  Hyunjun Ko <zzoon@igalia.com>
10234
10235         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10236           libs: encoder: h264: set ROI params during encoding
10237           Set ROI params during encoding each frame, which are set via
10238           gst_vaapi_encoder_add_roi ()
10239           https://bugzilla.gnome.org/show_bug.cgi?id=768248
10240           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10241
10242 2017-03-28 17:41:37 +0900  Hyunjun Ko <zzoon@igalia.com>
10243
10244         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10245         * gst-libs/gst/vaapi/gstvaapiencoder.h:
10246         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10247           libs: encoder: add api gst_vaapi_encoder_add/del_roi
10248           Implements and exposes new api gst_vaapi_encoder_add/del_roi to set ROI regions.
10249           https://bugzilla.gnome.org/show_bug.cgi?id=768248
10250
10251 2017-02-23 17:57:07 +0900  Hyunjun Ko <zzoon@igalia.com>
10252
10253         * gst-libs/gst/vaapi/gstvaapicontext.c:
10254         * gst-libs/gst/vaapi/gstvaapicontext.h:
10255         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10256           libs: encoder/context: query region of interest support
10257           Queries if the driver supports "Region of Interest" (ROI) during the config
10258           creation.
10259           This attribute conveys whether the driver supports region-of-interest (ROI)
10260           encoding, based on user provided ROI rectangles.  The attribute value is
10261           partitioned into fields as defined in the VAConfigAttribValEncROI union.
10262           If ROI encoding is supported, the ROI information is passed to the driver
10263           using VAEncMiscParameterTypeROI.
10264           https://bugzilla.gnome.org/show_bug.cgi?id=768248
10265           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10266
10267 2017-05-12 11:11:48 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10268
10269         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10270           libs: encoder: fix a comment
10271
10272 2017-05-11 12:23:28 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10273
10274         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10275           libs: encoder: guard quality level configuration
10276           The quality level appeared in VA-API 0.36. So let's guard its
10277           usage.
10278
10279 2017-04-19 13:04:44 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10280
10281         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10282         * gst-libs/gst/vaapi/gstvaapiencoder.h:
10283         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10284         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10285         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
10286         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
10287         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
10288         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
10289         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10290           encoders: add quality level tuning
10291           This patch adds the handling of VAEncMiscParameterTypeQualityLevel,
10292           in gstreamer-vaapi encoders:
10293           The encoding quality could be set through this structure, if the
10294           implementation supports multiple quality levels. The quality level set
10295           through this structure is persistent over the entire coded sequence, or
10296           until a new structure is being sent. The quality level range can be queried
10297           through the VAConfigAttribEncQualityRange attribute. A lower value means
10298           higher quality, and a value of 1 represents the highest quality. The quality
10299           level setting is used as a trade-off between quality and speed/power
10300           consumption, with higher quality corresponds to lower speed and higher power
10301           consumption.
10302           The quality level is set by the element's parameter "quality-level" with a
10303           hard-coded range of 1 to 8.
10304           Later, when the encoder is configured in run time, just before start
10305           processing, the quality level is scaled to the codec range. If
10306           VAConfigAttribEncQualityRange is not available in the used VA backend, then
10307           the quality level is set to zero, which means "disabled".
10308           All the available codecs now process this parameter if it is available.
10309           https://bugzilla.gnome.org/show_bug.cgi?id=778733
10310           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10311
10312 2017-05-04 18:59:31 +0300  Sebastian Dröge <sebastian@centricular.com>
10313
10314         * configure.ac:
10315         * meson.build:
10316           Back to development
10317
10318 === release 1.12.0 ===
10319
10320 2017-05-04 15:46:03 +0300  Sebastian Dröge <sebastian@centricular.com>
10321
10322         * ChangeLog:
10323         * NEWS:
10324         * configure.ac:
10325         * gstreamer-vaapi.doap:
10326         * meson.build:
10327           Release 1.12.0
10328
10329 2017-05-04 11:49:33 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10330
10331         * gst/vaapi/gstvaapidecodebin.c:
10332           Revert "vaapidecodebin: fix element's classification"
10333           This reverts commit 8cbe03599a4f27c2001380e2ec150c4f4267a9cf.
10334
10335 2017-04-27 22:55:27 -0700  Scott D Phillips <scott.d.phillips@intel.com>
10336
10337         * configure.ac:
10338         * meson.build:
10339           build: Require libva < 0.99.0
10340           libva >= 0.99.0 is not currently supported by gstreamer-vaapi, so
10341           fail to configure instead of failing late in the build.
10342           This libva is bundled in msdk[1] and it is ahead in time with
10343           respect the official and open source libva[2]. GStreamer-VAAPI
10344           only supports the latter for now.
10345           1. https://software.intel.com/en-us/media-sdk/download
10346           2. https://github.com/01org/libva/
10347           https://bugzilla.gnome.org/show_bug.cgi?id=781866
10348
10349 2017-05-02 14:08:54 +0200  Victor Toso <me@victortoso.com>
10350
10351         * gst/vaapi/gstvaapidecodebin.c:
10352           vaapidecodebin: fix element's classification
10353           This bin should have similar classification as decodebin which is
10354           "Generic/Bin/Decoder" otherwise it will appear wrongly as video
10355           decoder.
10356           Signed-off-by: Victor Toso <victortoso@redhat.com>
10357           https://bugzilla.gnome.org/show_bug.cgi?id=782063
10358
10359 === release 1.11.91 ===
10360
10361 2017-04-27 17:49:52 +0300  Sebastian Dröge <sebastian@centricular.com>
10362
10363         * ChangeLog:
10364         * NEWS:
10365         * configure.ac:
10366         * gstreamer-vaapi.doap:
10367         * meson.build:
10368           Release 1.11.91
10369
10370 2017-04-27 13:08:56 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10371
10372         * gst/vaapi/gstvaapipluginutil.c:
10373           Revert "plugins: reject pixel-aspect-ratio with value 0/1"
10374           This reverts commit c0be7b1890ea8da915a81ae82bc9f504aee7cc26.
10375
10376 2017-04-27 12:43:54 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10377
10378         * gst/vaapi/gstvaapipluginutil.c:
10379           plugins: reject pixel-aspect-ratio with value 0/1
10380           Do not negotiate a pixel-aspect-ratio of 0/1.
10381           https://bugzilla.gnome.org/show_bug.cgi?id=781759
10382
10383 2017-04-26 15:48:01 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10384
10385         * gst/vaapi/gstvaapipostprocutil.c:
10386         * gst/vaapi/gstvaapisink.c:
10387           plugins: handle pixel-aspect-ratio with value 0/1
10388           When downstream negotiates a pixel-aspect-ratio of 0/1, the
10389           calculations for resizing and formatting in vaapipostproc and
10390           vaapisink, respectively, failed, and thus the pipeline.
10391           This patch handles this situation by converting p-a-r of 0/1 to
10392           1/1. This is how other sinks, such as glimagesink, work.
10393           https://bugzilla.gnome.org/show_bug.cgi?id=781759
10394
10395 2017-04-27 14:42:55 +0900  Hyunjun Ko <zzoon@igalia.com>
10396
10397         * gst/vaapi/gstvaapivideobufferpool.c:
10398           vaapivideobufferpool: fix leak of created allocator
10399           Since it's created by itself, it should be unref-counted
10400           after gst_buffer_pool_config_set_allocator call. Afterwards,
10401           this allocator will be ref-counted again when assigning to priv->allocator.
10402           https://bugzilla.gnome.org/show_bug.cgi?id=781577
10403
10404 2017-04-21 19:07:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10405
10406         * gst/vaapi/gstvaapivideobufferpool.c:
10407           vaapivideobufferpool: create or reconfig allocator
10408           Sometimes a video decoder could set different buffer pool
10409           configurations, because their frame size changes. In this case we
10410           did not reconfigure the allocator.
10411           This patch enables this use case, creating a new allocator inside
10412           the VAAPI buffer pool if the caps changed, if it is not dmabuf-based.
10413           If so, it is just reconfigured, since it doesn't have a surface pool.
10414           https://bugzilla.gnome.org/show_bug.cgi?id=781577
10415
10416 2017-04-25 12:58:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10417
10418         * tests/elements/Makefile.am:
10419           test: elements: fix compilation flags
10420           This issue was spotten on bug #766704
10421           Original-patch-by: Hyunjun Ko <zzoon@igalia.com>
10422
10423 2017-04-25 16:23:08 +0900  Hyunjun Ko <zzoon@igalia.com>
10424
10425         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10426           libs: windows: wayland: fix leak if failure of sync
10427           Sometimes gst_vaapi_window_wayland_sync returns FALSE when poll returns EBUSY
10428           during destruction.
10429           In this case, if GstVaapiWindow is using vpp, leak of vpp surface happens.
10430           This surface is not attached to anything at this moment, so we should release
10431           it manually.
10432           https://bugzilla.gnome.org/show_bug.cgi?id=781695
10433
10434 2017-04-24 20:30:30 +0100  Tim-Philipp Müller <tim@centricular.com>
10435
10436         * common:
10437           Automatic update of common submodule
10438           From 60aeef6 to 48a5d85
10439
10440 2017-04-21 15:30:09 +0200  Hyunjun Ko <zzoon@igalia.com>
10441
10442         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10443           libs: window: wayland: mark frames as done
10444           When the frame listener callbacks 'done', the number of pending
10445           frames are decreased. Nonetheless, there might be occasions where
10446           the buffer listener callbacks 'release', without calling previously
10447           frame's 'done'. This leads to problem with
10448           gst_vaapi_window_wayland_sync() operation.
10449           This patch marks as done those frames which were callbacked, but if
10450           the buffer callbacks 'release' and associated frame is not marked
10451           as 'done' it is so, thus the number of pending frames keeps correct.
10452           https://bugzilla.gnome.org/show_bug.cgi?id=780442
10453           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10454
10455 2017-04-21 14:07:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10456
10457         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10458           libs: window: wayland: don't sync at destroy()
10459           Don't call gst_vaapi_window_wayland_sync() when destroying the
10460           wayland window instance, since it might lead to a lock at
10461           gst_poll_wait() when more than one instances of vaapisink are
10462           rendering in the same pipeline, this is because they share the
10463           same window.
10464           Since now all the frames are freed we don't need to freed the
10465           private last_frame, since its address is invalid now.
10466           https://bugzilla.gnome.org/show_bug.cgi?id=780442
10467           Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
10468
10469 2017-04-19 10:37:19 +0900  Hyunjun Ko <zzoon@igalia.com>
10470
10471         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10472           libs: window: wayland: null buffer at destroy()
10473           Fix leakage of the last wl buffer.
10474           VAAPI wayland sink needs to send a null buffer while destruction,
10475           it assures that all the wl buffers are released. Otherwise, the last
10476           buffer's callback might be not called, which leads to leak of
10477           GstVaapiDisplay.
10478           This was inspired by gstwaylandsink.
10479           https://bugzilla.gnome.org/show_bug.cgi?id=774029
10480           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10481
10482 2016-10-30 10:43:49 +0900  Jagyum Koo <koojagyum@gmail.com>
10483
10484         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10485           libs: window: wayland: rt event queue at destroy()
10486           The proxy object of wl_buffer for the last frame remains in the
10487           wl_map. Even though we call wl_buffer_destroy() in
10488           frame_release_callback(), the proxy object remains without being
10489           removed, since proxy object is deleted when wayland server sees the
10490           delete request and sends 'delete_id' event.
10491           We need to call roundtrip before destroying event_queue so that the
10492           proxy object is removed. Otherwise, it would be mess up as receiving
10493           'delete_id' event from previous play, when playing in the next
10494           va/wayland window with the same wl_display connection.
10495           https://bugzilla.gnome.org/show_bug.cgi?id=773689
10496           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10497
10498 2017-04-20 20:30:52 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10499
10500         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10501           libs: window: wayland: cancel read at poll message
10502           Always call wl_display_cancel_read() when an errno is set, but
10503           different to EAGAIN or EINTR.
10504           https://bugzilla.gnome.org/show_bug.cgi?id=780442
10505
10506 2017-04-21 18:05:48 +0900  Hyunjun Ko <zzoon@igalia.com>
10507
10508         * gst/vaapi/gstvaapidecodebin.c:
10509         * gst/vaapi/gstvaapidecodebin.h:
10510           vaapidecodebin: skips configuration once it's done
10511           Skips configuration of creation of vpp/capsfilter and link them once it's done.
10512           Otherwise, it always fails when it's trying to re-start playback.
10513           https://bugzilla.gnome.org/show_bug.cgi?id=781573
10514
10515 2017-04-20 18:44:41 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10516
10517         * gst/vaapi/gstvaapipostprocutil.c:
10518           vaapipostproc: fixes for memory leaks
10519           The use of gst_vaapi_value_set_format() and gst_structure_*_value()
10520           requires to clear the used GValue to avoid a memory leak.
10521
10522 2016-12-08 18:51:54 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10523
10524         * gst/vaapi/gstvaapipluginbase.c:
10525         * gst/vaapi/gstvaapipluginbase.h:
10526           plugins: enable direct rendering with envvar
10527           Direct rendering (use vaDeriveImage rather than vaPutImage) has better
10528           performance in some Intel platforms (Haswell, for example) but in others
10529           (Skylake) is the opposite.
10530           In order to have some control, the patch enables the direct rendering
10531           through the environment variable GST_VAAPI_ENABLE_DIRECT_RENDERING.
10532           Also it seems to generating some problems with gallium/radeon backend.
10533           See bug #779642.
10534           https://bugzilla.gnome.org/show_bug.cgi?id=775848
10535
10536 2017-04-08 02:05:21 +1000  Jan Schmidt <jan@centricular.com>
10537
10538         * gst/vaapi/gstvaapidecode.c:
10539           vaapidecode: Don't renegotiate on every flush
10540           If caps don't actually change, don't update the
10541           decoder and don't set the do_renego flag forcing
10542           downstream renegotiation
10543           https://bugzilla.gnome.org/show_bug.cgi?id=781142
10544
10545 2017-04-08 01:21:23 +1000  Jan Schmidt <jan@centricular.com>
10546
10547         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10548           h264 decoder: Implement reset() for faster flush
10549           Implement a custom reset() function for faster flushes
10550           that just clear the reference pictures but don't reallocate
10551           the DPB or clear out SPS/PPS
10552           https://bugzilla.gnome.org/show_bug.cgi?id=781142
10553
10554 2017-04-05 17:24:20 +1000  Jan Schmidt <jan@centricular.com>
10555
10556         * gst-libs/gst/vaapi/gstvaapidecoder.c:
10557         * gst-libs/gst/vaapi/gstvaapidecoder.h:
10558         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
10559         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
10560         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
10561         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
10562         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
10563         * gst/vaapi/gstvaapidecode.c:
10564           Implement decoder reset on flush, rather than recreating
10565           Clear decoders out on a flush but keep the same instance,
10566           rather than completely recreating them. That avoids
10567           unecessarily freeing and recreating surface pools
10568           and contexts, which can be quite expensive
10569           https://bugzilla.gnome.org/show_bug.cgi?id=781142
10570
10571 2017-04-11 18:50:35 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10572
10573         * gst-libs/gst/vaapi/gstvaapiwindow.c:
10574           libs: window: don't add an unused function
10575           The macro GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE only defines
10576           a function that is never used, thus when compiling we might see
10577           this warning (clang):
10578           gstvaapiwindow.c:147:1: warning: unused function 'gst_vaapi_window_class' [-Wunused-function]
10579           GST_VAAPI_OBJECT_DEFINE_CLASS_WITH_CODE (GstVaapiWindow,
10580           ^
10581           https://bugzilla.gnome.org/show_bug.cgi?id=759533
10582
10583 2017-04-11 18:22:00 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10584
10585         * gst-libs/gst/vaapi/gstvaapiwindow.c:
10586         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10587           libs: window: remove surface_format member
10588           Since we always convert to NV12, there is no need to keep a
10589           variable for that. Let us hard code it.
10590           https://bugzilla.gnome.org/show_bug.cgi?id=759533
10591
10592 2017-04-10 17:23:26 +0900  Hyunjun Ko <zzoon@igalia.com>
10593
10594         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10595         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10596         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10597           libs: window: x11/wayland: use new api for conversion
10598           Since gst_vaapi_window_vpp_convert_internal is created,
10599           GstVaapiWindowX11/Wayland can use it for conversion.
10600           Note that once it chooses to use vpp, it's going to use vpp
10601           until the session is finished.
10602           https://bugzilla.gnome.org/show_bug.cgi?id=759533
10603
10604 2017-04-10 11:41:29 +0900  Hyunjun Ko <zzoon@igalia.com>
10605
10606         * gst-libs/gst/vaapi/gstvaapiwindow.c:
10607         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10608           libs: window: add gst_vaapi_window_vpp_convert_internal()
10609           If a backend doesn't support specific format, we can use vpp for conversion
10610           and make it playing.
10611           This api is originated from GstVaapiWindowWayland and moved to GstVaapiWindow,
10612           so that GstVaapiWindowX11 could use it.
10613           https://bugzilla.gnome.org/show_bug.cgi?id=759533
10614
10615 2017-04-03 16:45:36 +0900  Hyunjun Ko <zzoon@igalia.com>
10616
10617         * gst-libs/gst/vaapi/gstvaapiwindow.c:
10618         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
10619         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10620         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
10621         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
10622           libs: window: x11/wayland: chaining up to GstVaapiWindow
10623           Currently, GstVaapiWindowX11/Wayland are not descendants of GstVaapiWindow.
10624           This patch chains them up to GstVaapiWindow to handle common members in GstVaapiWindow.
10625           https://bugzilla.gnome.org/show_bug.cgi?id=759533
10626
10627 2017-04-05 11:19:15 -0700  Scott D Phillips <scott.d.phillips@intel.com>
10628
10629         * gst/vaapi/gstvaapipluginutil.c:
10630           plugins: Fix usage of GST_GL_HAVE_WINDOW_* defines
10631           When these definitions are false, they are undef in the
10632           preprocessor, not a defined value of 0. When they are unset the
10633           compile fails with:
10634           'GST_GL_HAVE_WINDOW_WAYLAND' undeclared (first use in this function)
10635           https://bugzilla.gnome.org/show_bug.cgi?id=780948
10636
10637 2017-04-10 23:51:06 +0100  Tim-Philipp Müller <tim@centricular.com>
10638
10639         * common:
10640           Automatic update of common submodule
10641           From 39ac2f5 to 60aeef6
10642
10643 === release 1.11.90 ===
10644
10645 2017-04-07 16:36:21 +0300  Sebastian Dröge <sebastian@centricular.com>
10646
10647         * ChangeLog:
10648         * NEWS:
10649         * configure.ac:
10650         * gstreamer-vaapi.doap:
10651         * meson.build:
10652           Release 1.11.90
10653
10654 2017-04-03 14:52:41 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10655
10656         * gst/vaapi/gstvaapiencode_h265.c:
10657           vaapiencode: h265: add main-10 in caps template
10658           This patch adds h265's main-10 profile in encoder src caps template.
10659           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10660
10661 2017-04-03 15:34:51 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10662
10663         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10664           libs: encoder: h265: chroma and luma with format
10665           If the profile is main-10 the bit_depth_luma_minus8, in the sequence
10666           parameter buffer, shall be the color format bit depth minus 8, 10-8
10667           which is 2. Also for bit_depth_chroma_minus8.
10668           This patch gets the negotiated sink caps format and queries its
10669           luma's depth and uses that value to fill the mentioned parameters.
10670           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10671
10672 2017-03-29 19:20:26 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10673
10674         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10675           libs: encoder: admit YUV420_10BPP as valid chroma
10676           Accepts as supported the GST_VAAPI_CHROMA_TYPE_YUV420_10BPP chroma
10677           type.
10678           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10679
10680 2017-03-29 19:16:50 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10681
10682         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10683           libs: encoder: h265: ensures profile given format
10684           Set the VA profile as GST_VAAPI_PROFILE_H265_MAIN10 if the
10685           configured color format is P010_10LE.
10686           Otherwise, keep GST_VAAPI_PROFILE_H265_MAIN
10687           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10688
10689 2017-04-06 17:21:21 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10690
10691         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10692           libs: encode: merge all possible surface formats
10693           When the function gst_vaapi_encoder_get_surface_formats() was added
10694           it was under the assumption that any VA profile of the specific codec
10695           supported the same format colors. But it is not, for example the
10696           profiles that support 10bit formats.
10697           In other words, different VA profiles of a same codec may support
10698           different color formats in their upload surfaces.
10699           In order to expose all the possible color formats, if no profile is
10700           specified via source caps, or if the encoder doesn't have yet a
10701           context, all the possible VA profiles for the specific codec are
10702           iterated and their color formats are merged.
10703           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10704
10705 2017-04-06 16:28:12 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10706
10707         * gst/vaapi/gstvaapiencode.c:
10708         * gst/vaapi/gstvaapiencode.h:
10709         * gst/vaapi/gstvaapiencode_h264.c:
10710         * gst/vaapi/gstvaapiencode_h265.c:
10711           vaapiencode: add get_profile() vmethod
10712           This new virtual method, get_profile(), if implemented by specific
10713           encoders, will return the VA profile potentially determined by the
10714           source caps.
10715           Also it is implemented by h264 and h265 encoders, which are the main
10716           users of this vmethod.
10717           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10718
10719 2017-04-06 12:49:24 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10720
10721         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10722         * gst-libs/gst/vaapi/gstvaapiencoder.h:
10723         * gst/vaapi/gstvaapiencode.c:
10724           libs: encoder: pass profile to get_surface_formats()
10725           In order to get the supported surface formats within a specific
10726           profile this patch adds the GstVaapiProfile as property to
10727           gst_vaapi_encoder_get_surface_formats().
10728           Currently the extracted formats are only those related with the
10729           default profile of the element's codec.
10730           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10731
10732 2017-04-06 12:28:51 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10733
10734         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10735           libs: encoder: dummy context for get_surface_formats()
10736           Instead of creating (if it doesn't exist, yet) the encoder's context
10737           the method gst_vaapi_encoder_get_surface_formats() now it creates
10738           dummy contexts, unless the encoder has it already created.
10739           The purpose of this is to avoid setting a encoder's context with a
10740           wrong profile.
10741           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10742
10743 2017-04-04 14:39:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10744
10745         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10746           libs: encoder: refactor init_context_info()
10747           In order to generate vaapi contexts iterative, the function
10748           init_context_info() is refactored to pass, as parameters the
10749           GstVaapiContextInfo and the GstVaapiProfile.
10750           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10751
10752 2017-04-04 14:21:43 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10753
10754         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10755         * gst-libs/gst/vaapi/gstvaapiutils.c:
10756         * gst-libs/gst/vaapi/gstvaapiutils.h:
10757           libs: encoder: initialize chroma_type
10758           Instead of initialize the chroma_type with a undefined value, which
10759           will be converted to GST_VAAPI_CHROMA_TYPE_YUV420 by GstVaapiContext,
10760           this patch queries the VA config, given the received
10761           GstVaapiContextInfo's parameters, and gets the first response.
10762           In order to get the GstVaapiChromaType value, also it was needed to
10763           add a new utility function: to_GstVaapiChromaType(), which, given a
10764           VA_RT_FORMAT_* will return the associated GstVaapiChromaType.
10765           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10766
10767 2017-03-31 11:21:21 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10768
10769         * gst/vaapi/gstvaapiencode.c:
10770           vaapiencode: enhance logs of negotiated caps
10771           https://bugzilla.gnome.org/show_bug.cgi?id=771291
10772
10773 2017-04-05 11:15:41 -0700  Scott D Phillips <scott.d.phillips@intel.com>
10774
10775         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
10776           libs: encoder: vp9: Fix initialization of ref_list
10777           gcc 7.0.1 gives a memset-elt-size warning in gst_vaapi_encoder_vp9_init:
10778           'memset' used with length equal to number of elements without
10779           multiplication by element size [-Werror=memset-elt-size]
10780           https://bugzilla.gnome.org/show_bug.cgi?id=780947
10781
10782 2017-03-31 14:12:43 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10783
10784         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10785           encoder: h264: Fix Backward ReferencePicture flag setting
10786           This is a regression introduced by e829b62 which
10787           override the reference flags and caused issues with
10788           latest intel-vaapi-driver.
10789
10790 2017-03-29 13:22:47 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10791
10792         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10793           libs: encoder: h265: fix code style
10794           Trivial patch to remove a double ';' as end of instruction.
10795
10796 2017-03-28 10:53:20 -0700  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10797
10798         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10799           encoder: h264: Fix B frame encoding artifacts
10800           The current implementation is updating the POC values only
10801           in Slice parameter Buffer.But we are not filling the
10802           picture order count and reference flags in VAPictureH264
10803           while populating VA Picture/Slice structures.The latest
10804           intel-vaapi-driver is directly accessing the above fields
10805           from VAPicutreH264 provided as RefPicLists, which resulted
10806           some wrong maths and prediction errors in driver.
10807           https://bugzilla.gnome.org/show_bug.cgi?id=780620
10808
10809 2017-03-21 16:13:56 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10810
10811         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10812           libs: encoder: h265: remove unused macro definition
10813           Since the h265 encoder doesn't use GValueArray, there is no need to
10814           disable the Glib deprecation warnings, thus removing the macro
10815           definition.
10816
10817 2017-03-20 16:45:01 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
10818
10819         * gst/vaapi/gstvaapidecode.c:
10820         * gst/vaapi/gstvaapiencode.c:
10821         * gst/vaapi/gstvaapipostproc.c:
10822         * gst/vaapi/gstvaapisink.c:
10823           plugins: when debug disabled, default category is NULL
10824           As in gstreamer-vaapi a common base class is used, the specific
10825           default category is passed to the base-plugin initializator, thus
10826           the log messages are categorized with the used plugin.
10827           Nonetheless, when the gst-debug is disabled in compilation time,
10828           it is needed to pass NULL to the base-plugin initializator. This
10829           patch does that.
10830           https://bugzilla.gnome.org/show_bug.cgi?id=780302
10831
10832 2017-03-17 17:14:01 +0900  Hyunjun Ko <zzoon@igalia.com>
10833
10834         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10835         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10836         * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10837         * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10838           libs: h26x: adds gst_vaapi_utils_h26x_write_nal_unit()
10839           Implements gst_vaapi_utils_h26x_write_nal_unit(), which writes NAL
10840           unit length and data to a bitwriter.
10841           Note that this helper function applies EPB (Emulation Prevention
10842           Bytes), since otherwise produced codec_data might be broken when
10843           decoder/parser considering EPB, starts parsing.
10844           See sections 7.3 and 7.4 of the H264 and H264 specifications, which
10845           describes the emulation_prevention_three_byte.
10846           https://bugzilla.gnome.org/show_bug.cgi?id=778750
10847           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10848
10849 2017-03-17 16:49:41 +0900  Hyunjun Ko <zzoon@igalia.com>
10850
10851         * gst-libs/gst/vaapi/Makefile.am:
10852         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10853         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10854         * gst-libs/gst/vaapi/gstvaapiutils_h26x.c:
10855         * gst-libs/gst/vaapi/gstvaapiutils_h26x_priv.h:
10856         * gst-libs/gst/vaapi/meson.build:
10857           libs: utils: h26x: create vaapiutils_h26x
10858           Since there is duplicated code in h264/265 encoder, we could
10859           refactor it to avoid duplicated code.
10860           https://bugzilla.gnome.org/show_bug.cgi?id=778750
10861           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10862
10863 2017-03-17 16:32:36 +0900  Hyunjun Ko <zzoon@igalia.com>
10864
10865         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
10866         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10867           libs: encoder: h264/5: fix wrong return value
10868           https://bugzilla.gnome.org/show_bug.cgi?id=778750
10869
10870 2017-03-13 17:29:59 +0900  Hyunjun Ko <zzoon@igalia.com>
10871
10872         * gst/vaapi/gstvaapiencode_h264.c:
10873         * gst/vaapi/gstvaapiencode_h265.c:
10874           docs: h264/h265: put parser to the example pipeline
10875           https://bugzilla.gnome.org/show_bug.cgi?id=778749
10876
10877 2017-03-13 16:20:59 +0900  Hyunjun Ko <zzoon@igalia.com>
10878
10879         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
10880           libs: encoder: h265: fix reserved length of bits
10881           Fix reserved length of bits for bit_depth_luma_minus8 and bit_depth_chroma_minus8
10882           https://bugzilla.gnome.org/show_bug.cgi?id=778749
10883
10884 2017-03-12 18:59:42 +0100  Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10885
10886         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
10887         * tests/test-display.c:
10888           O_CLOEXEC needs _GNU_SOURCE defined
10889           From man open(2):
10890           The O_CLOEXEC, O_DIRECTORY, and O_NOFOLLOW flags are not specified
10891           in POSIX.1-2001, but are specified in POSIX.1-2008.  Since glibc
10892           2.12, one can obtain their definitions by defining either
10893           _POSIX_C_SOURCE with a value greater than or equal to 200809L or
10894           _XOPEN_SOURCE with a value greater than or equal to 700.  In glibc
10895           2.11 and earlier, one obtains the definitions by defining
10896           _GNU_SOURCE.
10897           And indeed, with the uClibc C library, O_CLOEXEC is not exposed if
10898           _GNU_SOURCE is not defined. Therefore, this commit fixes the build of
10899           gstreamer-vaapi with the uClibc C library.
10900           Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10901           https://bugzilla.gnome.org/show_bug.cgi?id=779953
10902
10903 2017-03-14 16:07:08 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10904
10905         * README:
10906           README: fix "Sources" section
10907           Update the URL where the release source tarballs can be downloaded.
10908
10909 2017-03-12 21:39:53 +0100  Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10910
10911         * README:
10912           README: fix "Reporting bugs" section
10913           The "Reporting bugs" section gives
10914           https://bugzilla.gnome.org/enter_bug.cgi?product=gstreamer-vaapi as the
10915           link to report a bug, but this link says "Sorry, entering a bug into the
10916           product gstreamer-vaapi has been disabled.".
10917           This commit fixes the URL to point to the proper location, and also
10918           removes the following paragraph that is no longer correct.
10919           Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
10920           https://bugzilla.gnome.org/show_bug.cgi?id=779954
10921
10922 2017-03-03 19:55:00 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10923
10924         * gst/vaapi/gstvaapipluginutil.c:
10925           plugins: retry to create the VA display
10926           Particularly in GNOME Wayland, the negotiated or created GL context
10927           defines a GLX environment, but VAAPI fails to create a GLX VA
10928           display because there is no a DRI2 connection.
10929           This patch retries to create the VA display if VA cannot create one
10930           with the GL context parameters. Now using the old list of display
10931           types.
10932           This should also work in the case of systems with two GPU, when the
10933           non-VAAPI has the graphics environment, and the VAAPI-enabled one
10934           shall work headless.
10935           https://bugzilla.gnome.org/show_bug.cgi?id=772838
10936
10937 2016-10-19 15:33:41 +0100  Julien Isorce <j.isorce@samsung.com>
10938
10939         * gst/vaapi/gstvaapipostproc.c:
10940           vaapipostproc: texture upload if driver supports GL
10941           Removes GstVideoGLTextureUploadMeta caps feature if the driver
10942           doesn't support opengl.
10943           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10944           https://bugzilla.gnome.org/show_bug.cgi?id=772838
10945
10946 2016-10-25 17:48:47 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10947
10948         * gst/vaapi/gstvaapidecode.c:
10949           vaapidecode: texture upload if driver supports GL
10950           When the allowed source pad caps are generated, the GLTextureUpload caps are
10951           only inserted if the driver support OpenGL.
10952           https://bugzilla.gnome.org/show_bug.cgi?id=772838
10953
10954 2017-02-22 15:02:01 -0800  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
10955
10956         * configure.ac:
10957           configure: Add missing compiler flags
10958           The AC_CHECK_HEADERS macro was failing to locate some headers, in
10959           particular the va_enc_* headers due to missing compiler flags.
10960           https://bugzilla.gnome.org/show_bug.cgi?id=779101
10961           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
10962
10963 2017-03-01 14:48:46 +0900  Hyunjun Ko <zzoon@igalia.com>
10964
10965         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
10966           libs: window: wayland: handle more VAStatus to use vpp
10967           Since the commit landed https://github.com/01org/intel-vaapi-driver/pull/55,
10968           we should consider more returned VAStatus to use vpp.
10969           https://bugzilla.gnome.org/show_bug.cgi?id=779400
10970
10971 2017-02-23 15:16:06 +0900  Hyunjun Ko <zzoon@igalia.com>
10972
10973         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10974           libs: encoder: ensure profile when context initialization
10975           We can't be sure that encoder's profile is assgined already or not
10976           at context initialization.
10977           https://bugzilla.gnome.org/show_bug.cgi?id=779120
10978
10979 2017-02-23 15:13:59 +0900  Hyunjun Ko <zzoon@igalia.com>
10980
10981         * gst-libs/gst/vaapi/gstvaapiencoder.c:
10982           libs: encoder: set rate control info only when query succeed
10983           Currently, it set rate control information even when query fails.
10984           In addition, it doesn't update any more since the flag
10985           got_rate_control_mask is set to TRUE.
10986           https://bugzilla.gnome.org/show_bug.cgi?id=779120
10987
10988 2017-02-24 16:00:23 +0200  Sebastian Dröge <sebastian@centricular.com>
10989
10990         * meson.build:
10991           meson: Update version
10992
10993 2017-02-24 15:38:22 +0200  Sebastian Dröge <sebastian@centricular.com>
10994
10995         * configure.ac:
10996           Back to development
10997
10998 === release 1.11.2 ===
10999
11000 2017-02-24 15:10:21 +0200  Sebastian Dröge <sebastian@centricular.com>
11001
11002         * ChangeLog:
11003         * NEWS:
11004         * configure.ac:
11005         * gstreamer-vaapi.doap:
11006           Release 1.11.2
11007
11008 2017-02-16 18:37:59 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11009
11010         * gst/vaapi/gstvaapiencode.c:
11011           vaapiencode: merge tags for downstream's info
11012           Add encoder and codec name and the bitrate into the output for
11013           informational purposes. Some muxers or application use it as
11014           media metadata.
11015           https://bugzilla.gnome.org/show_bug.cgi?id=778781
11016
11017 2017-02-17 01:27:52 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11018
11019         * gst-libs/gst/vaapi/gstvaapiencoder.c:
11020           libs: encoder: caps can change at any time
11021           The encoder should be able to change its caps even it is already
11022           processing a stream.
11023           This is suppose to happen after a flush so the codedbuf_queue should
11024           be empty.
11025           https://bugzilla.gnome.org/show_bug.cgi?id=775490
11026
11027 2017-02-17 01:19:00 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11028
11029         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
11030           libs: encoder: h265: bail if nal unit type fails
11031           Bail out if the NAL unit type is not recognized.
11032           https://bugzilla.gnome.org/show_bug.cgi?id=778782
11033
11034 2017-02-16 18:11:50 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11035
11036         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11037         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
11038           libs: decoder: h264,h265 avoid uninitialized variable
11039           Configuring GCC to verify possible usage of uninitialized variables,
11040           shows that found_index might be used without previous assignation.
11041           This patch assigns a initial value to found_index, also avoid a
11042           branching when returning the result value.
11043           https://bugzilla.gnome.org/show_bug.cgi?id=778782
11044
11045 2017-02-13 16:39:41 -0800  Scott D Phillips <scott.d.phillips@intel.com>
11046
11047         * configure.ac:
11048         * gst-libs/gst/vaapi/Makefile.am:
11049         * gst/vaapi/gstvaapidecode.c:
11050         * gst/vaapi/gstvaapidecodebin.c:
11051           build: rename USE_HEVC_DECODER to USE_H265_DECODER
11052           Rename to be consistent with H.264 and also H.265 encoder. The
11053           meson build assumed this was already consistently named, and so
11054           previously was not able to actually build the H.265 decoder.
11055           https://bugzilla.gnome.org/show_bug.cgi?id=778576
11056
11057 2017-02-15 19:14:59 +0000  Tim-Philipp Müller <tim@centricular.com>
11058
11059         * meson.build:
11060           meson: gstreamer-codecparsers is a required dep
11061           Just like in configure.ac.
11062
11063 2017-02-15 00:26:21 +0000  Tim-Philipp Müller <tim@centricular.com>
11064
11065         * Makefile.am:
11066           meson: dist meson build files
11067           Ship meson build files in tarballs, so people who use tarballs
11068           in their builds can start playing with meson already.
11069
11070 2017-02-10 09:51:38 +0900  Hyunjun Ko <zzoon@igalia.com>
11071
11072         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11073           libs: encoder: vp8: add CBR encoding mode
11074           This patch enables the Constant BitRate encoding mode in VP8 encoder.
11075           Basically it adds the configuration parameters required by libva to
11076           CBR enconding.
11077           Original-Patch-By: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11078           https://bugzilla.gnome.org/show_bug.cgi?id=749950
11079
11080 2017-02-09 12:39:19 +0900  Hyunjun Ko <zzoon@igalia.com>
11081
11082         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
11083           libs: encoder: vp8: fix bitrate calculation
11084           Base encoder's unit of bitrate is in Kbps. We should honor it so
11085           we use the value of bitrate in VA, in which is expressed in bps.
11086           https://bugzilla.gnome.org/show_bug.cgi?id=749950
11087
11088 2017-02-09 12:49:44 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11089
11090         * gst/vaapi/gstvaapipluginbase.c:
11091           plugins: fix build when gcc
11092           In commit a8e482f9 we added a function without parameters, but gcc
11093           doesn't like that.
11094
11095 2017-02-06 15:46:20 -0800  Scott D Phillips <scott.d.phillips@intel.com>
11096
11097         * gst-libs/gst/base/meson.build:
11098         * gst-libs/gst/meson.build:
11099         * gst-libs/gst/vaapi/meson.build:
11100         * gst-libs/meson.build:
11101         * gst/meson.build:
11102         * gst/vaapi/meson.build:
11103         * meson.build:
11104         * meson_options.txt:
11105           vaapi: add meson build
11106           https://bugzilla.gnome.org/show_bug.cgi?id=778250
11107
11108 2017-02-08 10:17:40 -0800  Scott D Phillips <scott.d.phillips@intel.com>
11109
11110         * configure.ac:
11111         * gst-libs/gst/vaapi/Makefile.am:
11112         * gst-libs/gst/vaapi/gstvaapidisplay.c:
11113         * gst-libs/gst/vaapi/gstvaapiversion.h.in:
11114           make: remove gstvaapiversion.h generation
11115           https://bugzilla.gnome.org/show_bug.cgi?id=778250
11116
11117 2016-10-19 15:47:41 +0100  Julien Isorce <j.isorce@samsung.com>
11118
11119         * gst/vaapi/gstvaapipluginbase.c:
11120           plugins: use linear storage if not the same device
11121           When dmabuf is negotiated downstream and decoding and rendering are
11122           not done on the same device, the layout has to be linear in order for
11123           the memory to be shared accross devices, since each device has its
11124           own way to do tiling.
11125           Right now this code is rather just a to-do comment, since we are not
11126           fetching the device ids.
11127           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11128
11129 2017-02-08 14:17:05 +0900  Hyunjun Ko <zzoon@igalia.com>
11130
11131         * gst-libs/gst/vaapi/gstvaapiutils.c:
11132           libs: utils: add HEVC profiles representation
11133           https://bugzilla.gnome.org/show_bug.cgi?id=778318
11134
11135 2017-02-07 16:17:39 +0900  Hyunjun Ko <zzoon@igalia.com>
11136
11137         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11138           libs: decoder: h264: reduce frame number of gaps
11139           Reduce frame num gaps so that we don't have to create unnecessary
11140           dummy pictures, just throw them away.
11141           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11142           https://bugzilla.gnome.org/show_bug.cgi?id=777506
11143
11144 2016-10-16 01:04:09 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11145
11146         * gst/vaapi/gstvaapidecode.c:
11147           vaapidecode: don't GLTextureUpload if dmabuf
11148           Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11149           element can handle dmabuf-based buffers, avoiding its negotiation.
11150
11151 2016-10-19 16:21:21 +0100  Julien Isorce <j.isorce@samsung.com>
11152
11153         * gst/vaapi/gstvaapidecode.c:
11154           vaapidecode: make pool to export decoder's surface
11155           Use new -base API gst_video_decoder_allocate_output_frame_full() to
11156           pass the current proxy/surface to the pool.
11157           The pool will will export thins given surface instead of exporting a
11158           brand new surface that will never be filled in with meaningfull data.
11159           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11160
11161 2017-02-03 17:06:29 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11162
11163         * gst/vaapi/gstvaapipluginbase.c:
11164           plugins: decoder can negotiate dmabuf downstream
11165
11166 2016-10-19 16:07:07 +0100  Julien Isorce <j.isorce@samsung.com>
11167
11168         * gst/vaapi/gstvaapivideobufferpool.c:
11169           vaapivideobufferpool: override acquire_buffer()
11170           Overriding the vmethod acquire_buffer() it is possible to attach the
11171           right GstMemory to the current acquired buffer.
11172           As a matter of fact, this acquired buffer may contain any instantiated
11173           GstFdmemory, since this buffer have been popped out from the buffer
11174           pool, which is a FIFO queue. So there is no garantee that this buffer
11175           matches with the current processed surface. Evenmore, the VA driver
11176           might not use a FIFO queue. Therefore, it is no way to guess on the
11177           ordering.
11178           In short, acquire_buffer on the VA driver and on the buffer pool return
11179           none matching data, we have to manually attach the right GstFdMemory to
11180           the acquired GstBuffer. The right GstMemory is the one associated with
11181           the current surface.
11182           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11183
11184 2016-10-19 16:05:04 +0100  Julien Isorce <j.isorce@samsung.com>
11185
11186         * gst/vaapi/gstvaapivideobufferpool.c:
11187         * gst/vaapi/gstvaapivideomemory.c:
11188           vaapivideomemory: export surface if it is provided
11189           gst_vaapi_dmabuf_memory_new() always exports a surface. Previously, it
11190           had to create that surface. Now it can also export an already provided
11191           surface. It is useful to export decoder's surfaces (from VA context).
11192           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11193
11194 2016-10-19 15:55:27 +0100  Julien Isorce <j.isorce@samsung.com>
11195
11196         * gst/vaapi/gstvaapivideobufferpool.h:
11197           vaapivideobufferpool: add GstVaapiVideoBufferPoolAcquireParams
11198           Useful to let the pool know the current surface proxy when calling
11199           gst_buffer_pool_alloc_buffer() / gst_buffer_pool_acquire_buffer()
11200           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11201
11202 2016-10-19 15:09:34 +0100  Julien Isorce <j.isorce@samsung.com>
11203
11204         * gst-libs/gst/vaapi/gstvaapisurface.c:
11205         * gst-libs/gst/vaapi/gstvaapisurface.h:
11206           libs: surface: add gst_vaapi_surface_{set,peek}_buffer_proxy()
11207           These functions are useful when a dmabuf-based memory is instantiated in
11208           order to relate the generated buffer @proxy with the processed @surface.
11209           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11210
11211 2016-10-19 15:07:31 +0100  Julien Isorce <j.isorce@samsung.com>
11212
11213         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11214         * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11215         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
11216           libs: bufferproxy: gst_vaapi_buffer_proxy_{set,peek}_mem()
11217           This patch adds a GstMemory as a variable member of the buffer proxy,
11218           because we will need to associate the buffer proxy with the memory
11219           which exposes it. Later, we will know which memory, in the video buffer
11220           pool, is attached to the processed surface.
11221           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11222
11223 2016-10-19 15:33:41 +0100  Julien Isorce <j.isorce@samsung.com>
11224
11225         * gst/vaapi/gstvaapipostproc.c:
11226           vaapipostproc: don't GLTextureUpload if dmabuf
11227           Do not add the meta:GstVideoGLTextureUploadMeta feature if the render
11228           element can handle dmabuf-based buffers, avoiding its negotiation.
11229           Similar as "vaapidecode: do not add meta:GstVideoGLTextureUploadMeta
11230           feature if can dmabuf"
11231           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11232
11233 2016-12-16 14:12:30 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11234
11235         * gst/vaapi/gstvaapipluginbase.c:
11236           plugins: enable DMAbuf allocator to downstream
11237           If the negotiated caps are raw caps and downstream supports the
11238           EGL_EXT_image_dma_buf_import extension, then the created allocator
11239           is the DMAbuf, configured to downstream.
11240           At this moment, the only element which can push dmabuf-based buffers
11241           to downstream, is vaapipostproc.
11242
11243 2016-06-02 22:13:51 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11244
11245         * gst/vaapi/gstvaapipluginbase.c:
11246         * gst/vaapi/gstvaapipluginbase.h:
11247           plugins: check if negotiate dmabuf with downstream
11248           In order to enable, in the future, dmabuf-based buffers, the vaapi base
11249           plugin needs to check if downstream can import dmabuf buffers.
11250           This patch checks if downstream can handle dmabuf, by introspecting the
11251           shared GL context. If the GL context is EGL/GLES2 and have the extension
11252           EGL_EXT_image_dma_buf_import, then dmabuf can be negotiated.
11253           Original-patch-by: Julien Isorce <j.isorce@samsung.com>
11254
11255 2016-10-19 15:37:04 +0100  Julien Isorce <j.isorce@samsung.com>
11256
11257         * gst/vaapi/gstvaapivideomemory.c:
11258           vaapivideomemory: release proxy's data if downstream
11259           The surface created for downstream is going to be filled by VAAPI
11260           elements. So, the driver needs write access on that surface.
11261           This patch releases the derived image held by the proxy, thus the
11262           surface is unmarked as busy.
11263           This is how it has to be done as discussed on libva mailing list.
11264           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11265
11266 2016-10-19 15:01:04 +0100  Julien Isorce <j.isorce@samsung.com>
11267
11268         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
11269         * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
11270           libs: bufferproxy: add gst_vaapi_buffer_proxy_release_data()
11271           Adds an API to request the user's data release in the buffer proxy.
11272           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11273
11274 2016-10-19 15:27:03 +0100  Julien Isorce <j.isorce@samsung.com>
11275
11276         * gst/vaapi/gstvaapipluginbase.c:
11277         * gst/vaapi/gstvaapivideomemory.c:
11278         * gst/vaapi/gstvaapivideomemory.h:
11279           vaapivideomemory: add direction to dmabuf allocator
11280           Add GstPadDirection param to gst_vaapi_dmabuf_allocator_new(), thus
11281           we later could do different thing when the allocated memory is for
11282           upstream or dowstream, as required by VA-API.
11283           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11284
11285 2016-12-15 15:59:30 +0900  Hyunjun Ko <zzoon@igalia.com>
11286
11287         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
11288           libs: utils: return NULL if failed to get surface formats
11289           Thus, when generating the allowed caps, the element will throw a
11290           warning and it will use its caps template.
11291           This behavior might be a bug in the VA driver.
11292           https://bugzilla.gnome.org/show_bug.cgi?id=775490
11293
11294 2015-11-26 18:21:08 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11295
11296         * gst-libs/gst/vaapi/gstvaapidisplay.c:
11297           Revert "vaapidisplay: mark X11 display as compatible with EGL"
11298           This reverts commit 200b1baabc066f8a4102f82f539655d588200ec9.
11299
11300 2017-02-01 14:32:45 +0900  Hyunjun Ko <zzoon@igalia.com>
11301
11302         * gst/vaapi/gstvaapipostproc.c:
11303           vaapipostproc: set GST_VAAPI_POSTPROC_FLAG_SIZE according to src caps
11304           A value of width/height property should be set to out caps,
11305           if negotiation had been going properly.
11306           So we can use srcpad_info when making decision of scaling.
11307           https://bugzilla.gnome.org/show_bug.cgi?id=778010
11308
11309 2017-01-27 12:10:54 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11310
11311         * gst/vaapi/gstvaapidecode.c:
11312         * gst/vaapi/gstvaapiencode.c:
11313         * gst/vaapi/gstvaapipluginutil.c:
11314         * gst/vaapi/gstvaapipluginutil.h:
11315         * gst/vaapi/gstvaapipostproc.c:
11316         * gst/vaapi/gstvaapisink.c:
11317           plugins: handle GL params through context query
11318           If the element instantiated the GL display and context, they should
11319           handle them too through the context query.
11320           https://bugzilla.gnome.org/show_bug.cgi?id=777409
11321
11322 2017-01-26 12:02:56 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11323
11324         * gst/vaapi/gstvaapipluginbase.c:
11325         * gst/vaapi/gstvaapipluginbase.h:
11326         * gst/vaapi/gstvaapipluginutil.c:
11327           plugins: create a GL context on certain conditions
11328           If a GstVaapiDisplay is not found in the GStreamer context sharing,
11329           then VAAPI elements look for a local GstGLContext in gst context
11330           sharing mechanism ('gst.gl.local.context').
11331           If this GstGLContext not found either then, only the VAAPI decoders
11332           and the VAAPI post-processor, will try to instantiate a new
11333           GstGLContext.
11334           If a valid GstGLContext is received, then a new GstVaapiDisplay will
11335           be instantiated with the platform, API and windowing specified by the
11336           instantiated GstGLContext.
11337           Original-Patch-By: Matt Fischer <matt.fischer@garmin.com>
11338           https://bugzilla.gnome.org/show_bug.cgi?id=777409
11339
11340 2016-08-02 15:48:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11341
11342         * gst/vaapi/gstvaapivideocontext.c:
11343           vaapivideocontext: context type can be rejected
11344           Instead of calling g_return_val_if_fail() to check the context type, we
11345           should use a normal conditional, since it is possible that other context types
11346           can arrive and try to be assigned. Otherwise a critical log message is
11347           printed.
11348           This happens when we use playbin3 with vaapipostproc as video-filter.
11349           https://bugzilla.gnome.org/show_bug.cgi?id=777409
11350
11351 2017-01-20 19:57:52 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11352
11353         * gst/vaapi/gstvaapipostprocutil.c:
11354           vaapipostproc: use sink caps par if not requested
11355           Use the sink caps pixel-aspect-ratio to fixate the src caps, if it
11356           is not already set.
11357           https://bugzilla.gnome.org/show_bug.cgi?id=777395
11358
11359 2017-01-20 19:00:24 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11360
11361         * gst/vaapi/gstvaapipostproc.c:
11362         * gst/vaapi/gstvaapipostprocutil.c:
11363           vaapipostproc: set interlace mode
11364           if the vaapipostproc is configured to not do deinterlacing, the
11365           interlace-mode in the src caps should be the same as the input caps.
11366           https://bugzilla.gnome.org/show_bug.cgi?id=777395
11367
11368 2017-01-20 16:10:32 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11369
11370         * gst/vaapi/gstvaapisink.c:
11371           vaapisink: fix gcc compiler warning
11372           warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
11373
11374 2017-01-12 19:54:41 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11375
11376         * gst/vaapi/gstvaapisink.c:
11377           vaapisink: don't use member variable outside lock
11378           Thus a race condition segfault is avoided.
11379           Original-patch-by: Matt Staples <staples255@gmail.com>
11380           https://bugzilla.gnome.org/show_bug.cgi?id=777146
11381
11382 2017-01-18 17:20:21 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11383
11384         * gst/vaapi/gstvaapipluginbase.c:
11385         * gst/vaapi/gstvaapipostproc.c:
11386           plugins: avoid log flood when activating pool
11387           Every time a new buffer is allocated, the pool is activated. This
11388           doesn't impact in performance since gst_buffer_pool_set_active()
11389           checks the current state of the pool. Nonetheless it logs out a
11390           message if the state is the same, and it floods the logging subsystem
11391           if it is enabled.
11392           To avoid this log flooding first the pool state is checked before
11393           changing it.
11394
11395 2017-01-13 21:26:15 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11396
11397         * gst-libs/gst/vaapi/gstvaapidecoder.c:
11398         * gst-libs/gst/vaapi/gstvaapidecoder.h:
11399         * gst/vaapi/gstvaapidecode.c:
11400         * gst/vaapi/gstvaapidecode.h:
11401           vaapidecode: update internal decoder sink caps
11402           When a new sink caps arrive the internal decoder state is updated
11403           and, if it is, request a downstream renegotiation.
11404           Previously, when new caps arrived the whole decoder where destroyed
11405           and recreated. Now, if the caps are compatible or has the same codec,
11406           the internal decoder is kept, but a downstream renegotiation is
11407           requested.
11408           https://bugzilla.gnome.org/show_bug.cgi?id=776979
11409
11410 2017-01-12 16:33:13 +0200  Sebastian Dröge <sebastian@centricular.com>
11411
11412         * configure.ac:
11413           Back to development
11414
11415 === release 1.11.1 ===
11416
11417 2017-01-12 16:27:12 +0200  Sebastian Dröge <sebastian@centricular.com>
11418
11419         * ChangeLog:
11420         * NEWS:
11421         * configure.ac:
11422         * gstreamer-vaapi.doap:
11423           Release 1.11.1
11424
11425 2017-01-12 12:49:55 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11426
11427         * gst-libs/gst/vaapi/gstvaapiutils.c:
11428           vaapi: bump ifdef to API 0.40.0 for log redirect
11429           vaSetInfoCallback() is not released yet. It is going to appear in
11430           VA-API 0.40.0
11431
11432 2017-01-12 13:45:29 +0200  Sebastian Dröge <sebastian@centricular.com>
11433
11434         * gst-libs/gst/vaapi/gstvaapiutils.c:
11435           vaapiutils: Fix compilation with latest and previous libva releases
11436           vaSetInfoCallback() was defined after 0.39.4 / 1.7.3, so check for
11437           0.39.5 instead.
11438
11439 2017-01-11 16:04:24 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11440
11441         * gst-libs/gst/vaapi/gstvaapidisplay.c:
11442         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11443         * gst-libs/gst/vaapi/gstvaapiutils.c:
11444         * gst-libs/gst/vaapi/gstvaapiutils.h:
11445           libs: display: redirect logging at initialize
11446           Redirect libva's logs to GStreamer logging mechanism. This is
11447           particularly useful when VA is initialized, because it always logs
11448           out the drivers details.
11449           In order to achieve this a new helper function was added as a wrapper
11450           for the vaInitialize() function.
11451           https://bugzilla.gnome.org/show_bug.cgi?id=777115
11452
11453 2017-01-10 15:15:31 +0900  Hyunjun Ko <zzoon@igalia.com>
11454
11455         * gst/vaapi/gstvaapipluginbase.c:
11456           plugins: provide at least two buffers in sink pool
11457           Adds two buffers as the default value of minimum buffer.
11458           This would be used when creating and proposing vaapi bufferpool for
11459           sink pad, hence the upstream element will keep, at least, these two
11460           buffers.
11461           https://bugzilla.gnome.org/show_bug.cgi?id=775203
11462           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11463
11464 2017-01-10 13:49:27 +0900  Hyunjun Ko <zzoon@igalia.com>
11465
11466         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
11467           libs: decoder: h264: don't update cloned attributes
11468           If the frame is a cloned picture, its PTS comes from its parent
11469           picture.  In addition, the base decoder doesn't set a valid PTS to
11470           the frame corresponding to the cloned picture.
11471           https://bugzilla.gnome.org/show_bug.cgi?id=774254
11472
11473 2017-01-09 19:25:24 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11474
11475         * gst/vaapi/gstvaapivideomemory.c:
11476           vaapivideomemory: check for display
11477           This patch fixes the check of display, rather than check for the
11478           meta, which it is known it exists.
11479
11480 2017-01-09 16:23:56 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11481
11482         * gst/vaapi/gstvaapivideomemory.c:
11483         * gst/vaapi/gstvaapivideomemory.h:
11484           vaapivideomemory: rename dmabuf allocator parameters
11485           Rename the parameters 'vip' and 'flags' to 'alloc_info' and
11486           'surface_alloc_flags' respectively. The purpose of this change is
11487           to auto-document those parameters.
11488           Also, aligned to this patch, the local 'alloc_info' variable was
11489           renamed as 'surface_info', because it stores the possible surface's
11490           video info, not the allocate one.
11491
11492 2017-01-09 16:18:32 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11493
11494         * gst/vaapi/gstvaapivideomemory.c:
11495         * gst/vaapi/gstvaapivideomemory.h:
11496           vaapivideomemory: rename vip to alloc_info parameter
11497           In order to auto-document the code, this patch renames the 'vip'
11498           parameter in the functions related to gst_vaapi_video_allocator_new ()
11499           to 'alloc_info', since it declares the allocation video info from
11500           the vaapi buffer pool.
11501
11502 2017-01-09 16:08:17 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11503
11504         * gst/vaapi/gstvaapivideomemory.c:
11505           vaapivideomemory: use GST_VIDEO_INFO_FORMAT_STRING()
11506           Use the existing local macro GST_VIDEO_INFO_FORMAT_STRING() to get
11507           the video format string.
11508
11509 2017-01-09 12:51:11 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11510
11511         * gst/vaapi/gstvaapivideomemory.c:
11512           vaapivideomemory: unroll gst_vaapi_surface_new_with_format()
11513           gst_vaapi_surface_new_with_format() is a wrapper for
11514           gst_vaapi_surface_new_full (). In this case, the former is simpler
11515           than the first. This patch changes that.
11516
11517 2017-01-04 19:23:06 +0900  Hyunjun Ko <zzoon@igalia.com>
11518
11519         * gst/vaapi/gstvaapipostproc.c:
11520           vaapipostproc: notify if src pad caps changed
11521           If src pad caps have changed, it needs to notify it downstream. In
11522           addition, do not set passthrough if they have changed.
11523           Otherwise, transform sometimes starts processing before caps change.
11524           The passthrough value will be set in fixate later in this case.
11525           https://bugzilla.gnome.org/show_bug.cgi?id=775204
11526
11527 2016-12-14 15:51:01 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11528
11529         * gst/vaapi/gstvaapidecodebin.c:
11530           vaapidecodebin: capsfilter to optimize negotiation
11531           Add a capsfilter forcing the caps
11532           "video/x-raw(memory:VASurface), format=(string)NV12" between the
11533           queue and the vaapipostproc so no renegotiation is required.
11534           https://bugzilla.gnome.org/show_bug.cgi?id=776175
11535
11536 2016-12-21 17:38:07 +0900  Hyunjun Ko <zzoon@igalia.com>
11537
11538         * gst/vaapi/gstvaapivideomemory.c:
11539           vaapivideomemory: fail surface/image configuration
11540           To detect and handle errors during allocator_configure_surface_info()
11541           and allocator_conigure_image_info().
11542           https://bugzilla.gnome.org/show_bug.cgi?id=776084
11543           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11544
11545 2016-12-21 17:50:41 +0900  Hyunjun Ko <zzoon@igalia.com>
11546
11547         * gst/vaapi/gstvaapisink.c:
11548           vaapisink: ensures raw caps at start()
11549           Calls gst_vaapi_plugin_base_get_allowed_raw_caps() at start() to avoid
11550           race conditions at get_caps(), especially with multiple src elements.
11551           https://bugzilla.gnome.org/show_bug.cgi?id=776303
11552
11553 2016-12-09 14:51:52 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11554
11555         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
11556           libs: surface: fix error handling code style
11557
11558 2016-12-09 16:14:14 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11559
11560         * gst/vaapi/gstvaapivideomemory.c:
11561           vaapivideomemory: add gst_video_info_update_from_surface()
11562           With this function is possible to refactor and remove duplicated code
11563           between dmabuf configuration and direct rendering/uploading
11564           configuration.
11565
11566 2016-12-09 15:51:32 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11567
11568         * gst/vaapi/gstvaapivideomemory.c:
11569           vaapivideomemory: no log object at initialization
11570           When an instance of GstVaapiVideoAllocator fails at initializing, the
11571           log message should not include the allocator's object, because it is
11572           going to be unrefed.
11573
11574 2016-12-09 17:56:02 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11575
11576         * gst/vaapi/gstvaapidecode.c:
11577           vaapidecode: lock stream when setting caps
11578
11579 2016-12-09 17:42:42 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11580
11581         * gst/vaapi/gstvaapidecode.c:
11582           Revert "vaapidecode: implement negotiate() vmethod"
11583           This reverts commit 3285121181295c544480fc6ba756845b16285d30.
11584           videodecode's negotiate() vmethod is also called when events arrive,
11585           but this would mean that the proper configuration of sink pad might
11586           not be complete, thus we should not update the src pad.
11587           Let's keep the old non-vmethod negotitate().
11588
11589 2016-12-07 16:52:35 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11590
11591         * gst/vaapi/gstvaapi.c:
11592           Revert "encoders: demote to RANK_NONE since not fit for autoplugging yet"
11593           This reverts commit f182b8be2ba05965e6d31a4d380d6563b9b53a77.
11594
11595 2016-12-01 18:57:10 +0900  Hyunjun Ko <zzoon@igalia.com>
11596
11597         * gst/vaapi/gstvaapiencode.c:
11598         * gst/vaapi/gstvaapiencode.h:
11599           vaapiencode: get surface formats in get_caps()
11600           Query for the supported surface formats in config at get_caps() vmethod.
11601           https://bugzilla.gnome.org/show_bug.cgi?id=769266
11602           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11603
11604 2016-12-07 11:26:37 +0100  Hyunjun Ko <zzoon@igalia.com>
11605
11606         * gst-libs/gst/vaapi/gstvaapiencoder.c:
11607         * gst-libs/gst/vaapi/gstvaapiencoder.h:
11608           libs: encoder: add gst_vaapi_encoder_get_surface_formats()
11609           This method will return the valid surface formats in the current
11610           config. If the are no VAConfig it is created with the information
11611           available.
11612           https://bugzilla.gnome.org/show_bug.cgi?id=769266
11613           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11614
11615 2016-12-07 11:10:42 +0100  Hyunjun Ko <zzoon@igalia.com>
11616
11617         * gst-libs/gst/vaapi/gstvaapiencoder.c:
11618           libs: encoder: split set_context_info()
11619           Split set_context_info() adding init_context_info() which only
11620           initialises the GstVaapiContextInfo structure inside GstVaapiEncoder
11621           required for VAConfig.
11622           https://bugzilla.gnome.org/show_bug.cgi?id=769266
11623           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11624
11625 2016-12-02 09:30:52 +0900  Hyunjun Ko <zzoon@igalia.com>
11626
11627         * gst-libs/gst/vaapi/gstvaapicontext.c:
11628           libs: context: skip VAContext if no frame size
11629           If GstVaapiContextInfo has just initial information, without frame's
11630           width and height, skip the creation of the VAContext, just keep the
11631           VAConfig.
11632           https://bugzilla.gnome.org/show_bug.cgi?id=769266
11633           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11634
11635 2016-12-02 09:28:07 +0900  Hyunjun Ko <zzoon@igalia.com>
11636
11637         * gst-libs/gst/vaapi/gstvaapicontext.c:
11638           libs: context: split context_create()
11639           Split the funcion context_create() into context_create() and
11640           config_create().
11641           Decoupling VAConfig and VAContext during context creation, we could
11642           query the VAConfig for the supported surface's formats without creating
11643           a VAContext.
11644           https://bugzilla.gnome.org/show_bug.cgi?id=769266
11645
11646 2016-12-06 17:33:42 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11647
11648         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
11649           libs: drm: find render node in hybrid system
11650           Originally the drm backend only tried to open the first render node
11651           found. But in hybrid system this first render node might not support
11652           VA-API (propietary Nvidia driver, for example).
11653           This patch tries all the available nodes until a finding one with a
11654           VA-API supported driver.
11655           https://bugzilla.gnome.org/show_bug.cgi?id=774811
11656           Original-patch-by: Stirling Westrup <swestrup@gmail.com> and
11657           Reza Razavi <reza@userful.com>
11658
11659 2016-11-14 17:45:55 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11660
11661         * gst/vaapi/gstvaapivideomemory.c:
11662           vaapivideomemory: refactor code for readability
11663           Added the inlined function allocator_configure_pools() moving out code
11664           from gst_vaapi_video_allocator_new() to make clear that it is a
11665           post-initalization of the object.
11666
11667 2016-11-14 17:40:37 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11668
11669         * gst/vaapi/gstvaapivideomemory.c:
11670           vaapivideomemory: log error if not VA image
11671           Log an error message if the test image for surface downloading
11672           cannot be allocated or mapped.
11673
11674 2016-11-14 17:33:41 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11675
11676         * gst/vaapi/gstvaapivideomemory.c:
11677           vaapivideomemory: remove unused macros
11678           These macros are not used. Let us remove them.
11679
11680 2016-11-11 19:45:45 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11681
11682         * gst/vaapi/gstvaapivideomemory.c:
11683         * gst/vaapi/gstvaapivideomemory.h:
11684           vaapivideomemory: rename video for allocation_info
11685           Since video_info stores the GstVideoInfo of the allocation caps,
11686           it is clear if we rename it as allocation_info, to distinguish it
11687           later from negotiation_info.
11688
11689 2016-10-19 15:27:03 +0100  Julien Isorce <j.isorce@samsung.com>
11690
11691         * gst/vaapi/gstvaapivideomemory.c:
11692         * gst/vaapi/gstvaapivideomemory.h:
11693           vaapivideomemory: add real GstVaapiDmaBufAllocator
11694           Instead of defining GstVaapiDmaBufAllocator as a hackish decorator of
11695           GstDmaBufAllocator, now, since the expose of the GstDmaBufAllocator's
11696           GType, GstVaapiDmaBufAllocator is a full feature GstAllocator inherited
11697           from GstDmaBufAllocator.
11698           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11699           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11700
11701 2016-10-19 15:30:09 +0100  Julien Isorce <j.isorce@samsung.com>
11702
11703         * gst/vaapi/gstvaapivideomemory.c:
11704           vaapivideomemory: errors in gst_vaapi_dmabuf_allocator_new()
11705           Add a helper function to initialize the gst_debug_vaapivideomemory,
11706           to use it either by the GstVaapiVideoAllocatorClass or
11707           GstVaapiDmabufAllocator (which is a decorator of GstDmaBufAllocator).
11708           Later, log possible errors when calling gst_vaapi_dmabuf_allocator_new ()
11709           https://bugzilla.gnome.org/show_bug.cgi?id=755072
11710
11711 2016-11-29 15:14:32 +0900  Hyunjun Ko <zzoon@igalia.com>
11712
11713         * gst/vaapi/gstvaapiencode.c:
11714           vaapiencode: release internal encoder at stop()
11715           As the internal encoder is created at start(), let's release it at
11716           stop() vmethod, to be consistent.
11717           gst_vaapiencode_destroy() is called since it also resets the input and
11718           output states, which is something that the base class does internally
11719           after calling stop() vmethod.
11720           https://bugzilla.gnome.org/show_bug.cgi?id=769266
11721           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11722
11723 2016-12-03 08:20:56 +0100  Edward Hervey <bilboed@bilboed.com>
11724
11725         * common:
11726           Automatic update of common submodule
11727           From f49c55e to 39ac2f5
11728
11729 2016-11-29 14:59:02 +0900  Hyunjun Ko <zzoon@igalia.com>
11730
11731         * gst/vaapi/gstvaapiencode.c:
11732           vaapiencode: call ensure_encoder() at start()
11733           Currently, specific encoder is created during set_format(). This might
11734           lead to race condition when creating profiles with multiple encoders.
11735           This patch moves ensure_encoder() call to start() vmethod to ensure
11736           avoiding the race condition.
11737           https://bugzilla.gnome.org/show_bug.cgi?id=773546
11738
11739 2016-11-21 19:29:22 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11740
11741         * gst/vaapi/gstvaapidecodebin.c:
11742           vaapidecodebin: bring back dynamic configuration
11743           In commit ca0c3fd6 we remove the dynamic configuration if the bin
11744           because we assumed that the bin will be always static as it is
11745           registered.
11746           Nonetheless we were wrong, because it is possible to request, with a
11747           property, to avoid the use of the post-processor.
11748           Since we want to add a way to disable the post-processor through
11749           environment variables, this remove feature is required again.
11750           If the environment variable GST_VAAPI_DISABLE_VPP is defined the
11751           postprocessor inside of the vaapidecodebin is disabled, then
11752           vaapidecodebin is an alias of the old vaapidecode.
11753           https://bugzilla.gnome.org/show_bug.cgi?id=775041
11754
11755 2016-11-21 18:25:18 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11756
11757         * gst/vaapi/gstvaapidecode.c:
11758           vaapidecode: implement negotiate() vmethod
11759           Instead of decorating the negotiate() method, let us override it,
11760           so the stream is locked while called.
11761           https://bugzilla.gnome.org/show_bug.cgi?id=775040
11762
11763 2016-11-26 11:27:26 +0000  Tim-Philipp Müller <tim@centricular.com>
11764
11765         * .gitmodules:
11766           common: use https protocol for common submodule
11767           https://bugzilla.gnome.org/show_bug.cgi?id=775110
11768
11769 2016-11-24 21:17:54 +0100  Dominique Leuenberger <dimstar@opensuse.org>
11770
11771         * gst-libs/gst/vaapi/Makefile.am:
11772           build: add LIBVA_WAYLAND_CFLAGS to libgstvaapiegl
11773           In case libva-wayland has its headers not installed in default
11774           locations (like /usr/include), the build fails to include "wayland-client.h":
11775           CC       libgstvaapi_egl_la-gstvaapiutils_egl.lo
11776           In file included from gstvaapidisplay_wayland.h:27:0,
11777           from gstvaapidisplay_egl.c:35:
11778           /usr/include/va/va_wayland.h:31:28: fatal error: wayland-client.h: No such file or directory
11779           #include <wayland-client.h>
11780           As we already passed VA_CLAGS, /usr/include/va/va_wayland.h could be found, but it is
11781           our fault not to instruct the system that we ALSO care for va_wayland. We correctly query
11782           for libva-wayland.pc in configure and use this in other places as well. It is thus only
11783           correct and consequent, to do it also at this spot.
11784           https://bugzilla.gnome.org/show_bug.cgi?id=773946
11785
11786 2015-10-28 12:55:18 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11787
11788         * gst/vaapi/gstvaapivideocontext.c:
11789           vaapivideocontext: log a message if no bus
11790           Raise a warning if there is no bus when the element tries to post a
11791           message.
11792
11793 2015-10-28 12:57:14 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11794
11795         * gst/vaapi/gstvaapisink.c:
11796           vaapisink: create display at open()
11797           Instead of creating the VA display before setting the bus to the
11798           element, it is created when the element is opened.
11799           Basically, this commit is a revert of
11800           5e5d62cac79754ba60057fc2516135aad8d7de35
11801           That was done when the GStreamer's context sharing was not mature
11802           enough as now. There is no reason to keep this hack.
11803
11804 2016-11-04 18:04:36 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11805
11806         * gst/vaapi/gstvaapidecode.c:
11807           vaapidecode: don't add video crop meta
11808           Since the differentiation of negotiation caps and allocation caps,
11809           there is no need to add a video crop meta with the negotiation caps.
11810           Hence, removing it.
11811           https://bugzilla.gnome.org/show_bug.cgi?id=773948
11812
11813 2015-03-19 21:20:26 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
11814
11815         * gst/vaapi/gstvaapivideobuffer.c:
11816         * gst/vaapi/gstvaapivideometa.c:
11817         * gst/vaapi/gstvaapivideometa.h:
11818           remove the video converter from vaapi buffer meta
11819           Since all the video converter were deprecated in gstreamer-1.2, we don't need
11820           to handle them anymore in the vaapi's buffer meta.
11821           This patch removes its usage and the buffer meta's API for that.
11822           https://bugzilla.gnome.org/show_bug.cgi?id=745728
11823
11824 2016-11-21 18:28:18 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11825
11826         * gst/vaapi/gstvaapipluginbase.c:
11827           plugins: destroy source pad allocator and pool
11828           First, deactivate source pad pool when the out caps change, and if so,
11829           destroy texture map, the source pad allocator and pool only if the
11830           new caps are different from the ones already set.
11831
11832 2016-11-21 19:17:07 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11833
11834         * gst/vaapi/gstvaapipluginbase.c:
11835           plugins: don't destroy sink pad allocator
11836           Don't destroy sink pad allocator at _set_caps() because it will be done at
11837           ensure_sinkpad_buffer_pool() if it is required.
11838
11839 2016-11-21 18:27:00 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11840
11841         * gst/vaapi/gstvaapipluginbase.c:
11842           plugins: first validate the out caps
11843           When calling _set_caps() first validate the out caps before doing
11844           anything else.
11845
11846 2016-11-21 18:42:02 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11847
11848         * gst/vaapi/gstvaapidecode.c:
11849           vaapidecode: negotiate after destroying allocator
11850           This is related with bug 758907 when no vaapipostproc is used (no
11851           vaapidecodebin). In order to negotiate downstream we need to destroy
11852           the source pad allocator, otherwise the same allocated buffers are
11853           used, failing the mapping.
11854
11855 2016-11-21 16:35:34 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11856
11857         * gst/vaapi/gstvaapivideomemory.c:
11858           vaapivideomemory: remove GST_VAAPI_TYPE_VIDEO_INFO
11859           Remove redundant GST_VAAPI_TYPE_VIDEO_INFO, since it is a duplicate of
11860           GST_TYPE_VIDEO_INFO created before gstreamer 1.6, where the boxed type
11861           was created.
11862           https://bugzilla.gnome.org/show_bug.cgi?id=774782
11863
11864 2016-11-21 12:51:25 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11865
11866         * gst/vaapi/gstvaapipluginbase.c:
11867           plugins: update the src pad allocator video info
11868           Update the size, stride and offset of the source pad allocator video
11869           info, so the pool could set the correct GstVideoMeta
11870           https://bugzilla.gnome.org/show_bug.cgi?id=774782
11871
11872 2016-11-21 12:36:27 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11873
11874         * gst/vaapi/gstvaapivideomemory.c:
11875           vaapivideomemory: add missing documentation
11876           https://bugzilla.gnome.org/show_bug.cgi?id=774782
11877
11878 2016-11-21 12:29:26 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11879
11880         * gst/vaapi/gstvaapipluginbase.c:
11881           plugins: use early return without goto
11882           https://bugzilla.gnome.org/show_bug.cgi?id=774782
11883
11884 2016-11-21 11:25:21 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11885
11886         * gst/vaapi/gstvaapipluginbase.c:
11887         * gst/vaapi/gstvaapivideomemory.c:
11888         * gst/vaapi/gstvaapivideomemory.h:
11889           plugins: add allocator to allocation query
11890           This patch adds the created allocator to the allocation query either
11891           in decide_allocation() and propose_allocation() vmehtods.
11892           With it, there's no need to set the modified allocator's size in the
11893           pool configuration.
11894           https://bugzilla.gnome.org/show_bug.cgi?id=774782
11895
11896 2016-10-19 15:15:01 +0100  Julien Isorce <j.isorce@samsung.com>
11897
11898         * gst/vaapi/gstvaapivideobufferpool.c:
11899           vaapivideobufferpool: set correct buffer size
11900           We should set the correct buffer size when we are configuring the pool,
11901           otherwise the buffer will be discarded when it returns to the pool.
11902           Indeed when the ref-count of a buffer reaches zero, its pool will queue
11903           it back (and ref it) if, and only if, the buffer size matches the
11904           configured buffer size on the pool.
11905           This issue can be debugged with GST_DEBUG=*PERF*:6, see gstbufferpool.c
11906           https://bugzilla.gnome.org/show_bug.cgi?id=774782
11907
11908 2016-11-10 13:26:31 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11909
11910         * gst/vaapi/gstvaapivideomemory.c:
11911           vaapivideomemory: check for memory allocator
11912           When calling gst_vaapi_video_memory_copy() the allocator of the memory
11913           to copy should be allocated by the vaapi allocator.
11914           This patch does this verification.
11915
11916 2016-11-10 13:25:30 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11917
11918         * gst/vaapi/gstvaapivideomemory.c:
11919           vaapivideomemory: code style fixes
11920           A cosmetic commit for enhance readability of the casts and method
11921           preconditions.
11922
11923 2016-11-09 19:49:22 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11924
11925         * gst/vaapi/gstvaapivideomemory.c:
11926           vaapivideomemory: unroll gst_vaapi_video_allocator_free()
11927           Instead of having a gst_vaapi_video_memory_free() that is only going to
11928           be called by gst_vaapi_video_allocator_free(), let's just remove the first
11929           and merged into the second.
11930
11931 2016-11-09 19:29:12 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11932
11933         * gst/vaapi/gstvaapivideomemory.c:
11934           vaapivideomemory: avoid virtual methods casting
11935           Use the expected virtual method signatures for readability.
11936
11937 2016-11-09 18:58:20 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11938
11939         * gst/vaapi/gstvaapivideomemory.c:
11940           vaapivideomemory: remove unimplemented methods
11941           Remove unimplemented method for allocator mem_share() and mem_is_span().
11942
11943 2016-11-09 18:54:47 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11944
11945         * gst/vaapi/gstvaapivideomemory.c:
11946           vaapivideomemory: fail if frame map can't get plane
11947           If map() vmethod in GstVideMeta cannot get the plane data, return false,
11948           thus the caller will not try to read invalid memory.
11949           https://bugzilla.gnome.org/show_bug.cgi?id=774213
11950
11951 2016-11-09 18:39:06 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11952
11953         * gst/vaapi/gstvaapivideomemory.c:
11954         * gst/vaapi/gstvaapivideomemory.h:
11955           vaapivideomemory: lock map and unmap operations
11956           In order to avoid race condition when two threads call map/unmap the same
11957           VA surface, this patch mutex these operations.
11958           https://bugzilla.gnome.org/show_bug.cgi?id=774213
11959
11960 2016-11-09 17:37:06 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11961
11962         * gst/vaapi/gstvaapivideomemory.c:
11963           vaapivideomemory: refactor vaapi memory unmapping
11964           There were duplicated code in gst_video_meta_unmap_vaapi_memory() and
11965           gst_vaapi_video_memory_unmap() when unmapping.
11966           This patch refactors both methods adding the common function
11967           unmap_vaapi_memory(). This also ensures, if direct rendering is enabled, it
11968           is correctly reset.
11969           Additionally, only when mapping flag has the WRITE bit, it set the image as
11970           current, which was done in gst_video_meta_map_vaapi_memory() but no in
11971           gst_vaapi_video_memory_map().
11972           In order to make this, the mapping flags were required, so instead of
11973           overloading mem_unmap() virtual function, mem_unmap_full() is overloaded.
11974           https://bugzilla.gnome.org/show_bug.cgi?id=774213
11975
11976 2016-11-09 13:54:23 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11977
11978         * gst/vaapi/gstvaapivideomemory.c:
11979           vaapivideomemory: refactor vaapi memory mapping
11980           There were duplicated code in gst_video_meta_map_vaapi_memory() and
11981           gst_vaapi_video_memory_map() when doing the READ and WRITE mapping.
11982           This patch refactors both methods adding the common function
11983           map_vaapi_memory().
11984           Additionally, only when flag has the READ bit it calls
11985           ensure_images_is_current(), which was done in
11986           gst_video_meta_map_vaapi_memory() but no in
11987           gst_vaapi_video_memory_map().
11988           https://bugzilla.gnome.org/show_bug.cgi?id=772151
11989
11990 2016-10-27 18:22:18 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
11991
11992         * gst/vaapi/gstvaapidecode.c:
11993           vaapidecode: unref allowed_sinkpad_caps at close()
11994           The variable member allowed_sinkpad_caps is constructed querying the
11995           current VA display. Bearing that in mind, the variable shall be freed
11996           when the VA display changes or is removed.
11997           This patch moves the freeing of allowed_sinkpad_caps to close(), when
11998           the VA display is freed.
11999
12000 2016-11-11 11:40:09 +0900  Hyunjun Ko <zzoon@igalia.com>
12001
12002         * gst/vaapi/gstvaapisink.c:
12003           vaapisink: finish event thread at stop()
12004           The thread that handles window's events should be finished during
12005           pipeline's shutdown, otherwise it will remain alive during pipeline
12006           re-activation, leading to unexpected problems.
12007           This patch fixes failures of intensive_state_change scenario of
12008           gst-validate
12009           https://bugzilla.gnome.org/show_bug.cgi?id=774241
12010
12011 2016-11-08 09:35:00 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12012
12013         * gst/vaapi/gstvaapipostproc.c:
12014           vaapipostproc: enhance debug message
12015           "gst_pad_push" is not a good description of the event.
12016
12017 2016-11-08 10:05:32 +0900  Hyunjun Ko <zzoon@igalia.com>
12018
12019         * gst/vaapi/gstvaapipostproc.c:
12020           postproc: honor gst_pad_push() return value
12021           Returning GST_FLOW_ERROR always when gst_pad_push fails might lead to
12022           deadlock during seek.
12023           This patch returns the same error of gst_pad_push() and log out the
12024           return value.
12025           https://bugzilla.gnome.org/show_bug.cgi?id=774030
12026
12027 2016-11-04 16:26:18 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12028
12029         * gst/vaapi/gstvaapidecode.c:
12030           vaapidecode: guard GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS
12031           In commit 6d11a00 were introduced a regression when gstreamer-vaapi is
12032           compiled with out EGL/GLX support: it shall not support
12033           GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
12034           This patch guards the inclusion of GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS in the
12035           allowed src caps for vaapedecode if EGL/GLX.
12036
12037 2016-11-04 12:55:23 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12038
12039         * gst/vaapi/gstvaapivideomemory.c:
12040           vaapivideomemory: increment map counter only if succeeded
12041           Previously the frame map counter increased independently if the map succeeded
12042           or not. This leaded to critical messages and crashes if the frame was unable
12043           to be mapped, but the counter increased.
12044           This patch increases the map counter only if the map operation occurred.
12045           https://bugzilla.gnome.org/show_bug.cgi?id=773939
12046
12047 2016-11-03 17:30:46 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12048
12049         * gst/vaapi/gstvaapipluginbase.c:
12050           plugins: set negotiation caps in src allocator
12051           When the allocator is created, it stores the allocation caps. But sometimes
12052           the "allocation caps" may be different from the "negotiation caps".
12053           In this case, the allocator should store the negotiation caps since they
12054           are the ones used for frame mapping with GstVideoMeta.
12055           When vaapispostproc is used, this is not a problem since the element is assume
12056           to resize. But when using a vaapi decoder only, with a software renderer, it
12057           fails in this case.
12058           https://bugzilla.gnome.org/show_bug.cgi?id=773323
12059
12060 2016-07-19 16:40:10 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12061
12062         * gst/vaapi/gstvaapidecode.c:
12063         * gst/vaapi/gstvaapidecode.h:
12064           vaapidecode: generate source pad caps
12065           Just as vaapipostproc, VA decoder's context can be queried to get the possible
12066           raw formats, so, the src caps can negotiate the exact caps that the context
12067           supports.
12068
12069 2016-02-25 18:57:30 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12070
12071         * gst-libs/gst/vaapi/gstvaapidecoder.c:
12072         * gst-libs/gst/vaapi/gstvaapidecoder.h:
12073           libs: decoder: add _get_surface_formats()
12074           This function exposes the available formats of the surfaces in the the current
12075           context to the plugins.
12076
12077 2016-02-18 19:32:58 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12078
12079         * gst-libs/gst/vaapi/gstvaapicontext.c:
12080         * gst-libs/gst/vaapi/gstvaapicontext.h:
12081           libs: context: ensure context formats
12082           This patch ensures to get the formats, as filter does, available in the
12083           decoder / encoder context.
12084           The context fills up the array as soon it is created, otherwise the pipeline
12085           could get stalled (perhaps this is a bug in my HSW backend).
12086           https://bugzilla.gnome.org/show_bug.cgi?id=752958
12087
12088 2016-02-18 19:20:10 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12089
12090         * gst-libs/gst/vaapi/gstvaapifilter.c:
12091         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
12092         * gst-libs/gst/vaapi/gstvaapiutils_core.h:
12093           libs: move get_surface_formats to utils_core
12094           The query of all the supported formats for a VA config were only used by the
12095           postprocessor (vaapifilter). But, in order to enable the vaapidecoder to
12096           negotiate a suitable raw format with downstream, we need to query these
12097           formats against the decoder's config.
12098           This patch is the first step: moves the code in filter's ensure_image() to a
12099           generic gst_vaapi_get_surface_formats() in vaapiutils_core, so it can be
12100           shared later by the decoder.
12101           https://bugzilla.gnome.org/show_bug.cgi?id=752958
12102
12103 2016-07-19 18:56:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12104
12105         * gst/vaapi/gstvaapipluginbase.c:
12106           plugins: remove set_sinkpad_dmabuf_allocator()
12107           Since when the sink pad allocator is created, it is decided if the required
12108           one is vaapi allocator or dmabuf allocator, there is no need to force its set
12109           again.
12110
12111 2016-10-27 11:25:55 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12112
12113         * gst/vaapi/gstvaapipluginbase.c:
12114           plugins: ensure display when getting raw caps
12115           When running gst-discoverer-1.0, in certain media, vaapipostroc is stopped
12116           meanwhile it is transforming caps. The problem is that stop() calls
12117           gst_vaapi_plugin_base_close(), which nullifies the element's va display, but
12118           the va display is used in tranform_caps() when it is extracting the possible
12119           format conversions. This display disappearing generates warning messages.
12120           This patch holds a local reference of va display at ensure_allowed_raw_caps()
12121           hence it doesn't go away meanwhile it is used, even if the
12122           gst_vaapi_plugin_base_close() is called in other thread.
12123           https://bugzilla.gnome.org/show_bug.cgi?id=773593
12124
12125 2016-11-03 12:54:23 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12126
12127         * gst/vaapi/gstvaapiencode_h264.c:
12128         * gst/vaapi/gstvaapiencode_h265.c:
12129           plugins: fix code style for errors
12130
12131 2016-10-19 19:04:20 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12132
12133         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
12134         * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
12135         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
12136         * gst-libs/gst/vaapi/gstvaapicontext.c:
12137         * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
12138         * gst-libs/gst/vaapi/gstvaapidecoder.c:
12139         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
12140         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12141         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
12142         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
12143         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
12144         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12145         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
12146         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
12147         * gst-libs/gst/vaapi/gstvaapidisplay.c:
12148         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
12149         * gst-libs/gst/vaapi/gstvaapiencoder.c:
12150         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12151         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12152         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
12153         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12154         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12155         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12156         * gst-libs/gst/vaapi/gstvaapifilter.c:
12157         * gst-libs/gst/vaapi/gstvaapiimage.c:
12158         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
12159         * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
12160         * gst-libs/gst/vaapi/gstvaapipixmap.c:
12161         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
12162         * gst-libs/gst/vaapi/gstvaapisurface.c:
12163         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
12164         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
12165         * gst-libs/gst/vaapi/gstvaapitexture.c:
12166         * gst-libs/gst/vaapi/gstvaapiutils.c:
12167         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12168         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
12169         * gst-libs/gst/vaapi/gstvaapiwindow.c:
12170         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
12171         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
12172           libs: fix code style for errors
12173
12174 2016-11-03 09:31:17 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12175
12176         * gst/vaapi/gstvaapipluginbase.c:
12177         * gst/vaapi/gstvaapivideocontext.c:
12178           plugins: update GstGL deprecated symbol
12179           GST_GL_TYPE_CONTEXT was deprecated. Now it is GST_TYPE_GL_CONTEXT.
12180
12181 2016-10-21 11:48:54 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12182
12183         * gst/vaapi/gstvaapipluginbase.c:
12184           plugins: direct render when raw video
12185           Enable the direct rendering with linear surfaces if the negotiated src caps
12186           are video/x-raw without features.
12187           Pass also the caps, since they are needed to know the requested caps features.
12188
12189 2016-10-24 20:09:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12190
12191         * gst/vaapi/gstvaapipluginbase.c:
12192           plugins: move src allocator error to instantiator
12193           Just as we did in ensure_sinkpad_allocator(), let's move the error message
12194           into the ensure_srcpad_allocator() from the caller,
12195           gst_vaapi_plugin_base_decide_allocation()
12196
12197 2016-10-20 19:37:01 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12198
12199         * gst/vaapi/gstvaapipluginbase.c:
12200           plugins: enable direct upload if raw video
12201           Enable the direct upload with linear surfaces if the negotiated sink caps are
12202           video/x-raw without features.
12203
12204 2016-10-21 11:21:04 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12205
12206         * gst/vaapi/gstvaapipluginutil.c:
12207         * gst/vaapi/gstvaapipluginutil.h:
12208           pluginutil: add gst_caps_is_video_raw()
12209
12210 2016-10-24 19:25:27 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12211
12212         * gst/vaapi/gstvaapipluginbase.c:
12213           plugins: receive caps in ensure_sinkpad_allocator()
12214           Instead of receiving the GstVideoInfo structure as parameter, get the original
12215           GstCaps from ensure_sinkpad_buffer_pool(), in this way we could decide better
12216           which allocator instantiate.
12217
12218 2016-10-20 19:31:58 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12219
12220         * gst/vaapi/gstvaapivideomemory.c:
12221           vaapivideomemory: destroy derived image at unmap
12222           If the allocator was configured to use direct upload or rendering, the
12223           generated derived image created at mapping needs to be destroyed after
12224           unmapping, because, in order to process the surface, it should not be marked
12225           as "busy" by the driver.
12226
12227 2016-10-21 11:57:55 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12228
12229         * gst/vaapi/gstvaapivideomemory.c:
12230           vaapivideomemory: enhance logs for direct modes
12231           Print, conditionally, only the enabled direct mode.
12232
12233 2016-10-20 17:02:49 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12234
12235         * gst/vaapi/gstvaapivideomemory.c:
12236         * gst/vaapi/gstvaapivideomemory.h:
12237           vaapivideomemory: add direct upload flag
12238           Adds the direct-upload flag in the GstVaapiVideoAllocator and
12239           GstVaapiVideoMemory.
12240           It still doesn't apply any functional change.
12241
12242 2016-10-20 16:49:22 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12243
12244         * gst/vaapi/gstvaapipluginbase.c:
12245         * gst/vaapi/gstvaapivideomemory.c:
12246         * gst/vaapi/gstvaapivideomemory.h:
12247           vaapivideomemory: set direct rendering at run-time
12248           The way to experiment with the direct rendering is through and internal
12249           compiler pre-processor flag.
12250           The current change set enables a way to specified at run-time, as a flag
12251           passed to the allocator at instanciation time.
12252
12253 2016-10-20 18:09:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12254
12255         * gst/vaapi/gstvaapivideomemory.c:
12256           vaapivideomemory: log in perf category when copy
12257           Log in performance category when the derive image handling fails, falling back
12258           to memory copy.
12259
12260 2016-10-20 16:31:21 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12261
12262         * gst/vaapi/gstvaapivideomemory.c:
12263           vaapivideomemory: error log is derive image fails
12264           Instead of a silently failure of the derive image, this patch log an error
12265           message according to the failure.
12266
12267 2016-10-20 12:52:18 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12268
12269         * gst/vaapi/gstvaapivideomemory.c:
12270           vaapivideomemory: store surface alloc flags in qdata
12271           For sake of consistency, we should add the requested surface allocation flags
12272           to the object's qdata structure.
12273
12274 2016-10-20 12:22:06 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12275
12276         * gst/vaapi/gstvaapivideomemory.c:
12277           vaapivideomemory: category init when object define
12278           Move the Gstreamer debug category initialize to the GObject definition.
12279
12280 2016-11-03 08:31:16 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12281
12282         * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12283           libs: vaapitexturemap: trivial code-style fix
12284
12285 2016-11-02 20:01:09 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12286
12287         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12288           libs: display: egl: avoid recreate native display
12289           Instead of passing the native descriptor of the display, just pass the received
12290           GstVaapiDisplay and reuse it.
12291
12292 2016-11-02 15:38:52 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12293
12294         * gst/vaapi/gstvaapipluginbase.c:
12295           plugins: log the GstVaapiDisplay name
12296           Now that GstVaapiDisplay is descendant of GstObject, it has a human-friendly
12297           name. Log it instead of the memory address.
12298
12299 2016-11-02 18:37:00 +0900  Hyunjun Ko <zzoon@igalia.com>
12300
12301         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
12302           libs: window: egl: pass native va display
12303           When creating a GstVaapiWindowEGL, it also creates native window by its own
12304           native display. It should pass the native display, either X11 or Wayland.
12305           https://bugzilla.gnome.org/show_bug.cgi?id=768266
12306
12307 2016-10-13 12:53:17 +0900  Hyunjun Ko <zzoon@igalia.com>
12308
12309         * gst-libs/gst/vaapi/gstvaapidebug.h:
12310         * gst-libs/gst/vaapi/gstvaapidisplay.c:
12311         * gst-libs/gst/vaapi/gstvaapidisplay.h:
12312         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
12313         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
12314         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
12315         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12316         * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
12317         * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12318         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12319         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
12320         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12321         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12322         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
12323         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
12324         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
12325         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
12326         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
12327         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
12328         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
12329         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
12330         * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
12331         * gst/vaapi/gstvaapivideocontext.c:
12332           libs: display: GstVaapiDisplay as GstObject descendant
12333           This patch is to change the inheritance of GstVaapiDisplay to GstObject,
12334           instead of GstVaapiMiniObject. In this way we can use all the available
12335           infrastructure for GObject/GstObject such as GstTracer, GIR, etc.
12336           In addition, a new debug category for GstVaapiDisplay is created to make it
12337           easier to trace debug messages. It is named "vaapidisplay" and it transverse
12338           all the VA display backends (DRM, GLX, EGL, Wayland, ...)
12339           This patch is a step forward to expose GstVaapiDisplay for users in a future
12340           library.
12341           https://bugzilla.gnome.org/show_bug.cgi?id=768266
12342           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12343
12344 === release 1.11.0 ===
12345
12346 2016-11-01 18:54:54 +0200  Sebastian Dröge <sebastian@centricular.com>
12347
12348         * configure.ac:
12349           Back to development
12350
12351 === release 1.10.0 ===
12352
12353 2016-11-01 18:19:32 +0200  Sebastian Dröge <sebastian@centricular.com>
12354
12355         * ChangeLog:
12356         * NEWS:
12357         * configure.ac:
12358         * gstreamer-vaapi.doap:
12359           Release 1.10.0
12360
12361 2016-10-27 17:13:48 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12362
12363         * gst/vaapi/gstvaapidecodebin.c:
12364           vaapidecodebin: resurrect disable-vpp property
12365           https://bugzilla.gnome.org/show_bug.cgi?id=773589
12366
12367 2016-10-27 16:32:23 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12368
12369         * gst/vaapi/gstvaapidecodebin.c:
12370           vaapidecodebin: name the internal queue
12371           https://bugzilla.gnome.org/show_bug.cgi?id=773589
12372
12373 2016-10-27 16:27:45 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12374
12375         * gst/vaapi/gstvaapidecodebin.c:
12376         * gst/vaapi/gstvaapidecodebin.h:
12377           vaapidecodebin: remove unused variables
12378           Since vaapipostproc is only registered if the driver supports it, all the
12379           support for dynamic loading were removed. Though some leftovers remained.
12380           https://bugzilla.gnome.org/show_bug.cgi?id=773589
12381
12382 2016-10-27 12:53:54 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12383
12384         * docs/plugins/Makefile.am:
12385         * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12386         * docs/plugins/running.xml:
12387           docs: document environment variables
12388           https://bugzilla.gnome.org/show_bug.cgi?id=773544
12389
12390 2016-10-27 12:31:49 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12391
12392         * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
12393         * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
12394         * gst/vaapi/Makefile.am:
12395         * gst/vaapi/gstvaapidecode.c:
12396         * gst/vaapi/gstvaapidecodebin.c:
12397         * gst/vaapi/gstvaapidecodedoc.c:
12398           docs: replace vaapidecode with each codec
12399           In the spirit of the codec split, this patch removes the documentation of
12400           vaapidecode and adds a page per each possible decoder.
12401           Nonetheless, only those available in the compilation system are going to be
12402           instrospected, because the rest are not registered.
12403
12404 2016-10-27 11:06:06 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12405
12406         * gst/vaapi/gstvaapipluginutil.c:
12407         * gst/vaapi/gstvaapivideobuffer.c:
12408         * gst/vaapi/gstvaapivideometa.c:
12409           docs: add missing long descriptions
12410
12411 2016-10-25 14:32:44 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12412
12413         * gst/vaapi/gstvaapipostproc.c:
12414           vaapipostproc: use GST_*_OBJECT when possible
12415           Since we can have several vaapipostproc operating in a pipeline, it is useful
12416           to know which one is generating the logging message.
12417           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12418
12419 2016-07-19 17:00:23 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12420
12421         * gst/vaapi/gstvaapidecode.c:
12422         * gst/vaapi/gstvaapidecode.h:
12423           vaapidecode: rename member to allowed_sinkpad_caps
12424           vaapidecode has a member named allowed_caps, but this name is not enough
12425           explicit. This patch renames allowed_caps to allowed_sinkpad_caps.
12426           No functional changes were included.
12427           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12428
12429 2016-10-20 18:12:04 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12430
12431         * gst/vaapi/gstvaapiencode_h264.c:
12432         * gst/vaapi/gstvaapiencode_h265.c:
12433         * gst/vaapi/gstvaapisink.c:
12434         * gst/vaapi/gstvaapivideomemory.c:
12435         * gst/vaapi/gstvaapivideometa.c:
12436         * gst/vaapi/gstvaapivideometa_texture.c:
12437           plugins: fix code style for errors
12438           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12439
12440 2016-10-20 17:01:57 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12441
12442         * gst/vaapi/gstvaapivideomemory.c:
12443           vaapivideomemory: comment style
12444           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12445
12446 2016-10-20 11:19:50 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12447
12448         * gst/vaapi/gstvaapivideomemory.c:
12449         * gst/vaapi/gstvaapivideomemory.h:
12450           vaapivideomemory: rename input parameter
12451           In order to clarify the use of flag as input parameter, it is renamed to
12452           surface_alloc_flag, since it is used when creating a VA surface with certain
12453           properties.
12454           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12455
12456 2016-10-25 19:22:03 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12457
12458         * gst/vaapi/gstvaapidecode.c:
12459           vaapidecode: rename element description
12460           So encoders and decoders have similar descriptions.
12461           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12462
12463 2016-08-02 11:32:19 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12464
12465         * gst/vaapi/gstvaapiencode_h264.c:
12466         * gst/vaapi/gstvaapiencode_h265.c:
12467           vaapiencode: h264, h265: rename codec name
12468           So encoder and decoders have the same codec name.
12469           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12470
12471 2016-07-29 15:17:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12472
12473         * gst/vaapi/gstvaapipluginbase.c:
12474           plugins: simplify code
12475           Merge two lines of variable declarations.
12476           https://bugzilla.gnome.org/show_bug.cgi?id=773497
12477
12478 2016-10-07 18:46:22 +0900  Hyunjun Ko <zzoon@igalia.com>
12479
12480         * gst-libs/gst/vaapi/gstvaapidecoder.c:
12481         * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
12482         * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
12483         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
12484           libs: minor correction for logical consistency
12485           GstVaapiDecode is a descendant of GstVaapiMiniObject, so, thought we should
12486           use its methods, even though it doesn't change functionality.
12487           GstVaapiPixmap, GstVaapiTexture and GstVaapiWindow are descendant of
12488           GstVaapiObject, hence its methods shall be used.
12489           https://bugzilla.gnome.org/show_bug.cgi?id=772554
12490
12491 2016-10-19 15:39:54 +0100  Julien Isorce <j.isorce@samsung.com>
12492
12493         * gst/vaapi/gstvaapivideomemory.c:
12494           vaapivideomemory: add explanation about the call 'dup (dmabuf_fd)'
12495           In short GstFdMemory is configured to call close when using
12496           GstDmabufMemory.
12497           https://bugzilla.gnome.org/show_bug.cgi?id=755072
12498
12499 2016-09-02 16:42:45 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12500
12501         * configure.ac:
12502         * gst-libs/gst/vaapi/Makefile.am:
12503           build: clean up the dlopen usage
12504
12505 2016-10-08 14:33:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12506
12507         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12508         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12509           encoder: h264,h265: fix regression in offset count
12510           In commit dc35dafa a bug was introduced because I assumed that
12511           GST_CLOCK_TIME_NONE is zero when is -1. This patch fixes that mistake.
12512           https://bugzilla.gnome.org/show_bug.cgi?id=772259
12513
12514 2016-10-18 17:02:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12515
12516         * README:
12517           docs: update README
12518
12519 2016-09-27 17:29:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12520
12521         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12522           libs: display: egl: remove unused header include
12523           The header gmodule.h is not used since the library dynamic loading for EGL
12524           display was removed.
12525           https://bugzilla.gnome.org/show_bug.cgi?id=772599
12526
12527 === release 1.9.90 ===
12528
12529 2016-09-30 13:05:20 +0300  Sebastian Dröge <sebastian@centricular.com>
12530
12531         * ChangeLog:
12532         * NEWS:
12533         * common:
12534         * configure.ac:
12535         * gstreamer-vaapi.doap:
12536           Release 1.9.90
12537
12538 2016-03-04 16:35:11 +0900  Vineeth TM <vineeth.tm@samsung.com>
12539
12540         * gst/vaapi/gstvaapidecode.c:
12541         * gst/vaapi/gstvaapidecodebin.c:
12542         * gst/vaapi/gstvaapiencode_h264.c:
12543         * gst/vaapi/gstvaapiencode_h265.c:
12544         * gst/vaapi/gstvaapiencode_jpeg.c:
12545         * gst/vaapi/gstvaapiencode_mpeg2.c:
12546         * gst/vaapi/gstvaapiencode_vp8.c:
12547         * gst/vaapi/gstvaapipostproc.c:
12548         * gst/vaapi/gstvaapisink.c:
12549           vaapi: use new gst_element_class_add_static_pad_template()
12550           https://bugzilla.gnome.org/show_bug.cgi?id=763083
12551           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12552
12553 2016-09-22 16:34:48 +0900  Hyunjun Ko <zzoon@igalia.com>
12554
12555         * gst/vaapi/gstvaapipluginbase.c:
12556           plugins: reset textures at negotiation/shutdown
12557           When caps reconfiguration is called, the new downstream frame size might be
12558           different. Thus, if the downstream caps change,the display's texture map is
12559           reset.
12560           In addition, during pipeline shutdown, textures in texture map have to be
12561           released, since each one have a reference to the GstVaapiDisplay object, which
12562           is a dangerous circular reference.
12563           https://bugzilla.gnome.org/show_bug.cgi?id=769293
12564           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12565
12566 2016-09-22 16:34:38 +0900  Hyunjun Ko <zzoon@igalia.com>
12567
12568         * gst-libs/gst/vaapi/gstvaapidisplay.c:
12569         * gst-libs/gst/vaapi/gstvaapidisplay.h:
12570         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12571         * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
12572         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
12573         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
12574         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
12575         * gst/vaapi/gstvaapivideometa_texture.c:
12576           libs: display{egl,glx}: cache GstVaapiTextures
12577           instances when created and reuse
12578           This patch improves performance when glimagesink uploads a GL texture.
12579           It caches the GStVaapiTexture instances in GstVaapiDisplay{GLX,EGL}, using an
12580           instance of GstVaapiTextureMap, so our internal texture structure can be found
12581           by matching the GL texture id for each frame upload process, avoiding the
12582           internal texture structure creation and its following destruction.
12583           https://bugzilla.gnome.org/show_bug.cgi?id=769293
12584           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12585
12586 2016-09-22 16:33:06 +0900  Hyunjun Ko <zzoon@igalia.com>
12587
12588         * gst-libs/gst/vaapi/Makefile.am:
12589         * gst-libs/gst/vaapi/gstvaapitexturemap.c:
12590         * gst-libs/gst/vaapi/gstvaapitexturemap.h:
12591           libs: vaapitexturemap: implement GstVaapiTextureMap
12592           Implement GstVaapiTextureMap object, which caches VAAPI textures, so them can be
12593           reused. Internally it is a hash table.
12594           Note that it is GstObject based rather than GstVaapiObject, as part of the future
12595           converstion to GstObject of most of the code.
12596           https://bugzilla.gnome.org/show_bug.cgi?id=769293
12597           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12598
12599 2016-09-21 09:55:53 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12600
12601         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12602           encoder: vp8: Increase the allocation size for coded buffer
12603           We are not getting enough compression for some streams and
12604           encoded frame end up with more size than allocated.
12605           Assuming a compression ratio of 4, which should be good enough
12606           for holding the frames.
12607           https://bugzilla.gnome.org/show_bug.cgi?id=771528
12608
12609 2016-09-21 09:52:21 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
12610
12611         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
12612           encoder: vp9: Fix refresh frame flag setting
12613           While doing the mode-1 referece picture selection,
12614           the circular buffer logic was not correctly setting the
12615           refresh frame flags as per VP9 spec.
12616           Make sure refresh_flag[0] get updated correclty after
12617           each cycle of GST_VP9_REF_FRAMES.
12618           https://bugzilla.gnome.org/show_bug.cgi?id=771507
12619
12620 2016-09-14 18:42:09 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12621
12622         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
12623           vaapidecode: codec_data minimal size is 7
12624           When the format of a H.264 stream is AVC3, the SPS and PPS are inside the
12625           stream, not in the codec_data, so the size of codec_data might be 7.
12626           This patch reduces the minimal size of the codec_data buffer from 8 to 7.
12627           https://bugzilla.gnome.org/show_bug.cgi?id=771441
12628
12629 2016-09-14 16:29:01 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12630
12631         * gst/vaapi/gstvaapidecode.c:
12632           vaapidecode: reset decoder hard when set_format()
12633           set_format() is called by upstream when the stream capabilites has changed.
12634           Before, if the new stream is compatible with the old one the VA decoder was
12635           not destroyed. Nonetheless, with this behavoir, the VA decoder ignores
12636           when the upstreamer parsers gets more details of the stream, such as the
12637           framerate. Hence, when the src caps are negotiates, the further sink caps
12638           updates are ignored.
12639           This patch forces the VA decoder destroying and recreation when set_format()
12640           is called.
12641           https://bugzilla.gnome.org/show_bug.cgi?id=770921
12642
12643 2016-09-14 11:31:39 +0200  Sebastian Dröge <sebastian@centricular.com>
12644
12645         * configure.ac:
12646           configure: Depend on gstreamer 1.9.2.1
12647
12648 2016-09-09 12:03:37 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12649
12650         * gst/vaapi/gstvaapivideomemory.c:
12651           Revert "vaapivideomemory: load VA Image when mapping to write"
12652           This reverts commit c67edea4aba35f16d9e97c78a0b49ad1b590b112.
12653
12654 2016-09-10 20:52:21 +1000  Jan Schmidt <jan@centricular.com>
12655
12656         * common:
12657           Automatic update of common submodule
12658           From b18d820 to f980fd9
12659
12660 2016-09-10 09:58:25 +1000  Jan Schmidt <jan@centricular.com>
12661
12662         * common:
12663           Automatic update of common submodule
12664           From f49c55e to b18d820
12665
12666 2016-09-08 16:16:09 +0900  Hyunjun Ko <zzoon@igalia.com>
12667
12668         * gst/vaapi/gstvaapipluginbase.c:
12669           plugins: set allocator's image size to sinkpad bufferpool
12670           Otherwise the buffer is always ditched by the bufferpool, losing performance.
12671           https://bugzilla.gnome.org/show_bug.cgi?id=771035
12672
12673 2016-09-07 17:34:08 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12674
12675         * gst-libs/gst/vaapi/gstvaapisurface.c:
12676           libs: surface: ensure composite overlay is not bigger
12677           Ensure the composition overlay rectangle (subtitles) is not bigger than
12678           the surface where it is going to be composited and rendered.
12679           https://bugzilla.gnome.org/show_bug.cgi?id=766978
12680
12681 2016-09-07 17:51:23 +0900  Hyunjun Ko <zzoon@igalia.com>
12682
12683         * gst/vaapi/gstvaapivideomemory.c:
12684           vaapivideomemory: load VA Image when mapping to write
12685           When calling gst_video_frame_map() with GST_MAP_WRITE flag, it doesn't call
12686           ensure_image_is_current(), which means it doesn't guarentee VAImage is valid
12687           in this case.
12688           https://bugzilla.gnome.org/show_bug.cgi?id=766978
12689
12690 2016-09-06 12:27:45 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12691
12692         * gst/vaapi/gstvaapidecode.c:
12693           vaapidecode: merge vc1 and wmv3 elements
12694           This patch merges vaapivc1dec and vaapiwmv3dec into a single
12695           vaapivc1dec. Also, removed the WMVA format, since it is not
12696           supported by libva.
12697           https://bugzilla.gnome.org/show_bug.cgi?id=734093
12698
12699 2016-09-06 11:19:05 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12700
12701         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12702           decoder: vc1: fails only on advanced profile
12703           In commit 2eb4394 the frame coding mode was verified for progressive
12704           regardless the profile. But the FCM is only valid in the advanced
12705           profile. This patch checks for the advanced profile before verifying FCM for
12706           progressive.
12707           https://bugzilla.gnome.org/show_bug.cgi?id=769250
12708
12709 2016-09-01 12:39:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12710
12711         * gst/vaapi/gstvaapi.c:
12712           vaapi: DISPLAY envvar as dependency
12713           In a multiple video cards system, a X11 environment may have different VA
12714           capabilities. This patch tracks the DISPLAY environment variable to
12715           invalidates the GStreamer features cache. Also tracks WAYLAND_DISPLAY.
12716           https://bugzilla.gnome.org/show_bug.cgi?id=770357
12717
12718 2016-08-26 14:55:17 -0700  Scott D Phillips <scott.d.phillips@intel.com>
12719
12720         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12721           decoder: vc1: Fail only on actual interlaced frames
12722           In the earlier patch:
12723           f31d9f3 decoder: vc1: Print error on interlaced content
12724           Decoding would error out if the interlace flag was set in the
12725           sequence bdu. This isn't quite right because a video can have this
12726           flag set and yet not have any interlaced pictures.
12727           Here instead we error out when either parsing a field bdu or
12728           decoding a frame bdu which has fcm set to anything other than
12729           progressive.
12730           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
12731           https://bugzilla.gnome.org/show_bug.cgi?id=769250
12732
12733 2016-09-01 12:34:48 +0300  Sebastian Dröge <sebastian@centricular.com>
12734
12735         * configure.ac:
12736           Back to development
12737
12738 === release 1.9.2 ===
12739
12740 2016-09-01 12:34:38 +0300  Sebastian Dröge <sebastian@centricular.com>
12741
12742         * ChangeLog:
12743         * NEWS:
12744         * configure.ac:
12745         * gstreamer-vaapi.doap:
12746           Release 1.9.2
12747
12748 2016-08-16 11:58:38 +0300  Scott D Phillips <scott.d.phillips@intel.com>
12749
12750         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
12751           decoder: vc1: Print error on interlaced content
12752           Interlaced video is as yet unsupported in the vc1 element. Print
12753           an error to make that more obvious.
12754           https://bugzilla.gnome.org/show_bug.cgi?id=769250
12755
12756 2016-08-10 13:29:45 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12757
12758         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12759           encoder: h264: fix C90 mixed declarations and code
12760           Commit 4259d1a introduced this compilation error. This patch fixes it.
12761
12762 2016-07-21 17:38:40 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12763
12764         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12765         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12766         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
12767         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
12768           encoder: h264,h265,mpeg2,vp8: use gst_util_uint64_scale() for bitrate
12769           Use gst_util_uint64_scale() to calculate bitrate instead of normal arithmetic
12770           to avoid overflows, underflows and loss of precision.
12771           https://bugzilla.gnome.org/show_bug.cgi?id=768458
12772
12773 2016-07-05 20:07:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12774
12775         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
12776         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
12777           vaapiencode: h264,h265: validate fps numerator
12778           Validate that fps numerator is non-zero so it can be used to calculate
12779           the duration of the B frame.
12780           Also it gst_util_uint64_scale() is used instead of normal arithmetic in
12781           order to aviod overflows, underflows and loss of precision.
12782           https://bugzilla.gnome.org/show_bug.cgi?id=768458
12783
12784 2016-08-06 12:54:17 +0100  Tim-Philipp Müller <tim@centricular.com>
12785
12786         * gst/vaapi/gstvaapi.c:
12787           encoders: demote to RANK_NONE since not fit for autoplugging yet
12788           Encoders claim to support a whole bunch of input formats but then
12789           just error out if the format is not actually supported, even if
12790           there's a converter in front. This means they're not fit for
12791           autoplugging in encodebin or camerabin yet and therefore should
12792           not have a rank. People can still use them in custom pipelines.
12793           https://bugzilla.gnome.org/show_bug.cgi?id=769266
12794
12795 2016-07-19 19:24:08 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12796
12797         * gst/vaapi/gstvaapipluginbase.c:
12798           plugins: check dmabuf-import for sink pad allocator
12799           Check earlier if upstream video source has activated the dmabuf-import
12800           io-mode (hack to disappear soon), thus we can avoid the re-assignation of a
12801           new allocator.
12802
12803 2016-07-19 20:02:54 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12804
12805         * gst/vaapi/gstvaapipluginbase.c:
12806           plugins: reset allocators if video info changed
12807           If the frame size or format, change, the allocators are reset, so a new ones
12808           can be created with the new video info.
12809
12810 2016-07-19 19:27:27 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12811
12812         * gst/vaapi/gstvaapipluginbase.c:
12813           plugins: remove sink pad allocator if caps change
12814           If the negotiated sinkpad caps change, destroy the assignated allocator,
12815           because it is not valid anymore.
12816
12817 2016-07-19 20:01:05 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12818
12819         * gst/vaapi/gstvaapipluginutil.c:
12820         * gst/vaapi/gstvaapipluginutil.h:
12821           pluginutil: const params to gst_video_info_changed()
12822           Since they are not modified, we should mark them as const.
12823
12824 2016-07-29 15:13:29 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12825
12826         * gst/vaapi/gstvaapipluginbase.c:
12827         * gst/vaapi/gstvaapivideomemory.c:
12828         * gst/vaapi/gstvaapivideomemory.h:
12829           gstvaapivideomemory: allocator's image size getter
12830           Add the method gst_allocator_get_vaapi_image_size() for the
12831           GstVaapiVideoAllocator, which gets the size of the allocated images with the
12832           current video info.
12833           This method replaces the direct call to the allocator's image info when the
12834           pool is configured.
12835
12836 2016-07-29 18:06:30 +0900  Hyunjun Ko <zzoon@igalia.com>
12837
12838         * gst/vaapi/gstvaapipluginbase.c:
12839           plugins: update buffer pool size with new allocator's image size
12840           Depends on media, video size is sometimes updated with new allocator.
12841           It leads to dismatch between bufferpool's set size and real allocated buffer size.
12842           In this case, it causes every buffer is freed during release in bufferpool,
12843           which should be reused. This affects performance.
12844           https://bugzilla.gnome.org/show_bug.cgi?id=769248
12845
12846 2016-07-27 19:49:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12847
12848         * configure.ac:
12849           configure: remove gmodule-2.0 EGL dependency
12850           Since commit 27429ce, EGL support doesn't depend on dynamic loading libraries,
12851           thus the dependency to gmodule-2.0 is not mandatory anymore.
12852
12853 2016-07-27 10:09:38 -0700  Scott D Phillips <scott.d.phillips@intel.com>
12854
12855         * configure.ac:
12856           configure: Fix non-fatal PKG_CHECK_MODULES invocations
12857           Some invocations of PKG_CHECK_MODULES were intended to be non-fatal if
12858           the package is missing, but action-if-not-found was given as an empty
12859           string which still causes the default action to run, which halts
12860           execution.
12861           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
12862           https://bugzilla.gnome.org/show_bug.cgi?id=769237
12863
12864 2016-07-13 18:34:57 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12865
12866         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
12867           libs: egl: remove dynamic library loading code
12868           Since the upstream of gstreamer-vaapi, the library is not a public shared
12869           object anymore. But the EGL support depended on this dynamic library, so the
12870           EGL support was broken.
12871           This patch removes the dynamic library loading code and instantiates the
12872           EGL display using either X11 or Wayland if available.
12873           https://bugzilla.gnome.org/show_bug.cgi?id=767203
12874
12875 2016-07-12 23:47:41 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12876
12877         * gst/vaapi/gstvaapi.c:
12878         * gst/vaapi/gstvaapidecode.c:
12879         * gst/vaapi/gstvaapidecode.h:
12880           vaapidecode: register only the available decoders
12881           In order to register only the available decoders, this patch queries the
12882           created test VA display, which uses the currently used back-end (X11, Wayland,
12883           DRM, …) on the used display device.
12884           https://bugzilla.gnome.org/show_bug.cgi?id=724352
12885
12886 2016-06-28 11:43:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12887
12888         * gst/vaapi/gstvaapi.c:
12889         * gst/vaapi/gstvaapipluginutil.c:
12890         * gst/vaapi/gstvaapipluginutil.h:
12891           vaapi: register only the available encoders
12892           In order to register only the available encoders, this patch queries the
12893           created test VA display, which uses the currently used back-end (X11,
12894           Wayland, DRM, …) on the used display device.
12895           https://bugzilla.gnome.org/show_bug.cgi?id=724352
12896
12897 2016-06-07 16:28:07 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12898
12899         * gst/vaapi/gstvaapidecode.c:
12900         * gst/vaapi/gstvaapidecodebin.c:
12901           vaapidecode: split all the codecs
12902           Split the vaapidecode to all the supported codecs with the format
12903           vaapi{codec}dec.
12904           vaapidecode is stil registered as a GObject type, but not as a
12905           GStreamer feature, so it can be used internally by vaapidecodebin without
12906           changing its code too much.
12907           https://bugzilla.gnome.org/show_bug.cgi?id=734093
12908
12909 2016-07-12 22:19:37 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12910
12911         * gst/vaapi/gstvaapidecodebin.c:
12912           vaapidecodebin: simplify the code
12913           Since the elements dependant of the VA video processor are now only registered
12914           if it is available, vaapidecodebin code can be simplified a lot, removing all
12915           the code required to check if the VA video processor was available.
12916           https://bugzilla.gnome.org/show_bug.cgi?id=768899
12917
12918 2016-07-12 17:54:26 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12919
12920         * gst/vaapi/gstvaapidecode.c:
12921           vaapidecode: delay the GstVaapiDisplay instantiating
12922           Delay the GstVaapiDisplay instantiating until when changing the state from
12923           READY to PAUSE. In this way the element has more chances to find an already
12924           created GstVaapiDisplay, or a GL context, in the pipeline.
12925           https://bugzilla.gnome.org/show_bug.cgi?id=766206
12926
12927 2016-07-12 17:49:50 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12928
12929         * gst/vaapi/gstvaapipluginutil.c:
12930           pluginutil: set GLX display type
12931           The function gst_vaapi_create_display_from_gl_context() cretes a
12932           GstVaapiDisplay given a GstGLContext. But it didn't created a GLX VA display
12933           when the GL platform was GLX, but a plain X11 VA display.
12934           This patch fixes that, by querying the GL platform earlier.
12935           https://bugzilla.gnome.org/show_bug.cgi?id=766206
12936
12937 2016-06-02 19:57:08 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12938
12939         * gst/vaapi/gstvaapipluginbase.c:
12940         * gst/vaapi/gstvaapivideocontext.c:
12941         * gst/vaapi/gstvaapivideocontext.h:
12942           plugins: add gst_vaapi_plugin_base_find_gl_context()
12943           Using the GstContext mechanism, it is possible to find if the pipeline
12944           shares a GstGLContext, even if we are not to negotiating GLTextureUpload
12945           meta. This is interesting because we could negotiate system memory caps
12946           feature, but enable DMABuf if the GstGLContext is EGL with some extensions.
12947           https://bugzilla.gnome.org/show_bug.cgi?id=766206
12948
12949 2016-06-28 17:14:06 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12950
12951         * gst/vaapi/gstvaapipluginbase.c:
12952         * gst/vaapi/gstvaapipluginbase.h:
12953           plugins: remove gst_vaapi_plugin_base_driver_is_whitelisted()
12954           Since nobody is calling gst_vaapi_plugin_base_driver_is_whitelisted(),
12955           it is deleted.
12956
12957 2016-07-12 18:24:10 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12958
12959         * gst/vaapi/gstvaapipluginbase.h:
12960           plugins: remove common change_state() vmethod
12961           Remove the common change_state() vmethod for all the plugins, since no one is
12962           using it.
12963
12964 2016-07-12 20:38:07 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12965
12966         * gst/vaapi/gstvaapidecode.c:
12967           vaapidecode: remove change_state() vmethod
12968           Since the driver checkup is done at registering, there is no need to do it
12969           when changing the element state from NULL to READY. This patch remove this
12970           vmethod from vaapidecode.
12971
12972 2016-07-12 20:29:12 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12973
12974         * gst/vaapi/gstvaapi.c:
12975           vaapi: register vaapipostproc only if supported
12976           Query the GstVaapiDisplay to know if the driver supports video
12977           postprocessing. If does, then register vaapipostproc and vaapidecodebin
12978           elements.
12979           This patch will simplify the design of vaapidecodebin.
12980           https://bugzilla.gnome.org/show_bug.cgi?id=724352
12981
12982 2016-06-29 12:36:26 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12983
12984         * gst/vaapi/gstvaapi.c:
12985           vaapi: don't register if VA driver is unsupported
12986           Using the test VA display, the driver name is queried, and if it is not
12987           white-listed, the plugin rejects to register any element.
12988           https://bugzilla.gnome.org/show_bug.cgi?id=724352
12989
12990 2016-06-28 17:14:06 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
12991
12992         * gst/vaapi/gstvaapipluginbase.c:
12993         * gst/vaapi/gstvaapipluginutil.c:
12994         * gst/vaapi/gstvaapipluginutil.h:
12995           plugins: add gst_vaapi_driver_is_whitelisted()
12996           Move some of the logic in gst_vaapi_plugin_base_driver_is_whitelisted() to a
12997           new function gst_vaapi_driver_is_whitelisted(), in this way, it can be used
12998           when registering the plugin's feature set with the test VA display.
12999           https://bugzilla.gnome.org/show_bug.cgi?id=724352
13000
13001 2016-07-12 19:56:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13002
13003         * gst/vaapi/gstvaapi.c:
13004           vaapi: instantiate a VA display when registering
13005           This patch tries to instantiate a GstVaapiDisplay when registering the plugin
13006           features, if it fails, no gstreamer-vaapi element is registering.
13007           The purpose of this patch is to avoid a situation where the user has
13008           gstreamer-vaapi installed but their VA-API setup is not functional, which may
13009           lead to unexpected behavior.
13010           https://bugzilla.gnome.org/show_bug.cgi?id=724352
13011
13012 2016-06-28 11:33:18 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13013
13014         * configure.ac:
13015         * gst/vaapi/gstvaapi.c:
13016           vaapi: declare external dependencies
13017           There are two main external dependencies that define the feature set of this
13018           plugin: a) the kernel and b) the VA driver
13019           This patch tracks both dependencies, if any of them change, GStreamer will
13020           re-inspect the plugin.
13021           The kernel is tracked through the device files /dev/dri/card*
13022           The VA driver is tracked through the files VA_DRIVERS_PATH/*_drv_video.so,
13023           where VA_DRIVERS_PATH is the one defined in libva package configuration. Also,
13024           the environment variables LIBVA_DRIVERS_PATH and LIBVA_DRIVER_NAME are tracked
13025           since they modify the driver lookup.
13026           Additionally, the environment variable GST_VAAPI_ALL_DRIVERS is tracked too.
13027           https://bugzilla.gnome.org/show_bug.cgi?id=724352
13028
13029 2016-07-19 16:02:27 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13030
13031         * gst/vaapi/gstvaapidecode.c:
13032           vaapidecode: remove unneeded initializations
13033           GObject's memory is set to zero, so there is no need to initialize to zero or
13034           NULL it's class variables.
13035
13036 2016-07-19 18:28:28 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13037
13038         * gst/vaapi/gstvaapipluginbase.h:
13039           plugins: remove undefined macros
13040
13041 2016-07-19 17:43:28 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13042
13043         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13044           Revert "gstvaapisurface_drm: release image when done"
13045           This reverts commit 1dbcc8a0e199f2da6a0ab8e949f13341916128a3  and commit
13046           372a03a9e38acbf435eb80bf31d9a9844069e504.
13047           While the dmabuf handle is exported, the derive image must exist, otherwise
13048           the image's VA buffer is invalid, thus the dmabuf handle is never released,
13049           leading into a file descriptors leak.
13050
13051 2016-07-21 17:38:17 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13052
13053         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13054           encoder: h265: fix code-style
13055
13056 2016-07-22 16:55:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13057
13058         * gst/vaapi/gstvaapipostproc.c:
13059           vaapipostproc: update filters at color balance
13060           This is a fix for a regression of previous commit, which updates the filters
13061           only when the property is set, because it is also required to update the
13062           filter when the color balance interface change its values.
13063
13064 2016-07-22 12:10:23 +0900  Hyunjun Ko <zzoon@igalia.com>
13065
13066         * gst/vaapi/gstvaapipostproc.c:
13067         * gst/vaapi/gstvaapipostproc.h:
13068           vaapipostproc: make it enable/disable pass-through mode
13069           In case that sink caps and src caps are same, and no filtering parameter set,
13070           pass-through mode is enabled.
13071           If new filtering parameter is set during playback, it makes it reconfiguring,
13072           so that pass-through mode is changed
13073           In addition, updating filter is performed during reconfiguration, if needed.
13074           https://bugzilla.gnome.org/show_bug.cgi?id=751876
13075
13076 2016-07-22 11:51:26 +0900  Hyunjun Ko <zzoon@igalia.com>
13077
13078         * gst-libs/gst/vaapi/gstvaapifilter.c:
13079         * gst-libs/gst/vaapi/gstvaapifilter.h:
13080         * gst/vaapi/gstvaapipostproc.c:
13081           vaapipostproc: checking and updating filter parameter only when it's set
13082           This patch is to avoid checking filter value at every frame.
13083           https://bugzilla.gnome.org/show_bug.cgi?id=751876
13084
13085 2016-07-21 11:24:31 +0300  Allen Zhang <Zhang, Zhangfei>
13086
13087         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13088           decoder: h265: handle the SEI NAL units included in codec_data
13089           The prefix/suffix SEI nal units can appear in codec_data too
13090           which weren't handled before. Parse these SEI headers to
13091           fix the segfault.
13092           https://bugzilla.gnome.org/show_bug.cgi?id=768544
13093
13094 2016-07-15 16:32:26 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13095
13096         * docs/plugins/Makefile.am:
13097           build: doc: do not redefine MAINTAINERCLEANFILES
13098           MAINTAINERCLEANFILES is defined in gtk-doc-plugins.mak, thus instead of
13099           overload it, the files should be added.
13100
13101 2016-07-15 14:41:27 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13102
13103         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13104           encoder: h264: Fix MVC encode while enabling dct8x8
13105           Pack the transform_8x8_mode_flag and other necessary rbsp data
13106           in packed_pps header for MVC encode.
13107           https://bugzilla.gnome.org/show_bug.cgi?id=768647
13108
13109 2016-07-12 23:58:55 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13110
13111         * gst/vaapi/gstvaapisink.c:
13112           vaapisink: demote a debug message to trace
13113           Reduces noise when debugging.
13114
13115 2016-07-13 17:21:01 +0900  Jagyum Koo <koojagyum@gmail.com>
13116
13117         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
13118           wayland: Error check before using cached wl_display
13119           A planar(or some other) buffer allocation may fail on the driver, then
13120           the wayland connection becomes invalid, not able to send request or
13121           receive any event. So we need to set up a new wayland connection if
13122           there's an error detected on the cached wl_display.
13123           https://bugzilla.gnome.org/show_bug.cgi?id=768761
13124           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13125
13126 2016-07-11 21:15:57 +0200  Stefan Sauer <ensonic@users.sf.net>
13127
13128         * common:
13129           Automatic update of common submodule
13130           From ac2f647 to f49c55e
13131
13132 2016-07-05 18:23:22 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13133
13134         * gst/vaapi/gstvaapiencode.c:
13135           vaapiencode: demote a log to trace level
13136           Removes noise when debugging.
13137
13138 2016-07-06 11:17:23 +0900  Hyunjun Ko <zzoon@igalia.com>
13139
13140         * gst/vaapi/gstvaapiencode.c:
13141           vaapiencode: implement flush() vmethod
13142           In order to handle correctly seek and other operations, vaapiencode should
13143           flush all the remaining data from the encoder without pushing it downstream.
13144           This patch implements the flush() vmethod, only after of pausing the
13145           source pad task, and restarting it again after the flush stop.
13146           https://bugzilla.gnome.org/show_bug.cgi?id=767176
13147           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13148
13149 2016-07-11 08:43:04 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13150
13151         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
13152           decoder: vc1: flush dpb only if opened
13153           Flush the decode picture buffer, if and only if, the decoder is
13154           started. Otherwise the dpb structure might be NULL.
13155           https://bugzilla.gnome.org/show_bug.cgi?id=742922
13156
13157 2016-07-01 14:42:20 +0900  Hyunjun Ko <zzoon@igalia.com>
13158
13159         * gst/vaapi/gstvaapidecode.c:
13160         * gst/vaapi/gstvaapidecode.h:
13161           vaapidecode: drop non-keyframe in reverse playback
13162           To avoid surface-exhausted situation during reverse playback,
13163           drop frames except for key frame.
13164           Also, to avoid the corruption of the parser state, flush() vmethod
13165           doesn't destroy the VA decoder when playing in reverse.
13166           https://bugzilla.gnome.org/show_bug.cgi?id=742922
13167           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13168
13169 2016-07-10 19:33:14 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13170
13171         * gst/vaapi/gstvaapidecode.c:
13172           vaapidecode: unref output frame earlier
13173           The queue in GstVaapiDecode adds an extra reference to the frames. This patch
13174           unref that extra reference earlier making the code simpler to follow.
13175           https://bugzilla.gnome.org/show_bug.cgi?id=768652
13176
13177 2016-07-10 19:01:17 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13178
13179         * gst/vaapi/gstvaapidecode.c:
13180           vaapidecode: remove gst_vaapidecode_internal_flush()
13181           As gst_vaapidecode_finish() is the only callee of
13182           gst_vaapidecode_internal_flush(), it is better to inline it.
13183           https://bugzilla.gnome.org/show_bug.cgi?id=768652
13184
13185 2016-07-10 18:18:57 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13186
13187         * gst/vaapi/gstvaapidecode.c:
13188           vaapidecode: flush output adapter at drain()
13189           Calling drain() vmethod means "decode any data it can at this point, but that
13190           more data may arrive after". Hence, vaapidecode should check if there is data
13191           in the output adapter and process them, without destroying the decoded picture
13192           buffer (dpb).
13193           Since this operation is done by gst_vaapidecode_internal_flush(), the operation
13194           was refactored into a new function gst_vaapidecode_flush_output_adapter().
13195           https://bugzilla.gnome.org/show_bug.cgi?id=768652
13196
13197 2016-07-10 13:46:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13198
13199         * gst/vaapi/gstvaapidecode.c:
13200           vaapidecode: call purge at flush()
13201           Calling flush() vmethod means "to flush all remaining data from the decoder
13202           without pushing it downstream".
13203           Nonetheless flush() is calling gst_vaapidecode_internal_flush(), which calls
13204           gst_video_decoder_have_frame() if there is still something in the input
13205           adapter, which may push buffers to downstream by calling handle_frame().
13206           This patch changes this behavior by calling gst_vaapidecode_purge() rather
13207           than gst_vaapidecode_internal_flush(), which does what we want: flushes the VA
13208           decoder and releases all the rest of decoded frames.
13209           https://bugzilla.gnome.org/show_bug.cgi?id=768652
13210
13211 2016-07-06 18:38:37 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13212
13213         * tests/elements/Makefile.am:
13214         * tests/elements/test-vaapisink.c:
13215           test: elements: remove spurious linkage
13216           Element tests only need to link against gstreamer libraries.
13217
13218 2016-07-06 14:41:21 +0300  Sebastian Dröge <sebastian@centricular.com>
13219
13220         * configure.ac:
13221           configure: Require GLib >= 2.40 like everywhere else
13222
13223 2016-07-06 13:51:21 +0300  Sebastian Dröge <sebastian@centricular.com>
13224
13225         * configure.ac:
13226           Back to development
13227
13228 === release 1.9.1 ===
13229
13230 2016-07-06 13:48:07 +0300  Sebastian Dröge <sebastian@centricular.com>
13231
13232         * ChangeLog:
13233         * NEWS:
13234         * common:
13235         * configure.ac:
13236         * gstreamer-vaapi.doap:
13237           Release 1.9.1
13238
13239 2016-07-05 20:59:49 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13240
13241         * tests/elements/test-vaapisink.c:
13242           tests: elements: rotate orientation event
13243
13244 2016-07-01 16:01:54 +0900  Hyunjun Ko <zzoon@igalia.com>
13245
13246         * configure.ac:
13247         * tests/Makefile.am:
13248         * tests/elements/Makefile.am:
13249         * tests/elements/test-vaapisink.c:
13250           tests: elements: Add testsuite for vaapisink
13251           https://bugzilla.gnome.org/show_bug.cgi?id=765798
13252
13253 2016-07-01 16:00:46 +0900  Hyunjun Ko <zzoon@igalia.com>
13254
13255         * gst-libs/gst/vaapi/gstvaapitypes.h:
13256         * gst-libs/gst/vaapi/gstvaapivalue.c:
13257         * gst/vaapi/gstvaapisink.c:
13258         * gst/vaapi/gstvaapisink.h:
13259           vaapisink: add support for GST_TAG_IMAGE_ORIENTATION
13260           https://bugzilla.gnome.org/show_bug.cgi?id=765798
13261
13262 2016-06-29 13:57:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13263
13264         * gst/vaapi/gstvaapipostproc.c:
13265           vaapipostproc: return caps template if no display
13266           This patch is a fix for my bad review of commit 6d73ca8d. The element should
13267           be able to return the available raw caps handled by the VA display, but that
13268           only should happen when there a VA display. If there's none, the element
13269           should use the caps template.
13270           https://bugzilla.gnome.org/show_bug.cgi?id=768161
13271
13272 2016-06-29 16:42:18 +1000  Matthew Waters <matthew@centricular.com>
13273
13274         * gst/vaapi/gstvaapipostproc.c:
13275           vaapipostproc: don't require a vaapi display for all caps queries
13276           This delays the requirement of having a GstVaapiDisplay until later
13277           https://bugzilla.gnome.org/show_bug.cgi?id=768161
13278
13279 2016-06-28 15:48:39 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13280
13281         * gst-libs/gst/vaapi/gstvaapiutils.c:
13282           utils: report VP9 profiles
13283           Add VP9Profile0-3 name mapping.
13284
13285 2016-06-28 14:05:51 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13286
13287         * gst/vaapi/gstvaapi.c:
13288           vaapi: nest includes under USE_ENCODER macro
13289           This is a missed changeset from commit 1c05c53, since also header includes
13290           should be nested.
13291
13292 2016-06-28 11:54:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13293
13294         * gst/vaapi/gstvaapi.c:
13295           vaapi: nest encoders under USE_ENCODER macro
13296           Though USE_{JPEG,VP8,VP9,H265}_ENCODER macros definition depend on USE_ENCODER
13297           macro, it is clearer to nest them, showing explicitly the dependency relation.
13298
13299 2016-06-24 12:05:24 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13300
13301         * gst/vaapi/gstvaapivideocontext.c:
13302           vaapivideocontext: check if query context is NULL
13303           Under certain conditions the element might receive a positive context query
13304           but without a context instance. This situation will lead to a segmentation
13305           fault when traversing the context list in the pipeline.
13306           https://bugzilla.gnome.org/show_bug.cgi?id=767946
13307
13308 2016-06-20 13:22:36 -0700  Scott D Phillips <scott.d.phillips@intel.com>
13309
13310         * gst-libs/gst/vaapi/Makefile.am:
13311         * gst-libs/gst/vaapi/glibcompat.h:
13312         * gst-libs/gst/vaapi/sysdeps.h:
13313           remove unused glibcompat.h
13314           glibcompat.h is no longer doing anything. Remove it.
13315           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13316           https://bugzilla.gnome.org/show_bug.cgi?id=767886
13317
13318 2016-06-22 14:28:44 -0700  Scott D Phillips <scott.d.phillips@intel.com>
13319
13320         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13321           encoder: h264: Use high profile by default
13322           Change defaults for max-bframes, cabac, and dct8x8 to be enabled
13323           by default. This will cause the default profile to be high instead
13324           of baseline. In most situations this is the right decision, and
13325           the profile can still be lowered in the case of caps restrictions.
13326           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13327           https://bugzilla.gnome.org/show_bug.cgi?id=757941
13328
13329 2016-06-22 12:15:29 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13330
13331         * gst/vaapi/gstvaapidecodebin.c:
13332           vaapidecodebin: element warning if missing element
13333           Raise an element warning if a required element is not available, thus the
13334           pipeline will post a warning message and the application will be informed.
13335
13336 2016-06-22 15:11:56 +0300  Hyunjun Ko <zzoon@igalia.com>
13337
13338         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
13339           decoder: h265: fix to release all dpb pictures
13340           Without this, all dpb pictures are not released during flush,
13341           because we used the global dpb_count variable for checking the
13342           dpb fullness which get decremented in dpb_remove_index()
13343           routine during each loop iteration.
13344           https://bugzilla.gnome.org/show_bug.cgi?id=767934
13345
13346 2016-06-21 11:48:54 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
13347
13348         * common:
13349           Automatic update of common submodule
13350           From ac2f647 to f363b32
13351
13352 2016-06-20 19:53:26 +0900  Hyunjun Ko <zzoon@igalia.com>
13353
13354         * gst/vaapi/gstvaapidecode.c:
13355         * gst/vaapi/gstvaapipostproc.c:
13356           vaapi: fix minor leaks
13357           https://bugzilla.gnome.org/show_bug.cgi?id=767868
13358
13359 2016-06-17 17:00:03 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13360
13361         * gst/vaapi/gstvaapi.c:
13362           vaapi: remove an already included header
13363           gst/gst.h is already included in gstcompat.h
13364
13365 2016-06-17 16:53:26 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13366
13367         * gst/vaapi/gstvaapidecodebin.c:
13368           vaapidecodebin: add vp9 in sink pad template
13369
13370 2016-06-15 20:19:27 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13371
13372         * gst/vaapi/gstvaapisink.c:
13373           vaapisink: return caps template if no display
13374           If vaapisink received a caps query before getting a VA display, it returned
13375           only the surfaces related caps. This behavior broke the autovideosink
13376           negotiation.
13377           This patch returns the pad's template caps if no VA display, otherwise the
13378           caps are crafted as before.
13379           https://bugzilla.gnome.org/show_bug.cgi?id=767699
13380
13381 2016-06-15 11:25:23 -0700  Scott D Phillips <scott.d.phillips@intel.com>
13382
13383         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13384           decoder: vp9: Update comment about context resets
13385           Clarify that vaapi context resets are never needed for vp9, but
13386           that ensure_context() needs called when the size increases so that
13387           new surfaces can be allocated.
13388           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13389           https://bugzilla.gnome.org/show_bug.cgi?id=767474
13390
13391 2016-05-17 15:34:23 -0700  Scott D Phillips <scott.d.phillips@intel.com>
13392
13393         * gst-libs/gst/vaapi/gstvaapicontext.c:
13394         * gst-libs/gst/vaapi/gstvaapicontext.h:
13395         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
13396           gstvaapicontext: control reset_on_resize with option
13397           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13398           https://bugzilla.gnome.org/show_bug.cgi?id=767474
13399
13400 2016-06-14 09:45:22 -0700  Scott D Phillips <scott.d.phillips@intel.com>
13401
13402         * gst/vaapi/gstvaapivideobufferpool.c:
13403           vaapivideobufferpool: add video meta to config when needed
13404           In cases where we know the video meta must be present, add it to
13405           the pool configuration.
13406           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13407           https://bugzilla.gnome.org/show_bug.cgi?id=766184
13408
13409 2016-06-13 10:48:41 -0700  Scott D Phillips <scott.d.phillips@intel.com>
13410
13411         * gst/vaapi/gstvaapipluginbase.c:
13412           plugins: retry pool config
13413           if gst_buffer_pool_set_config returns FALSE, check the modified
13414           config and retry set_config if the config is still acceptable.
13415           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13416           https://bugzilla.gnome.org/show_bug.cgi?id=766184
13417
13418 2016-06-08 18:42:43 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13419
13420         * gst/vaapi/gstvaapivideomemory.h:
13421           vaapivideomemory: internal attributes to methods
13422           Mark as internal the functions used by VA-API dmabuf allocator.
13423
13424 2016-06-02 15:41:22 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13425
13426         * gst/vaapi/gstvaapipluginbase.c:
13427           plugins: remove precondition for decide_allocation()
13428           There's no need to check for the display in the plugin object when
13429           decide_allocation() vmethod is called, because the display will created or
13430           re-created along the method execution.
13431
13432 2016-06-08 18:44:34 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13433
13434         * gst/vaapi/gstvaapipluginbase.c:
13435           plugins: avoid possible memory leaks
13436           Get the pool config just before use it, to avoid a memory leak if the
13437           allocator cannot be instantiated. Similarly, return FALSE if the configuration
13438           cannot be set, avoid keep a not used allocator in the pool.
13439
13440 2016-05-31 11:52:57 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13441
13442         * gst/vaapi/gstvaapipluginbase.c:
13443           plugins: use GstParentBufferMeta
13444           Instead of using the VASurface proxy's notify, which is internal gstvaapi API,
13445           use the GStreamer's GstParentBufferMeta.
13446           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13447
13448 2016-05-31 08:26:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13449
13450         * gst/vaapi/gstvaapipluginbase.c:
13451           plugins: cache VASurfaces from dmabufs
13452           This patch avoids the creation of a VASurface each time a new input buffer is
13453           processed, caching them in the input buffer itself.
13454           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13455
13456 2016-05-30 23:55:43 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13457
13458         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13459         * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
13460         * gst/vaapi/gstvaapipluginbase.c:
13461           libs: change gst_vaapi_surface_new_with_dma_buf_handle()
13462           Instead of passing the data already in GstVideoInfo, let's just pass the
13463           GstVideoInfo structure.
13464           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13465
13466 2016-05-25 12:31:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13467
13468         * gst/vaapi/gstvaapipluginbase.c:
13469         * gst/vaapi/gstvaapipluginbase.h:
13470           plugins: use an unique allocator per pad
13471           Instead of instantiating an allocator per vaapivideobufferpool, only one
13472           allocator is instantiated per element's pad and shared among future pools.
13473           If the pad's caps changes, the allocator is reset.
13474           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13475
13476 2016-05-25 10:58:01 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13477
13478         * gst/vaapi/gstvaapipluginbase.c:
13479         * gst/vaapi/gstvaapivideobufferpool.c:
13480         * gst/vaapi/gstvaapivideobufferpool.h:
13481           vaapivideobufferpool: share options flag with pluginbase
13482           Originally, vaapivideobufferpool has a set of boolean variables for the
13483           buffer configuration options.
13484           This pach changes these boolean variables for a single bitwise, just as
13485           it is used in pluginbase. Hence, the internal enum was moved to
13486           vaapivideobufferpool header.
13487           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13488
13489 2016-05-10 15:57:06 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13490
13491         * gst/vaapi/gstvaapipluginbase.c:
13492           plugins: add gst_vaapi_plugin_base_create_pool()
13493           This patch refactors the code in pluginbase in order to centralize the buffer
13494           pool instantiation. As the buffer pool config may have different options, these
13495           are gathered using a bitwise flag.
13496           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13497
13498 2016-05-20 18:46:14 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13499
13500           pluginbase negotiates allocator with bufferpool
13501           Originally vaapivideobufferpool instantiates its own allocator regardless the
13502           received configuration, and it relies in custom configuration options to
13503           choose which kind of allocator instantiate.
13504           This patch transfers the responsibility of the allocator instantiate to
13505           vaapipluginbase and pass it to the vaapivideobufferpool through its
13506           configuration.
13507           * gst/vaapi/gstvaapipluginbase.c
13508           + set_dmabuf_allocator(): inserts a dmabuf allocator in the bufferpool
13509           + ensure_sinkpad_buffer_pool(): set a normal vaapi video allocator in
13510           bufferpool configuration
13511           + gst_vaapi_plugin_base_propose_allocation(): call set_dmabuf_allocator() if
13512           needed.
13513           + gst_vaapi_plugin_base_decide_allocation(): set a normal vaapi video
13514           allocator in bufferpool configuration
13515           * gst/vaapi/gstvaapivideobufferpool.c
13516           + gst_vaapi_video_buffer_pool_set_config(): instead of instantiate the
13517           allocator, process the received one through its configuration.
13518           * gst/vaapi/gstvaapivideobufferpool.h: removed
13519           GST_BUFFER_POOL_OPTION_DMABUF_MEMORY since it is not used anymore.
13520           * gst/vaapi/gstvaapivideomemory.c
13521           + gst_vaapi_is_dmabuf_allocator(): new helper function to identify a dmabuf
13522           allocator with the vaapi qdata.
13523           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13524
13525 2016-05-20 14:39:23 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13526
13527         * gst/vaapi/gstvaapivideobufferpool.c:
13528           vaapivideobufferpool: keep only current video info
13529           Instead of keeping old and new GstVideoInfo video structure, we only keep one,
13530           the current one, the negotiated. The old one is not needed at all.
13531           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13532
13533 2016-05-23 15:38:07 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13534
13535         * gst/vaapi/gstvaapipluginbase.c:
13536         * gst/vaapi/gstvaapipluginutil.c:
13537         * gst/vaapi/gstvaapipluginutil.h:
13538         * gst/vaapi/gstvaapivideomemory.c:
13539           pluginutil: add gst_video_info_force_nv12_if_encoded()
13540           This lines repeat a couple times in the code, so it would be better to put it
13541           a helper function.
13542           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13543
13544 2016-05-20 14:15:53 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13545
13546         * gst/vaapi/gstvaapipluginutil.c:
13547         * gst/vaapi/gstvaapipluginutil.h:
13548         * gst/vaapi/gstvaapipostproc.c:
13549         * gst/vaapi/gstvaapivideobufferpool.c:
13550           pluginutil: add gst_video_info_changed() helper
13551           This function is shared among different elements, so let factorized it.
13552           https://bugzilla.gnome.org/show_bug.cgi?id=765435
13553
13554 2016-06-08 10:14:16 +0900  Hyunjun Ko <zzoon@igalia.com>
13555
13556         * gst/vaapi/gstvaapipostprocutil.c:
13557           vaapipostproc: Add colorimetry attributes to src caps
13558           https://bugzilla.gnome.org/show_bug.cgi?id=766596
13559
13560 2016-06-08 10:17:46 +0900  Hyunjun Ko <zzoon@igalia.com>
13561
13562         * gst/vaapi/gstvaapidecode.c:
13563           vaapidecode: remove chroma-site and colorimetry from src caps
13564           https://bugzilla.gnome.org/show_bug.cgi?id=766596
13565
13566 2016-06-07 14:19:50 -0700  Scott D Phillips <scott.d.phillips@intel.com>
13567
13568         * gst/vaapi/gstvaapipostproc.c:
13569         * gst/vaapi/gstvaapipostproc.h:
13570           vaapipostproc: add postproc_lock to protect data members
13571           Add a mutex to postproc to protect concurrent access to data members.
13572           Previously set_caps() could release the allowed_srcpad_caps while
13573           transform_caps was in the middle of using it.
13574           Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
13575           https://bugzilla.gnome.org/show_bug.cgi?id=766940
13576
13577 2016-05-30 11:30:40 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13578
13579         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13580         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13581           encoder: vp9: Add simple algorithms for reference picture selection
13582           Added two modes(as properties) for reference picture selection:
13583           ref-mode-0: AltRef and GoldRef pointing to the recent keyframe
13584           and LastRef is pointing to the previous frame.
13585           ref-mode-1: Previous frame (n) as LastRef , n-1 th frame as GoldRef
13586           and n-2 th frame as AltRef
13587           https://bugzilla.gnome.org/show_bug.cgi?id=766048
13588
13589 2016-05-30 11:25:52 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13590
13591         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13592           encoder: vp9: Define Max frame width and height
13593           https://bugzilla.gnome.org/show_bug.cgi?id=766048
13594
13595 2016-05-30 11:25:03 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13596
13597         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13598         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13599           encoder: vp9: Add more propertis for tuning encode quality
13600           Added three tuning properties:
13601           1: filter_level
13602           2: sharpness_level
13603           3: luma ac quant-table index
13604           https://bugzilla.gnome.org/show_bug.cgi?id=766048
13605
13606 2016-05-30 11:24:14 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13607
13608         * gst/vaapi/Makefile.am:
13609         * gst/vaapi/gstvaapi.c:
13610         * gst/vaapi/gstvaapiencode_vp9.c:
13611         * gst/vaapi/gstvaapiencode_vp9.h:
13612           Add vp9 encode element to "vaapi" plugin
13613           https://bugzilla.gnome.org/show_bug.cgi?id=766048
13614
13615 2016-05-30 11:23:12 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13616
13617         * gst-libs/gst/vaapi/Makefile.am:
13618         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.c:
13619         * gst-libs/gst/vaapi/gstvaapiencoder_vp9.h:
13620           Add vp9 encoder support in libgstvaapi
13621           https://bugzilla.gnome.org/show_bug.cgi?id=766048
13622
13623 2016-05-30 11:22:35 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13624
13625         * configure.ac:
13626           build: Add check for VP9 encode API support in libva
13627           https://bugzilla.gnome.org/show_bug.cgi?id=766048
13628
13629 2016-05-26 11:42:32 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13630
13631         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13632           gstvaapisurface_drm: fix internal documentation
13633
13634 2016-05-26 11:41:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13635
13636         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13637           gstvaapisurface_drm: fix code-style
13638
13639 2016-05-25 12:28:48 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13640
13641         * gst/vaapi/gstvaapipluginbase.c:
13642           plugins: remove unused header
13643           Remove the include of gst/allocators/allocators.h since it is not used.
13644
13645 2016-05-25 10:36:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13646
13647         * gst/vaapi/gstvaapivideobufferpool.h:
13648           vaapivideobufferpool: remove GL_TEXTURE_UPLOAD_META
13649           Since gstreamer-vaapi is coupled with gstreamer releases, there is no need to
13650           keep compatibility definition.
13651           This patch removes the definition of
13652           GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META since it is in
13653           gst-plugins-base version 1.2.2
13654
13655 2016-05-23 22:49:11 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13656
13657         * gst/vaapi/gstvaapipluginbase.c:
13658           plugins: add gst_vaapi_buffer_pool_caps_is_equal()
13659           This is a helper function to improve the readability of
13660           ensure_sinkpad_buffer_pool(). It makes clearer when the buffer pool needs to be
13661           re-instantiated.
13662
13663 2016-05-24 16:29:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13664
13665         * gst/vaapi/gstvaapipluginbase.c:
13666           plugins: deactivate buffer pool before unref
13667           This buffer pool may still be processing buffers when a caps renegotiation is
13668           done. This one-liner patch deactivates the pool to drain it before it
13669           de-allocation.
13670
13671 2016-05-24 16:22:24 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13672
13673         * gst/vaapi/gstvaapipluginbase.c:
13674           plugins: no sinkpad bufferpool when decoder
13675           Right now, the decoders create a buffer pool for their sink pad which is not
13676           used at all, because the decoders have never proposed it to upstream.
13677           This patch avoids the buffer pool instantiating when the element inherits from
13678           the GstVideoDecoder class.
13679
13680 2016-05-24 13:39:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13681
13682         * gst/vaapi/gstvaapipluginbase.c:
13683           plugins: avoid to get/set pool config twice
13684           This patch is a bit of optimization, since the bufferpool configuration is get
13685           when the pool is created. Hence, we only need to request it when the pool from
13686           the allocation query is reused.
13687
13688 2016-05-13 13:14:23 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13689
13690         * gst/vaapi/gstvaapipluginbase.c:
13691           plugins: destroy pool earlier if non-vaapi
13692           If the offered pool in decide_allocation() vmethod doesn't have the
13693           VAAPI_VIDEO_META option, it is destroyed immediatly and the pointer cleared,
13694           so it could be created later.
13695
13696 2016-05-23 22:30:04 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13697
13698         * gst/vaapi/gstvaapivideobufferpool.c:
13699           vaapivideobufferpool: split caps validation
13700           When validating the caps from bufferpool config, this patch distinguishes the
13701           error from no caps received (NULL) from the invalid caps (cannot be converted
13702           into GstVideoInfo structure).
13703
13704 2016-05-23 22:21:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13705
13706         * gst/vaapi/gstvaapidecode.c:
13707         * gst/vaapi/gstvaapipluginbase.c:
13708           plugins: check for caps in query earlier
13709           Check for caps as soon gst_query_parse_allocation() returns.
13710
13711 2016-05-23 23:13:55 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13712
13713         * gst/vaapi/gstvaapipluginbase.c:
13714         * gst/vaapi/gstvaapipluginbase.h:
13715           plugins: remove unused variables
13716           This variables stopped to be used since commit 001a5c63, which removed the
13717           gstvaapiuploader.
13718
13719 2016-05-23 18:47:46 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13720
13721         * gst/vaapi/gstvaapipluginbase.c:
13722           plugins: fix potential memleak from commit 9159328
13723           If gst_video_info_from_caps() fails it is required to unref the instantiated
13724           pool.
13725
13726 2016-05-23 18:04:47 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13727
13728         * gst/vaapi/gstvaapipostproc.c:
13729           vaapipostproc: handle if gst_video_info_from_caps() fails
13730           Return FALSE is the received caps cannot be transformed into a GstVideoInfo
13731           structure.
13732
13733 2016-05-23 17:55:35 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13734
13735         * gst/vaapi/gstvaapipluginbase.c:
13736           plugins: handle if gst_video_info_from_caps() fails
13737           Let's play safe and return error if, somehow, the received caps are wrong.
13738
13739 2016-05-23 17:47:36 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13740
13741         * gst/vaapi/gstvaapipluginbase.c:
13742           plugins: relate errors to instance
13743           Use GST_{ERROR,WARNING}_OBJECT instead of GST_{ERROR,WARNING}, thus the logs
13744           will show the name of the vaapipluginbase instance that failed.
13745           Also, the code-style is fixed, where some error labels need to be surrounded
13746           by braces.
13747
13748 2016-05-20 21:01:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13749
13750         * gst/vaapi/gstvaapipluginbase.c:
13751         * gst/vaapi/gstvaapipluginutil.c:
13752         * gst/vaapi/gstvaapisink.c:
13753           plugins: use GstVideoInfo accessors
13754           Instead of access to GstVideInfo members directly, use their accessors
13755           macros. This patch makes more resistance to future changes in GStreamer core.
13756
13757 2016-05-20 19:33:39 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13758
13759         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
13760         * gst/vaapi/gstvaapipluginbase.c:
13761         * gst/vaapi/gstvaapipostproc.c:
13762         * tests/simple-encoder.c:
13763           remove spurious gst_video_info_init()
13764           gst_video_info_set_format() and gst_video_info_from_caps() call, internally,
13765           gst_video_info_init(), hence it is not required to call it before them. This
13766           patch removes these spurious calls.
13767
13768 2016-05-20 19:15:11 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13769
13770         * gst/vaapi/gstvaapipluginbase.c:
13771           vaapipluginbase: code-style: rename goto label
13772           The error labels have error_ prefix, but this one.
13773
13774 2016-05-19 16:34:50 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13775
13776         * gst/vaapi/gstvaapivideomemory.c:
13777           vaapivideomemory: use allocator custom alloc flag
13778           Instead of a dummy alloc() vmethod, the allocator instance set the flag
13779           GST_ALLOCATOR_FLAG_CUSTOM_ALLOC, which is used by the framework to avoid call
13780           gst_allocator_alloc() on the allocator.
13781
13782 2016-05-06 13:17:47 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13783
13784         * gst/vaapi/gstvaapivideobufferpool.c:
13785           vaapivideobufferpool: relate errors to instance
13786           Use GST_ERROR_OBJECT instead of GST_ERROR, thus the logs will show the name of
13787           the vaapivideobufferpool instance that failed.
13788
13789 2016-05-10 16:14:48 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13790
13791         * gst/vaapi/gstvaapipluginbase.c:
13792           plugins: remove gst_vaapi_plugin_base_set_pool_config()
13793           This function helper make sense for GStreamer 1.2, but it is not helpful for
13794           greater version since the validation is already done in the API implementation.
13795           Thus, it is removed.
13796
13797 2016-05-18 17:05:03 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13798
13799         * gst/vaapi/gstvaapipluginbase.c:
13800           gstvaapipluginbase: Fix typo in doc
13801
13802 2016-05-13 11:45:20 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13803
13804         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13805           encoder : h264: Disable b-frame encode in low-power mode
13806           This is a workaround since vaapi-intel-driver doesn't have
13807           support for B-frame encode when utilizing low-power-enc
13808           hardware block.
13809           Fixme :We should query the VAConfigAttribEncMaxRefFrames
13810           instead of blindly disabling b-frame support and set b/p frame count,
13811           buffer pool size etc based on the query result.
13812           https://bugzilla.gnome.org/show_bug.cgi?id=766050
13813
13814 2016-05-13 11:44:57 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13815
13816         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13817         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13818           encoder: h264 : Use "tune=low-power" for enabling lowpower encode
13819           Remove the duplicate property "low-power-enc" and use the
13820           tune property for enabling low power encoding mode.
13821           https://bugzilla.gnome.org/show_bug.cgi?id=766050
13822
13823 2016-05-11 12:06:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13824
13825         * gst-libs/gst/vaapi/gstvaapiencoder.c:
13826           gstvaapiencoder:Use internal api to dervie configured VAEntrypoint
13827           https://bugzilla.gnome.org/show_bug.cgi?id=766050
13828
13829 2016-05-11 12:05:36 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13830
13831         * gst-libs/gst/vaapi/gstvaapiencoder.c:
13832         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
13833         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
13834           encoder: h264: Add support of low power/high performance encoding mode
13835           Added a new property "low-power-enc" for enabling low power
13836           encoding mode. Certain encoding tools may not be available
13837           with the VAEntrypointEncSliceLP.
13838           https://bugzilla.gnome.org/show_bug.cgi?id=766050
13839
13840 2016-05-11 12:04:46 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13841
13842         * gst-libs/gst/vaapi/gstvaapitypes.h:
13843         * gst-libs/gst/vaapi/gstvaapiutils.c:
13844         * gst-libs/gst/vaapi/gstvaapivalue.c:
13845           Add mapping for Macroblock level rate control (VA_RC_MB)
13846
13847 2016-05-11 12:03:08 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13848
13849         * gst-libs/gst/vaapi/gstvaapidisplay.c:
13850           gstvaapidisplay: Add VAEntrypointEncSliceLP support
13851           https://bugzilla.gnome.org/show_bug.cgi?id=766050
13852
13853 2016-05-11 11:59:59 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13854
13855         * gst-libs/gst/vaapi/gstvaapiprofile.c:
13856         * gst-libs/gst/vaapi/gstvaapiprofile.h:
13857           gstvaapiprofile : Add VAEntrypointEncSliceLP definitions
13858           This is for implementations that supports low_power/high_performance
13859           variant for slice level encode.
13860           https://bugzilla.gnome.org/show_bug.cgi?id=766050
13861
13862 2016-05-05 18:23:10 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13863
13864         * gst/vaapi/gstvaapipostprocutil.c:
13865           vaapipostproc: negotiate frame size fixation
13866           Refactor _fixate_frame_size(). Now, instead of fixating the frame size only
13867           using the sink caps, also it use the next capsfilter.
13868           This code is a shameless copy of gst_video_scale_fixate_caps() from
13869           https://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/gst/videoscale/gstvideoscale.c?id=1.8.1#n634
13870           https://bugzilla.gnome.org/show_bug.cgi?id=758548
13871
13872 2016-05-06 10:50:10 +0200  Scott D Phillips <scott.d.phillips@intel.com>
13873
13874         * gst/vaapi/gstvaapipostprocutil.c:
13875           vaapipostproc: don't use GstVideoInfo for src caps
13876           Instead of using gst_video_info_to_caps () to generated the fixed src caps,
13877           this patch enables the first step for caps negotiation with a possible
13878           following caps filter.
13879           _get_preferred_caps() will traverse the possible src caps looking for the one
13880           wit the preferred feature and the preferred color format. Then the color
13881           format, the frame size and the frame rate are fixated.
13882           https://bugzilla.gnome.org/show_bug.cgi?id=758548
13883
13884 2016-05-05 15:32:36 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13885
13886         * gst/vaapi/gstvaapipostproc.c:
13887         * gst/vaapi/gstvaapipostprocutil.c:
13888         * gst/vaapi/gstvaapipostprocutil.h:
13889           vaapipostproc: move gst_vaapipostproc_fixate_srccaps()
13890           Move gst_vaapipostproc_fixate_srccaps() to gstvaapiposptprocutil.
13891           No functional changes.
13892           https://bugzilla.gnome.org/show_bug.cgi?id=758548
13893
13894 2016-05-05 15:19:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13895
13896         * gst/vaapi/gstvaapipostproc.c:
13897           vaapipostproc: simplify code
13898           Change a convoluted snippet to find the preferred color format in the peer
13899           caps.
13900           https://bugzilla.gnome.org/show_bug.cgi?id=758548
13901
13902 2016-05-05 15:16:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13903
13904         * gst/vaapi/gstvaapipostproc.c:
13905           vaapipostproc: use othercaps for preferred caps
13906           Instead of the allowed_srcpad_caps variable, this patch uses the othercaps
13907           from fixate_caps() vmethod to find the preferred caps feature and color
13908           format.
13909           https://bugzilla.gnome.org/show_bug.cgi?id=758548
13910
13911 2016-05-05 13:46:11 +0200  Scott D Phillips <scott.d.phillips@intel.com>
13912
13913         * gst/vaapi/gstvaapipostproc.c:
13914           vaapipostproc: add fixate_caps() vmethod
13915           Instead of fixating the srcpad caps in transform_caps() vmethod, this patch
13916           implements the fixate_caps() vmethod and moves code around.
13917           https://bugzilla.gnome.org/show_bug.cgi?id=758548
13918
13919 2016-05-05 12:07:59 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13920
13921         * gst/vaapi/Makefile.am:
13922         * gst/vaapi/gstvaapipostproc.c:
13923         * gst/vaapi/gstvaapipostprocutil.c:
13924         * gst/vaapi/gstvaapipostprocutil.h:
13925           vaapipostproc: set early properties restrictions
13926           When running transform_caps() vmethod, returning the srcpad caps, the caps are
13927           early restricted to the element properties set: width, height, format and
13928           force keep aspect.
13929           A new file was added gstvaapipostprocutil.{c,h} where the utilities functions
13930           are stored.
13931           https://bugzilla.gnome.org/show_bug.cgi?id=758548
13932
13933 2016-04-25 13:45:04 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13934
13935         * gst/vaapi/gstvaapipostproc.c:
13936           vaapipostproc: log the caps transformation
13937           https://bugzilla.gnome.org/show_bug.cgi?id=758548
13938
13939 2016-04-27 21:20:32 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13940
13941         * gst/vaapi/gstvaapipostproc.c:
13942           vaapipostproc: no GLTextureUpload in sinkpad
13943           As the vaapipostproc does not process frames with the VideoGLTextureUpload
13944           meta, the feature is removed from the sink pad template.
13945           https://bugzilla.gnome.org/show_bug.cgi?id=765931
13946
13947 2015-09-28 08:49:39 +0100  Julien Isorce <j.isorce@samsung.com>
13948
13949         * gst/vaapi/gstvaapivideobufferpool.c:
13950           vaapibufferpool: do not create texture upload meta if dmabuf
13951           https://bugzilla.gnome.org/show_bug.cgi?id=755072
13952
13953 2016-05-06 12:16:26 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13954
13955         * git.mk:
13956           build: update git.mk
13957
13958 2016-04-29 13:11:48 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13959
13960         * gst/vaapi/gstvaapipluginbase.h:
13961           plugin: fix macro processor check
13962           Instead of #ifdef it should be used #if becasuse USE_GST_GL_HELPERS is always
13963           defined in config.h, but it would be 0 or 1 depending on the configure output.
13964           https://bugzilla.gnome.org/show_bug.cgi?id=765702
13965
13966 2016-04-29 12:53:06 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13967
13968         * tests/test-display.c:
13969           tests: display: guard possible unused variables
13970           https://bugzilla.gnome.org/show_bug.cgi?id=765702
13971
13972 2016-04-29 12:48:44 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
13973
13974         * tests/codec.c:
13975         * tests/decoder.c:
13976         * tests/image.c:
13977         * tests/output.c:
13978         * tests/simple-decoder.c:
13979         * tests/test-decode.c:
13980         * tests/test-display.c:
13981         * tests/test-filter.c:
13982         * tests/test-h264.c:
13983         * tests/test-jpeg.c:
13984         * tests/test-mpeg2.c:
13985         * tests/test-mpeg4.c:
13986         * tests/test-subpicture-data.c:
13987         * tests/test-subpicture.c:
13988         * tests/test-surfaces.c:
13989         * tests/test-textures.c:
13990         * tests/test-vc1.c:
13991         * tests/test-windows.c:
13992           tests: inforce gstreamer code-style
13993
13994 2016-04-27 17:10:26 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
13995
13996         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
13997           encoder: h265: Enable cu_qp_delta_enabled_flag for CBR
13998           It seems driver requires enablement of cu_qp_delta_enabled_flag
13999           for modifying QP values to controll the CBR mode bitrate.
14000           https://bugzilla.gnome.org/show_bug.cgi?id=749852
14001
14002 2016-04-27 17:06:09 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14003
14004         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14005           encoder: h265: Add CBR Encoding support
14006           https://bugzilla.gnome.org/show_bug.cgi?id=749852
14007
14008 2015-11-27 05:09:10 +0000  Julien Isorce <j.isorce@samsung.com>
14009
14010         * gst-libs/gst/vaapi/gstvaapisurface.c:
14011           gstvaapisurface: explicitely clear TILING flag if dmabuf
14012           https://bugzilla.gnome.org/show_bug.cgi?id=755072
14013
14014 2015-10-04 23:44:16 +0100  Julien Isorce <j.isorce@samsung.com>
14015
14016         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
14017           gstvaapisurface_drm: release image when done
14018           Otherwise intel-vaapi-driver will fail to process the exported surface because
14019           it will find it is currently derived, so considered as busy.
14020           https://bugzilla.gnome.org/show_bug.cgi?id=755072
14021
14022 2015-09-26 06:25:12 +0100  Julien Isorce <j.isorce@samsung.com>
14023
14024         * gst/vaapi/gstvaapipostproc.c:
14025           vaapipostproc: already have a surface proxy if dmabuf
14026           https://bugzilla.gnome.org/show_bug.cgi?id=755072
14027
14028 2016-03-11 08:58:51 +0000  Julien Isorce <j.isorce@samsung.com>
14029
14030         * gst/vaapi/gstvaapipostproc.c:
14031           various gst-indent
14032
14033 2016-04-21 15:14:47 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14034
14035         * gst/vaapi/gstvaapidecode.c:
14036         * gst/vaapi/gstvaapipluginbase.c:
14037         * gst/vaapi/gstvaapipluginbase.h:
14038           vaapidecode: search driver in whitelist
14039           If the backend driver vendor string is not in a white-list, and the
14040           environment variable GST_VAAPI_ALL_DRIVERS is not set either, the decoder will
14041           change it state from NULL to READY, hence the auto-plug mechanism will look
14042           for another decoder.
14043           This patch assumes the GstContext has already being shared along the pipeline
14044           and the element has a valid GstVaapiDisplay instance.
14045           https://bugzilla.gnome.org/show_bug.cgi?id=764673
14046
14047 2016-04-21 12:57:30 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14048
14049         * gst/vaapi/gstvaapidecode.c:
14050         * gst/vaapi/gstvaapiencode.c:
14051         * gst/vaapi/gstvaapipluginbase.c:
14052         * gst/vaapi/gstvaapipluginbase.h:
14053         * gst/vaapi/gstvaapipostproc.c:
14054         * gst/vaapi/gstvaapisink.c:
14055           plugins: rework set_context() vmethod definition
14056           In bug 757598 was added the set_context() vmethod chain up in
14057           GstVaapiPluginBase. But it is buggy, since the parent_class address is
14058           assigned to the last element which called gst_vaapi_plugin_base_class_init().
14059           No error has shown up since none of the element's base classes redefined
14060           set_context() vmethod from GstElement, so always the correct function was
14061           called. Still this code is wrong and this patch make it right.
14062           Since set_context() is the same code, a macro is used to implement that code
14063           in all the gst-vaapi elements.
14064           https://bugzilla.gnome.org/show_bug.cgi?id=765368
14065
14066 2016-04-15 17:57:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14067
14068         * gst/vaapi/gstvaapipostproc.c:
14069           vaapipostproc: resize if negotiated and allocation caps are different
14070           Since commit 859a2b2, in vaapidecode, allocation query can be different from
14071           the negotiated caps.
14072           When connecting the vaapidecoder to the vaapipostprocessor, the last one will
14073           resize the frame to the negotiated, if and only if, some other parameter is
14074           activated to avoid the passthrough. If it is not, the surface won't be mapped
14075           into a image. If not, the image won't be resized and the output buffer would be
14076           mapped.
14077           This patch will break the passthrough if the allocation query is different
14078           from the negotiation caps, forcing the resizing.
14079           https://bugzilla.gnome.org/show_bug.cgi?id=765095
14080
14081 2016-04-05 13:09:37 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14082
14083         * gst/vaapi/gstvaapidecode.c:
14084           vaapidecode: improve code readability
14085           No functional changes.
14086
14087 2016-04-05 13:37:40 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14088
14089         * gst/vaapi/gstvaapidecode.c:
14090           vaapidecode: move GstCapsFeatures near to its use
14091           Move the handling of the GstCapsFeatures just after it is used, in order to
14092           avoid handling its memory.
14093
14094 2016-04-05 13:07:14 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14095
14096         * gst/vaapi/gstvaapidecode.c:
14097           vaapidecode: caps negotiation checks
14098           Check that GLUploadTexture is not negotatiated if gstreamer-vaapi is not
14099           compiled with GL support.
14100
14101 2016-03-10 16:43:16 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14102
14103         * gst/vaapi/gstvaapidecode.c:
14104         * gst/vaapi/gstvaapipluginbase.c:
14105         * gst/vaapi/gstvaapipluginbase.h:
14106         * gst/vaapi/gstvaapipostproc.c:
14107           plugins: remove param in gst_vaapi_plugin_base_decide_allocation()
14108
14109 2016-03-10 16:42:04 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14110
14111         * gst/vaapi/gstvaapidecode.c:
14112           vaapidecode: bail early if not caps in decide_allocation()
14113
14114 2016-03-29 14:17:54 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14115
14116         * gst/vaapi/gstvaapidecode.c:
14117         * gst/vaapi/gstvaapipluginbase.c:
14118         * gst/vaapi/gstvaapipluginutil.c:
14119         * gst/vaapi/gstvaapipluginutil.h:
14120         * gst/vaapi/gstvaapipostproc.c:
14121           plugin: use allowed caps filter from element
14122           Instead of using the srcpad template caps for filtering the peer caps, the
14123           function gst_vaapi_find_preferred_caps_feature(), now receives a new parameter
14124           for the element's allowed caps.
14125           With this modification, the vaapipostproc element simplifies a bit its code.
14126           https://bugzilla.gnome.org/show_bug.cgi?id=765223
14127
14128 2016-04-18 17:28:51 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14129
14130         * gst/vaapi/gstvaapidecode.c:
14131         * gst/vaapi/gstvaapipluginbase.c:
14132         * gst/vaapi/gstvaapipluginutil.c:
14133         * gst/vaapi/gstvaapipluginutil.h:
14134         * gst/vaapi/gstvaapipostproc.c:
14135           plugin: remove function parameter
14136           The native format parameter in gst_vaapi_find_preferred_caps_feature() can be
14137           saved if the out format is used for both: in and out. Thus the code is more
14138           readable.
14139           https://bugzilla.gnome.org/show_bug.cgi?id=765223
14140
14141 2016-04-18 17:17:58 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14142
14143         * gst/vaapi/gstvaapidecode.c:
14144           vaapidecode: warns if driver will do color conversions
14145           If the downstream feature is system memory, the surface has to be mapped,
14146           hence a warning message is logged saying that the driver has to do color
14147           conversions. This might be troublesome because not all the color conversion
14148           combinations are supported by the VA-API drivers, and there is not a reliable
14149           way to know them before hand.
14150           https://bugzilla.gnome.org/show_bug.cgi?id=765223
14151
14152 2016-03-29 13:28:27 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14153
14154         * gst/vaapi/gstvaapipluginutil.c:
14155           plugin: honour negotiated format
14156           Instead of setting the requested format by the caller, the function
14157           gst_vaapi_find_preferred_caps_feature() now returns, in the output parameter,
14158           the negotiated format.
14159           A new helper function was added: gst_vaapi_find_preferred_format(), which,
14160           given the format list from the negotiated caps, will choose the best one, if
14161           possible, given the native format.
14162           https://bugzilla.gnome.org/show_bug.cgi?id=765223
14163
14164 2016-03-28 19:26:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14165
14166         * gst/vaapi/gstvaapipluginutil.c:
14167           plugin: simplify caps feature selection
14168           This patch simplifies the function gst_vaapi_find_preferred_caps_feature().
14169           Instead of intersecting custom caps to find the preferred feature, the peer
14170           caps are traversed in order to find the preferred feature, according to an
14171           ordered feature priority list.
14172           In the case of GLTextureUploadMeta, the colour format is computed using
14173           GstVideoInfo of the selected fixed caps.
14174           https://bugzilla.gnome.org/show_bug.cgi?id=765223
14175
14176 2016-03-31 16:39:08 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14177
14178         * gst/vaapi/gstvaapidecode.c:
14179           vaapidecode: use macros for GstVideoInfo
14180           Instead of accessing directly to the members of the structure, use the macros.
14181
14182 2016-04-14 17:02:23 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14183
14184         * gst/vaapi/gstvaapidecode.c:
14185           vaapidecode: refactor is_display_resolution_changed()
14186           Make the comparisons more readable and simple.
14187           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14188
14189 2016-04-14 16:43:07 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14190
14191         * gst/vaapi/gstvaapidecode.c:
14192         * gst/vaapi/gstvaapidecode.h:
14193           vaapidecode: keep only display_{width,height}
14194           Instead of keeping the structure GstVideoInfo when we are using its width and
14195           height, we only keep these two guints.
14196           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14197
14198 2016-04-14 16:31:34 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14199
14200         * gst/vaapi/gstvaapidecode.c:
14201           vaapidecode: decoded_info is valid at src caps update
14202           As decoded_info is assured to be valid when gst_vaapidecode_update_src_caps()
14203           is called, then we don't need to verify or replace it with the sinkpad info
14204           (reference state).
14205           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14206
14207 2016-04-14 16:22:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14208
14209         * gst/vaapi/gstvaapidecode.c:
14210           vaapidecode: always a valid format in decoded_info
14211           Always set a valid format in decoded_info class variable.
14212           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14213
14214 2016-03-25 15:31:28 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14215
14216         * gst/vaapi/gstvaapidecode.c:
14217           vaapidecode: code style fixes
14218           No functional changes.
14219           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14220
14221 2016-04-14 16:10:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14222
14223         * gst/vaapi/gstvaapidecode.c:
14224           vaapidecode: init {decoded,display}_info at open()
14225           It is required to initialize {decoded,display}_info variables when the decoder
14226           is open, not only at instance initialization.
14227           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14228
14229 2016-03-28 15:30:28 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14230
14231         * gst/vaapi/gstvaapidecode.c:
14232         * gst/vaapi/gstvaapidecode.h:
14233           vaapidecode: remove spurious class variables
14234           active, do_pool_renego and do_outstate_renego class variables were used to
14235           indicate when negotiate downstream once, but now that each time a new surface
14236           resolution is pop out a renegotation verified, these variable are not required
14237           anymore.
14238           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14239
14240 2016-04-14 15:46:32 +0200  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           remove custom allocation query
14247           When resolving bug 753914, a custom allocation query was added, overlapping
14248           the responsibilities of GstVideoDecoder.
14249           But with the merge of the patches from bug 764421 this overlapping was not
14250           required anymore. This patch restores this situation setting the
14251           allocation_caps in the GstVideoCodecState when needed.
14252           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14253
14254 2016-04-14 10:04:47 +0100  Julien Isorce <j.isorce@samsung.com>
14255
14256         * common:
14257           Automatic update of common submodule
14258           From 6f2d209 to ac2f647
14259
14260 2016-04-13 15:44:20 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14261
14262         * gst/vaapi/gstvaapidecode.c:
14263         * gst/vaapi/gstvaapidecodebin.c:
14264         * gst/vaapi/gstvaapipostproc.c:
14265           plugins: disable GL_TEXTURE_UPLOAD if no EGL/GLX
14266           The plugins should not expose the feature meta:GstVideoGLTextureUploadMeta in
14267           their caps templates if they were not compiled either with GLX or EGL support.
14268
14269 2016-04-13 20:33:32 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14270
14271         * gst/vaapi/gstvaapipluginutil.c:
14272           plugins: fix compilation when EGL/GLX is disabled
14273           The compiler might complain of gst_vaapi_create_display_from_handle() being
14274           unused if both EGL and GLX are disabled. This patch avoid that compilation
14275           error.
14276
14277 2016-04-13 14:09:00 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
14278
14279         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14280           libs: fix deleting a GstVaapiCodedBufferPool object
14281           Call gst_vaapi_video_pool_finalize() in coded_buffer_pool_finalize().
14282           Otherwise it is not called when the pool is destroyed and all objects
14283           referenced by the GstVaapiVideoPool are never released.
14284           https://bugzilla.gnome.org/show_bug.cgi?id=764993
14285
14286 2016-04-07 18:03:42 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14287
14288         * gst-libs/gst/vaapi/gstvaapisurface.c:
14289           surface: destroy derived image
14290           If gst_vaapi_image_new_with_image() fails, the created derived image should be
14291           destroyed, otherwise the surface cannot be processed because is being used.
14292           https://bugzilla.gnome.org/show_bug.cgi?id=764607
14293
14294 2016-03-18 20:00:52 -0300  Thiago Santos <thiagoss@osg.samsung.com>
14295
14296         * gst/vaapi/gstvaapidecode.c:
14297           vaapidecode: add stop function
14298           Clear any status on the current stream:
14299           stored frames, caps and decoder configuration
14300           https://bugzilla.gnome.org/show_bug.cgi?id=763460
14301
14302 2016-04-01 14:00:28 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14303
14304         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14305           decoder: vp9: Align with the ABI changes in vp9 codecparser
14306           The subsampling_x, subsampling_y, bit_depth, color_space and color_range
14307           fileds are moved from GstVp9FrameHdr to the global GstVp9Parser structure.
14308           These fields are only present in keyframe or intra-only frame, no need to
14309           duplicate them for inter-frames.
14310           https://bugzilla.gnome.org/show_bug.cgi?id=764082
14311
14312 2016-04-01 13:59:59 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14313
14314         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14315           decoder: vp9 : Add 10bit decoding support (Profile2)
14316           https://bugzilla.gnome.org/show_bug.cgi?id=764082
14317
14318 2016-04-01 13:57:45 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14319
14320         * gst-libs/gst/vaapi/gstvaapiprofile.c:
14321         * gst-libs/gst/vaapi/gstvaapiprofile.h:
14322           gstvaapiporfile: Add more VP9 profile definitions
14323           https://bugzilla.gnome.org/show_bug.cgi?id=764082
14324
14325 2016-02-03 20:34:49 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14326
14327         * Makefile.am:
14328         * configure.ac:
14329           build: possibility to disable tests
14330           The configuration option --disable-examples will disable the compilation of
14331           the sample apps in tests/ directory.
14332
14333 2016-03-29 14:25:55 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14334
14335         * gst/vaapi/gstvaapiencode_h264.c:
14336         * gst/vaapi/gstvaapiencode_h265.c:
14337         * gst/vaapi/gstvaapiencode_jpeg.c:
14338         * gst/vaapi/gstvaapiencode_mpeg2.c:
14339         * gst/vaapi/gstvaapiencode_vp8.c:
14340         * gst/vaapi/gstvaapipluginutil.h:
14341         * gst/vaapi/gstvaapisink.c:
14342           unify caps template for VAAPI encoders and decoders
14343           There is no difference in VAAPI surface caps between encoders and decoders.
14344           Thus, the patch makes a simplification by removing encoders specific caps and
14345           shares the same definition of VAAPI surfaces caps for all the elements.
14346
14347 2016-03-10 17:42:55 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14348
14349         * gst/vaapi/gstvaapidecode.c:
14350           vaapidecode: move gst_vaapidecode_negotiate() code
14351           With it we can remove a function declaration, making the code a bit
14352           more readable.
14353           https://bugzilla.gnome.org/show_bug.cgi?id=764316
14354
14355 2016-03-29 13:50:00 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14356
14357         * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14358         * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14359         * gst/vaapi/gstvaapidecode.c:
14360           docs: generate vaapijpegdec documentation
14361           https://bugzilla.gnome.org/show_bug.cgi?id=764314
14362
14363 2016-03-30 14:37:21 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14364
14365         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14366           decoder: h265: Fix offset calculation when there is more than one vps/sps/pps present in codec_data
14367           The array_completeness, reserved bit and num_nal_units fields
14368           in HEVCDecoderConfigurationRecord will be present for each VPS/SPS/PPS array list,
14369           but not for each occurance of similar headers.
14370           https://bugzilla.gnome.org/show_bug.cgi?id=764274
14371
14372 2016-03-29 15:34:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14373
14374         * gst-libs/gst/vaapi/video-format.c:
14375           video-format: Keep the HW order preference while mapping to GstVideoFormats
14376
14377 2016-03-29 15:02:46 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14378
14379         * gst/vaapi/gstvaapidecode.c:
14380         * gst/vaapi/gstvaapipluginbase.c:
14381         * gst/vaapi/gstvaapipluginutil.c:
14382         * gst/vaapi/gstvaapipluginutil.h:
14383         * gst/vaapi/gstvaapivideomemory.c:
14384           gst/vaapi: keep precedence for NV12 over I420
14385           Use NV12 as default "assumption" format all over.
14386           NV12 is the default high priority format used my most of the
14387           vaapi-drivers.
14388
14389 2016-03-29 14:34:37 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14390
14391         * gst/vaapi/gstvaapidecode.c:
14392           vaapidecode: Use video format derived from decoded surface as default src pad format
14393           Use the surface format derived from first decoded surface
14394           to negotiate the downstream video format capabilities.
14395           https://bugzilla.gnome.org/show_bug.cgi?id=759181
14396
14397 2016-03-29 14:34:00 +0300  Scott D Phillips <scott.d.phillips@intel.com>
14398
14399         * gst-libs/gst/vaapi/gstvaapiimage.c:
14400         * gst-libs/gst/vaapi/video-format.c:
14401         * gst/vaapi/gstvaapidecode.c:
14402         * gst/vaapi/gstvaapipluginutil.h:
14403         * gst/vaapi/gstvaapisink.c:
14404           Add P010 video format support
14405           The P010 video format is the native format used by the vaapi intel driver
14406           for HEVCMain10 decode . Add support for planes and images of this video format.
14407           https://bugzilla.gnome.org/show_bug.cgi?id=759181
14408
14409 2016-03-27 09:11:00 +0000  Stephen <elfarto@elfarto.com>
14410
14411         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14412           libs: x11: allows 30-bit colour depth
14413           The colour depth is clamped to 24 when it is not equal {15,16,24,32}. But this
14414           fails with the NVIDIA binary driver as it doesn't advertise a TrueColor visual
14415           with a depth of 24 (only 30 and 32). Allowing the depth to be 30, lets everything
14416           work as expected.
14417           https://bugzilla.gnome.org/show_bug.cgi?id=764256
14418
14419 2016-03-28 13:13:56 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14420
14421         * gst/vaapi/gstvaapivideometa_texture.c:
14422           gltextureupload: use an array for texture type
14423           Instead of using a single value for the texture type, use an array with 4
14424           elements, just as the GstVideoGLTextureUploadMeta, avoiding a buffer
14425           overflow.
14426           https://bugzilla.gnome.org/show_bug.cgi?id=764231
14427
14428 2016-03-24 15:09:43 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14429
14430         * gst/vaapi/gstvaapidecode.c:
14431         * gst/vaapi/gstvaapipluginbase.c:
14432           vaapidecode: Fix decide_allocation handling
14433           Set the already configured pool in decide_allocation query
14434           in cases where pool renegotiation is not required.
14435           https://bugzilla.gnome.org/show_bug.cgi?id=753914
14436
14437 2016-03-24 15:09:15 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14438
14439         * gst/vaapi/gstvaapidecode.c:
14440           vaapidecode: Derive and save the decoded surface format
14441           After the decoding of first frame, try to extract the exact
14442           decoded surface format using vaDeriveImage and keep this
14443           as the format in decoded_info.
14444           https://bugzilla.gnome.org/show_bug.cgi?id=753914
14445
14446 2016-03-24 15:08:50 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14447
14448         * gst/vaapi/gstvaapidecode.c:
14449         * gst/vaapi/gstvaapidecode.h:
14450         * gst/vaapi/gstvaapipluginbase.c:
14451         * gst/vaapi/gstvaapipluginbase.h:
14452         * gst/vaapi/gstvaapipostproc.c:
14453           Make vaapidecode to advertise the cropped values in srcpad, but negotiate pool only if needed
14454           -- Maintaing decoded surface resoluton and actual display resoultion separately
14455           -- Before pushing every frames downstream, check for the requirement of pool negoation and
14456           output_state negotiation: This is needed to avoid multiple issuses with cropping,
14457           multi-resoluton video handling, more complex multi resolution decode scenarios for vp9decode,
14458           possible wrong behaviour from upstream element to report uncropped values etc. Due to these reasons,
14459           We can't just reliably use the resolution change notification from libgstvaapi for pool renegotiation too.
14460           This is slight overhead, but safe enough. Optimization could be possible though.
14461           https://bugzilla.gnome.org/show_bug.cgi?id=753914
14462
14463 2016-03-24 15:08:27 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14464
14465         * gst/vaapi/gstvaapidecode.c:
14466           vaapidecode: Delay the output format setting until we have a decoded surface
14467           This will help to consoidate the out caps negotiation to a single place,
14468           which will make the code simpler, allows to get the exact decoded format
14469           if needed and the selected chroma type too.
14470           https://bugzilla.gnome.org/show_bug.cgi?id=753914
14471
14472 2016-03-24 13:36:24 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14473
14474         * gst/vaapi/gstvaapidecode.h:
14475           vaapidecode: GST_VAAPIDECODE macro is a cast
14476           This patch is the continuation of commit 1e1d3b1d because the function
14477           gst_vaapidecode_get_type() got undefined since then.
14478           Now, the macro GST_VAAPIDECODE is a simple cast to the GstVaapiDecode
14479           structure. The rest of the GObject handling macros were deleted too.
14480
14481 2016-03-24 13:34:18 +0200  Sebastian Dröge <sebastian@centricular.com>
14482
14483         * configure.ac:
14484           Back to development
14485
14486 === release 1.8.0 ===
14487
14488 2016-03-24 13:11:05 +0200  Sebastian Dröge <sebastian@centricular.com>
14489
14490         * ChangeLog:
14491         * NEWS:
14492         * configure.ac:
14493         * gstreamer-vaapi.doap:
14494           Release 1.8.0
14495
14496 === release 1.7.91 ===
14497
14498 2016-03-15 12:39:20 +0200  Sebastian Dröge <sebastian@centricular.com>
14499
14500         * ChangeLog:
14501         * NEWS:
14502         * configure.ac:
14503         * gstreamer-vaapi.doap:
14504           Release 1.7.91
14505
14506 2016-03-11 17:44:07 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14507
14508         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14509           decoder: h265: Fix offset calculation in codec_data parsing
14510           https://bugzilla.gnome.org/show_bug.cgi?id=762922
14511
14512 2016-03-09 20:26:31 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14513
14514         * gst/vaapi/gstvaapidecodebin.c:
14515           vaapidecodebin: don't handle jpeg decoding
14516           As JPEG decoder has been split and demoted, it cannot be handled by
14517           vaapidecodebin
14518           Added a fixme comment regarding the future removal of vaapidecode.
14519           https://bugzilla.gnome.org/show_bug.cgi?id=734093
14520
14521 2016-03-09 20:25:08 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14522
14523         * gst/vaapi/gstvaapidecode.c:
14524           vaapidecode: split out jpeg decoder
14525           Split, as a different element, the JPEG decoder.
14526           https://bugzilla.gnome.org/show_bug.cgi?id=734093
14527
14528 2016-03-09 18:41:49 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14529
14530         * gst/vaapi/gstvaapi.c:
14531         * gst/vaapi/gstvaapidecode.c:
14532         * gst/vaapi/gstvaapidecode.h:
14533           vaapidecode: register decoder with internal GType
14534           Don't expose the the vaapidecode GType, instead expose a function
14535           which will register element.
14536           This is the first step to split the decoder by codecs.
14537           https://bugzilla.gnome.org/show_bug.cgi?id=734093
14538
14539 2016-03-10 12:47:49 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14540
14541         * gst/vaapi/gstvaapidecode.c:
14542           vaapidecode: remove unused function declaration
14543           There is no need to pre-declare gst_vaapidecode_update_sink_caps(). And fixed
14544           code-style of the other pre-declared functions.
14545
14546 2016-03-09 18:58:13 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14547
14548         * docs/plugins/Makefile.am:
14549           build: git ignore gtkdoc generated files
14550
14551 2016-03-09 18:55:39 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14552
14553         * m4/Makefile.am:
14554           build: handle git ignore in m4 directory
14555
14556 2016-03-04 20:17:54 -0300  Thiago Santos <thiagoss@osg.samsung.com>
14557
14558         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14559           vaapidecoder_h265: plug leak of h265 parsing info
14560           If something goes wrong while parsing, the info object is
14561           being leaked
14562           https://bugzilla.gnome.org/show_bug.cgi?id=763121
14563
14564 2016-03-04 20:17:20 -0300  Thiago Santos <thiagoss@osg.samsung.com>
14565
14566         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14567           vaapidecoder_h264: plug leak of h264 parsing info
14568           If something goes wrong while parsing, the info object is
14569           being leaked
14570           https://bugzilla.gnome.org/show_bug.cgi?id=763121
14571
14572 2016-03-09 11:03:28 +0900  Vineeth TM <vineeth.tm@samsung.com>
14573
14574         * gst/vaapi/gstvaapipluginutil.c:
14575           plugins: fix gstgl and vaapi memory leaks
14576           1\ Unref gl_display and gl_window as soon they are not needed.
14577           2\ Remove an unneeded display type check, since is handled by
14578           gst_vaapi_created_display_from_handle()
14579           3\ Unref vaapi's display if the display cannot be bind to a GL API.
14580           Modified-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14581           https://bugzilla.gnome.org/show_bug.cgi?id=763354
14582
14583 2016-03-09 14:13:24 +0900  Vineeth TM <vineeth.tm@samsung.com>
14584
14585         * gst-libs/gst/vaapi/gstvaapidisplay.c:
14586           vaapidisplay: Fix uninitialized value error for VA attribute
14587           https://bugzilla.gnome.org/show_bug.cgi?id=763362
14588
14589 2016-03-08 10:47:56 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14590
14591         * gst/vaapi/gstvaapidecode.c:
14592         * gst/vaapi/gstvaapiencode.c:
14593           plugins: proxy information from downstream caps
14594           Propagate to upstream the downstream information, such as fps, par, etc.
14595           This will fix several "getcaps" critical warnings in gst-validate.
14596           https://bugzilla.gnome.org/show_bug.cgi?id=763300
14597
14598 2016-03-04 10:51:42 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14599
14600         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14601           decoder: vp9: Assign values for profile and bit_depth from frame header
14602           bit_depth field has added only in VA-API 0.39.0, added version check.
14603
14604 2016-03-04 09:12:13 +0200  Sebastian Dröge <sebastian@centricular.com>
14605
14606         * Makefile.am:
14607           build: Dist gstreamer-vaapi.doap and configure.ac/autogen.sh
14608           https://bugzilla.gnome.org/show_bug.cgi?id=763067
14609
14610 === release 1.7.90 ===
14611
14612 2016-03-01 19:23:51 +0200  Sebastian Dröge <sebastian@centricular.com>
14613
14614         * ChangeLog:
14615         * NEWS:
14616         * configure.ac:
14617         * gstreamer-vaapi.doap:
14618           Release 1.7.90
14619
14620 2016-03-01 16:14:47 +0200  Sebastian Dröge <sebastian@centricular.com>
14621
14622         * configure.ac:
14623           configure: Use AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO to set release date
14624
14625 2016-03-01 11:35:49 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14626
14627         * gst/vaapi/gstvaapidecode.c:
14628           vaapidecode: intersect with filter in getcaps()
14629           In commit 6034734d I forgot to add the caps filter intersection in the
14630           getcaps() vmethod generating a regression when a capsfilter is set in the
14631           pipeline.
14632           This commit adds the caps filter intersection.
14633
14634 2016-02-29 11:55:27 +0200  Lim Siew Hoon <siew.hoon.lim@intel.com>
14635
14636         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
14637           Add memset to initialize value for VAEncSliceParameterBufferJPEG
14638           https://bugzilla.gnome.org/show_bug.cgi?id=762850
14639
14640 2016-02-26 12:42:46 +0200  Sebastian Dröge <sebastian@centricular.com>
14641
14642         * common:
14643           Automatic update of common submodule
14644           From b64f03f to 6f2d209
14645
14646 2016-02-24 12:36:33 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14647
14648         * Makefile.am:
14649         * configure.ac:
14650         * m4/Makefile.am:
14651           build: add m4 directory
14652           Instead of rely on the automatic creation of m4 directory by aclocal, we
14653           already control it. Later we could create our own m4 scripts in order to
14654           unclutter configure.ac
14655           https://bugzilla.gnome.org/show_bug.cgi?id=762528
14656
14657 2016-02-23 10:55:02 +0200  Scott D Phillips <scott.d.phillips@intel.com>
14658
14659         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14660           decoder: hevc: Fill dependent slice segment headers while parsing
14661           Copy the data into the dependent slice segment header from the
14662           corresponding independent slice segment header during parsing.
14663           Previously the reference to the "previous" independent header was
14664           held through the parsing phase and then dereferenced during the
14665           decoding phase. This caused all dependent headers to be populated
14666           with the data of the AU's last independent header instead of the
14667           proper corresponding header.
14668           https://bugzilla.gnome.org/show_bug.cgi?id=762352
14669           Changes since v1:
14670           - Reworded commit message
14671
14672 2016-02-17 13:43:48 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14673
14674         * gst/vaapi/gstvaapidecode.c:
14675           vaapidecode: use video decoder getcaps()
14676           The usage of getcaps() vmethod is preferred than to handle manually the sink's
14677           caps query.
14678           In order to avoid function declarations, this patch moves the class_init()
14679           method to the end of the file.
14680
14681 2016-02-17 12:51:45 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14682
14683         * gst/vaapi/gstvaapipluginbase.c:
14684           plugins: remove deprecated code
14685           Since we are only supporting current GStreamer version, since 1.3
14686           gst_buffer_pool_config_add_option() checks if the option to add is
14687           already set. There is no need to do it ourselves.
14688
14689 2016-02-19 19:03:44 -0300  Thiago Santos <thiagoss@osg.samsung.com>
14690
14691         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14692           vaapidecoder_h265: fix parsing of NALU aligned data
14693           Don't assume the whole buffer is a single NAL, instead look for the
14694           next start code in case there are multiple NALs per buffer.
14695           https://bugzilla.gnome.org/show_bug.cgi?id=762328
14696
14697 2016-02-19 11:10:25 -0300  Thiago Santos <thiagoss@osg.samsung.com>
14698
14699         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14700           vaapidecoder_h264: fix parsing of NALU aligned data
14701           Don't assume the whole buffer is a single NAL, instead look for the
14702           next start code in case there are multiple NALs per buffer.
14703           https://bugzilla.gnome.org/show_bug.cgi?id=762328
14704
14705 2016-02-18 10:13:53 +0900  Vineeth TM <vineeth.tm@samsung.com>
14706
14707         * gst/vaapi/gstvaapisink.c:
14708           vaapisink: Fix event,pad,structure memory leaks
14709           https://bugzilla.gnome.org/show_bug.cgi?id=762229
14710
14711 2016-02-17 15:40:54 +0200  Lim Siew Hoon <siew.hoon.lim@intel.com>
14712
14713         * gst/vaapi/gstvaapipluginbase.c:
14714           Add icamerasrc as dmabuf capable peer element
14715           icamerasrc is another gstreamer plugin using to capture RAW
14716           frames from camera device. It is based on libcamhal library.
14717           There are some properties available to control icamera behavior.
14718           Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
14719           Tested & Reviewed: Zhu Haiyang <haiyang.zhu@intel.com>
14720           https://bugzilla.gnome.org/show_bug.cgi?id=759481
14721           Fixme: This is the similar workaround we done for v4l2src.
14722           The workaround will be removed once we fix #755072
14723
14724 2016-02-17 17:15:28 +0900  Vineeth TM <vineeth.tm@samsung.com>
14725
14726         * gst/vaapi/gstvaapipluginbase.c:
14727           vaapipluginbase: Fix structure memory leak
14728           config structure is not being freed in all cases
14729           https://bugzilla.gnome.org/show_bug.cgi?id=762172
14730
14731 2016-02-17 17:20:08 +0900  Vineeth TM <vineeth.tm@samsung.com>
14732
14733         * gst/vaapi/gstvaapidecode.c:
14734           vaapidecode: Fix videocodec state memory leak
14735           When state is not NULL and either width/height of video info is 0, then state leaks
14736           https://bugzilla.gnome.org/show_bug.cgi?id=762173
14737
14738 2016-02-16 15:44:48 +0000  Tim-Philipp Müller <tim@centricular.com>
14739
14740         * gst/vaapi/gstvaapisink.c:
14741           vaapisink: post message for application for unhandled keyboard/mouse events
14742           Makes (most) keyboard shortcuts work in gst-play-1.0 when
14743           the video window has focus.
14744
14745 2016-02-16 08:48:43 +0900  Vineeth TM <vineeth.tm@samsung.com>
14746
14747         * gst/vaapi/gstvaapidecode.c:
14748           vaapidecode: Fix capsfeature memory leak
14749           https://bugzilla.gnome.org/show_bug.cgi?id=762116
14750
14751 2016-02-16 08:15:40 +0900  Vineeth TM <vineeth.tm@samsung.com>
14752
14753         * gst/vaapi/gstvaapisink.c:
14754           vaapisink: Fix capsfeature memory leak
14755           caps feature allocated is not being freeing in some cases
14756           https://bugzilla.gnome.org/show_bug.cgi?id=762111
14757
14758 2016-02-16 15:09:01 +0200  Sebastian Dröge <sebastian@centricular.com>
14759
14760         * configure.ac:
14761         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
14762         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14763         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14764         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14765         * gst-libs/gst/vaapi/gstvaapifilter.c:
14766         * gst/vaapi/gstvaapidecodebin.c:
14767         * gst/vaapi/gstvaapipluginutil.c:
14768           vaapi: Fix various compiler warnings and disable -Wredundant-decls for now
14769
14770 2016-02-16 14:36:39 +0200  Sebastian Dröge <sebastian@centricular.com>
14771
14772         * configure.ac:
14773           configure: Fix setting of extra compiler warning flags
14774
14775 2016-02-15 18:00:49 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14776
14777         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
14778           libs: fix build error
14779           gst_vaapi_buffer_proxy_{acquire_handle,release_handle,finalize,class}
14780           functions are used only when libva's API version is greater than 0.36.0
14781           This patch guards those functions completely rather than just their
14782           content. The patch is a continuation of commit 38f8fea4
14783           Original-patch-by: Vineeth TM <vineeth.tm@samsung.com>
14784           https://bugzilla.gnome.org/show_bug.cgi?id=762055
14785
14786 2016-02-15 10:01:54 +0900  Vineeth TM <vineeth.tm@samsung.com>
14787
14788         * tests/simple-encoder.c:
14789           tests: simple-encoder: fix build error
14790           argument mismatch of gsize with 'long unsigned int'
14791           https://bugzilla.gnome.org/show_bug.cgi?id=762055
14792
14793 2016-02-04 10:16:00 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
14794
14795         * gst/vaapi/gstvaapisink.c:
14796           vaapisink: Fix wrong caps advertising
14797           The get_caps() should only report the supported formats.
14798           https://bugzilla.gnome.org/show_bug.cgi?id=761147
14799
14800 2016-02-05 18:11:29 -0300  Thiago Santos <thiagoss@osg.samsung.com>
14801
14802         * common:
14803           Automatic update of common submodule
14804           From e97c9bb to b64f03f
14805
14806 2016-02-03 19:07:40 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14807
14808         * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14809         * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14810         * gst/vaapi/gstvaapi.c:
14811         * gst/vaapi/gstvaapiencode_h264.c:
14812         * gst/vaapi/gstvaapiencode_h265.c:
14813         * gst/vaapi/gstvaapiencode_jpeg.c:
14814         * gst/vaapi/gstvaapiencode_mpeg2.c:
14815         * gst/vaapi/gstvaapiencode_vp8.c:
14816           rename encoders to vaapi{codec}enc
14817           Trying to comply with GStreamer's element names, this patch renames the
14818           encoders using the name format vaapi{codec}enc.
14819           In this way, the plugin documentation is linked correctly.
14820           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14821
14822 2016-02-03 18:42:36 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14823
14824         * configure.ac:
14825           Use new AG_GST_ARG_ENABLE_EXTRA_CHECKS #define
14826           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14827
14828 2016-02-03 18:02:21 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14829
14830         * configure.ac:
14831           build: remove vp9 parser check
14832           Since the VP9 parser was added in gst-plugins-bad 1.7.1 we can remove safely
14833           the check of the parser, as we did for the others.
14834           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14835
14836 2016-02-03 17:06:48 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14837
14838         * common:
14839         * configure.ac:
14840           Back to development
14841           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14842
14843 === release 1.6.0 ===
14844
14845 2016-02-03 16:53:41 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14846
14847         * configure.ac:
14848           Release 1.6.0
14849
14850 2016-02-03 16:45:18 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14851
14852         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
14853         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14854         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14855           libs: fix compiler warnings
14856           After setting the release flags, the compiler warns about a couple
14857           initialized variables.
14858           Also marked a couple of set variables as unused, because they are only
14859           used for assertion.
14860           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14861
14862 2016-01-29 20:41:27 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14863
14864         * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14865         * docs/plugins/gstreamer-vaapi-plugins-sections.txt:
14866         * gst/vaapi/gstvaapidecode.c:
14867         * gst/vaapi/gstvaapidecodebin.c:
14868         * gst/vaapi/gstvaapiencode_h264.c:
14869         * gst/vaapi/gstvaapiencode_h265.c:
14870         * gst/vaapi/gstvaapiencode_jpeg.c:
14871         * gst/vaapi/gstvaapiencode_mpeg2.c:
14872         * gst/vaapi/gstvaapiencode_vp8.c:
14873         * gst/vaapi/gstvaapipostproc.c:
14874         * gst/vaapi/gstvaapisink.c:
14875           docs: update plugin documentation
14876           Update all the documentation of elements of the vaapi plugin.
14877           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14878
14879 2016-01-29 15:39:09 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14880
14881         * Makefile.am:
14882         * configure.ac:
14883         * docs/Makefile.am:
14884         * docs/plugins/Makefile.am:
14885         * docs/plugins/gstreamer-vaapi-plugins-docs.xml.in:
14886         * docs/plugins/gstreamer-vaapi-plugins.types:
14887         * docs/reference/Makefile.am:
14888         * docs/reference/plugins/Makefile.am:
14889         * docs/reference/plugins/plugins-sections.txt:
14890         * docs/reference/plugins/plugins.types:
14891         * docs/version.entities.in:
14892           resurrect gtk-doc machinery
14893           Our auto-generated documentation has been a bit neglected. This patch replaces
14894           the 'normal' gtk-doc with the one used in GStreamer, which is adapted for
14895           plugins, elements and libraries.
14896           This patch also re-enables documentation generation.
14897           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14898
14899 2016-01-28 19:35:24 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14900
14901         * ChangeLog:
14902         * Makefile.am:
14903         * autogen.sh:
14904         * configure.ac:
14905           use gst-common submodule
14906           This is 'the' big change in gstreamer-vaapi autoconf. Now it uses the official
14907           GStreamer common submodule.
14908           The documentation generation has been disable temporarily since it needs a
14909           major rework, which will be done in the following commit.
14910           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14911
14912 2016-01-25 16:06:03 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14913
14914         * .gitmodules:
14915         * common:
14916           add gst-common submodule
14917           Pointing to branch 1.6
14918           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14919
14920 2016-01-28 13:28:30 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14921
14922         * gstreamer-vaapi.doap:
14923           add doap descriptor
14924           DOAP (Description of a Project) is an RDF Schema and XML vocabulary to
14925           describe software projects, in particular free and open source software.
14926           The description is used in GStreamer as in many other open source projects.
14927           This patch adds the doap description of this project.
14928           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14929
14930 2016-02-03 11:50:13 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14931
14932         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
14933         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
14934         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
14935         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
14936         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
14937         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
14938         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
14939         * gst-libs/gst/vaapi/gstvaapiimage.c:
14940         * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
14941         * gst-libs/gst/vaapi/gstvaapipixmap.c:
14942         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
14943         * gst-libs/gst/vaapi/gstvaapiprofile.c:
14944         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
14945           libs: humongous code style fix
14946           As part of the upstreaming process of gstreamer-vaapi into the GStreamer
14947           umbrella, we need to comply with the project's code style. This meant to
14948           change a lot of code.
14949           It was decided to use a single massive patch to update the code style.
14950           I would like to apologize with the original developers of this code because of
14951           the history breakage.
14952           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14953
14954 2016-02-03 11:04:15 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14955
14956         * gst-libs/gst/vaapi/gstvaapicontext.c:
14957         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
14958         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
14959         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
14960         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
14961         * gst/vaapi/gstvaapivideomemory.c:
14962           libs: small refactors to enhance the code style
14963           As gst-indent generated ugly code in these cases, this patch changes the used
14964           idiomatic into other one.
14965           No functional changes were introduced.
14966           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14967
14968 2016-02-02 17:59:57 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14969
14970         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
14971         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14972         * gst-libs/gst/vaapi/gstvaapicodedbufferproxy.c:
14973         * gst-libs/gst/vaapi/gstvaapidecoder.c:
14974         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
14975         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
14976         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
14977         * gst-libs/gst/vaapi/gstvaapidisplay.c:
14978         * gst-libs/gst/vaapi/gstvaapiencoder.c:
14979         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
14980         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
14981         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
14982         * gst-libs/gst/vaapi/gstvaapifilter.c:
14983         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
14984         * gst-libs/gst/vaapi/gstvaapisurface.c:
14985         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
14986         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
14987         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
14988         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
14989         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
14990         * gst-libs/gst/vaapi/gstvaapiwindow.c:
14991         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
14992           libs: small code style fixes
14993           This a set of small code style fixes detected as-is by gst-indent.
14994           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14995
14996 2016-02-02 17:50:19 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
14997
14998         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
14999         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
15000         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
15001         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15002         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
15003         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15004         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
15005         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
15006         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15007           libs: trivial comment style fixes
15008           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15009
15010 2016-02-02 17:31:02 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15011
15012         * gst-libs/gst/vaapi/gstvaapicodedbuffer.c:
15013         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
15014           libs: avoid gst-indent mess up
15015           Guard pieces of code to avoid gst-ident to mess up the following code.
15016           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15017
15018 2016-02-03 12:17:59 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15019
15020         * gst/vaapi/gstvaapidecode.c:
15021         * gst/vaapi/gstvaapidecodebin.c:
15022         * gst/vaapi/gstvaapipluginutil.c:
15023         * gst/vaapi/gstvaapisink.c:
15024         * gst/vaapi/gstvaapivideomemory.c:
15025           plugins: fix code style
15026           Minor code style changes by executing gst-indent in gst/vaapi directory.
15027           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15028
15029 2016-02-01 13:22:10 +0000  Tim-Philipp Müller <tim@centricular.com>
15030
15031         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15032         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15033           Fix some more compiler warning
15034           Two (false) compiler warnings about variables potentially
15035           being used uninitialized, and one about a variable being
15036           set but not used.
15037           https://bugzilla.gnome.org/show_bug.cgi?id=759192
15038
15039 2016-02-01 13:02:13 +0000  Tim-Philipp Müller <tim@centricular.com>
15040
15041         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15042         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
15043         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15044         * gst-libs/gst/vaapi/gstvaapifilter.c:
15045         * gst/vaapi/gstvaapidecode.c:
15046         * gst/vaapi/gstvaapipluginbase.c:
15047         * gst/vaapi/gstvaapipluginutil.c:
15048         * gst/vaapi/gstvaapipostproc.c:
15049         * tests/simple-encoder.c:
15050         * tests/test-filter.c:
15051           vaapi: fix 'ISO C90 forbids mixed declarations and code' compiler warnings
15052           Declare variables at the beginning of a code block, which
15053           is how it's done in GStreamer.
15054           https://bugzilla.gnome.org/show_bug.cgi?id=759192
15055
15056 2016-01-28 14:21:04 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15057
15058         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15059           decoder: vp9: Fix crop rectangle setting
15060           Align with software vp9dec behaviour: Add crop rectangle
15061           only if display_width/display_height is less than the
15062           frame_hdr->width/frame_hdr->height
15063
15064 2016-01-27 08:56:45 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15065
15066         * gst/vaapi/gstvaapidecode.c:
15067           vaapidecode: Fix renegotiation for resolution change
15068           Always renegotiate the pool if the immediate frame which going
15069           to be pushed has a different un-cropped resolution than the already
15070           configured one.
15071
15072 2016-01-29 15:51:49 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15073
15074         * gst/vaapi/gstvaapipluginbase.h:
15075           plugins: use the same pre-processor macro
15076           In gstvaapipluginbase.c we are using the macro USE_GST_GL_HELPERS to guard the
15077           code related with GstGL. Nonetheless, in gstvaapipluginbase.h we are using
15078           HAVE_GST_GL_GL_H macro in order to include the GstGLContext's header.
15079           We should use only one to be homogeneous. This patch sets USE_GST_GL_HELPERS
15080           in the header file.
15081           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15082
15083 2016-01-29 18:06:29 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15084
15085         * gst-libs/gst/vaapi/gstvaapidecoder.c:
15086           decoder: update a deprecated function
15087           Somehow this didn't show up earlier, but gst_adapter_prev_timestamp() got
15088           deprecated since GStreamer 1.0.
15089           This patch replace it with gst_adapter_prev_pts()
15090           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15091
15092 2016-01-29 13:13:56 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15093
15094         * configure.ac:
15095           build: honor configure's cache
15096           The user might enable --config-cache when calling configure script. If so, our
15097           configuration variables will not be correctly calculated.
15098           This patch extracts the value of our variables either from the cache or from
15099           the operation result.
15100           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15101
15102 2016-01-28 19:12:13 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15103
15104         * configure.ac:
15105           build: use common version variables
15106           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15107
15108 2016-01-28 19:01:43 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15109
15110         * configure.ac:
15111           build: hard-code an unneeded macro
15112           That macro is required for EGL's dynamic module loading, but since
15113           gstreamer-vaapi doesn't creates dynamic modules, it is not required anymore.
15114           That code in gst-libs/gst/vaapi/gstvaapidisplay_egl.c should be removed.
15115           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15116
15117 2016-01-28 17:14:51 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15118
15119         * configure.ac:
15120           build: refactorization of dependency tracking
15121           This patch tries to avoid branching in configure.ac using a more functional
15122           approach in macros usage.
15123           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15124
15125 2016-01-29 12:34:30 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15126
15127         * configure.ac:
15128           build: check for OpenGL either GLX or EGL are requested
15129           Refactor some code in configure.ac to centralize $enable_opengl definition.
15130           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15131
15132 2016-01-28 16:55:44 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15133
15134         * configure.ac:
15135           build: indent and add square braces
15136           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15137
15138 2016-01-28 16:50:39 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15139
15140         * configure.ac:
15141           build: upgrade autotools version dependency
15142           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15143
15144 2016-01-29 11:14:34 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15145
15146         * configure.ac:
15147           build: enhance string comparisons
15148           Add a 'x' as a prefix in string comparisons to watch out for edge cases where
15149           the string is empty or undefined.
15150           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15151
15152 2016-01-28 14:29:16 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15153
15154         * configure.ac:
15155           build: remove unused variables
15156           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15157
15158 2016-01-27 19:00:51 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15159
15160         * configure.ac:
15161           build: remove check for old version of gstreamer
15162           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15163
15164 2016-01-27 17:55:02 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15165
15166         * configure.ac:
15167           build: remove GStreamer's parsers checks
15168           This patch removes almost all the parsers check since they are already in place,
15169           with the exception of the VP9 parser, since it was merged in Gstreamer 1.7.
15170           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15171
15172 2016-01-29 12:11:17 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15173
15174         * configure.ac:
15175         * gst/vaapi/Makefile.am:
15176           build: add gstreamer-pbutils dependency
15177           This dependency was added in gstvaapidecodebin with the call
15178           gst_missing_element_message_new().
15179           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15180
15181 2016-01-27 17:53:59 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15182
15183         * configure.ac:
15184           build: fix variable declaration
15185           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15186
15187 2016-01-27 17:47:32 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15188
15189         * gst-libs/gst/vaapi/Makefile.am:
15190           build: fix when HEVC decoder is disabled
15191           This a very pathological situation: when we have a HEVC encoder but not a HEVC
15192           decoder.
15193           The encoder needs functions that are only available when the decoder is
15194           enabled.
15195           This patch moves the utils functions into the generic sources, such as the
15196           rest of the utils.
15197           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15198
15199 2016-01-27 17:20:31 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15200
15201         * gst/vaapi/Makefile.am:
15202           build: remove unused EGL specific sources
15203           These Makefile variables are not used at all.
15204           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15205
15206 2016-01-27 17:19:32 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15207
15208         * gst/vaapi/Makefile.am:
15209           build: remove check for GStreamer 1.2
15210           Since we are working for current stable GStreamer 1.6
15211           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15212
15213 2016-01-26 11:49:40 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15214
15215         * gst/vaapi/gstvaapiparse.h:
15216           Remove more video parser crufts
15217           This header is not used anymore since it declares parsers that are
15218           already in GStreamer 1.6
15219           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15220
15221 2016-01-25 12:43:15 +0000  Tim-Philipp Müller <tim@centricular.com>
15222
15223         * configure.ac:
15224         * docs/reference/Makefile.am:
15225         * docs/reference/libs/Makefile.am:
15226         * docs/reference/libs/libs-docs.xml.in:
15227         * docs/reference/libs/libs-overrides.txt:
15228         * docs/reference/libs/libs-sections.txt:
15229           docs: remove library documentation which is non-public now
15230           https://bugzilla.gnome.org/show_bug.cgi?id=759192
15231
15232 2016-01-25 12:40:49 +0000  Tim-Philipp Müller <tim@centricular.com>
15233
15234         * Makefile.am:
15235         * configure.ac:
15236         * debian.upstream/Makefile.am:
15237         * debian.upstream/changelog.in:
15238         * debian.upstream/compat:
15239         * debian.upstream/control.in:
15240         * debian.upstream/copyright:
15241         * debian.upstream/gstreamer-vaapi-doc.install.in:
15242         * debian.upstream/gstreamer-vaapi.install.in:
15243         * debian.upstream/rules:
15244           Remove debian.upstream packaging
15245           https://bugzilla.gnome.org/show_bug.cgi?id=759192
15246
15247 2016-01-22 19:27:13 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15248
15249         * gst-libs/gst/vaapi/gstvaapidecoder.c:
15250         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
15251         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
15252         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
15253         * gst-libs/gst/vaapi/gstvaapiprofile.c:
15254         * gst/vaapi/gstcompat.h:
15255         * gst/vaapi/gstvaapi.c:
15256         * gst/vaapi/gstvaapidecode.c:
15257         * gst/vaapi/gstvaapiencode.c:
15258         * gst/vaapi/gstvaapipluginbase.c:
15259         * gst/vaapi/gstvaapipluginbase.h:
15260         * gst/vaapi/gstvaapipluginutil.c:
15261         * gst/vaapi/gstvaapisink.c:
15262           Remove old gst version guards
15263           As gstreamer-vaapi now only supports from GStreamer 1.6, this patch removes
15264           all the old GStreamer version guards.
15265           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15266
15267 2016-01-22 19:23:43 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15268
15269         * gst/vaapi/gstvaapiparse.c:
15270           Remove video parser crufts
15271           We forgot to remove gstvaapiparse.c when we removed all the videoparser
15272           machinery.
15273           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15274
15275 2015-12-09 19:52:33 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15276
15277         * docs/reference/libs/Makefile.am:
15278         * docs/reference/plugins/Makefile.am:
15279         * gst-libs/gst/vaapi/Makefile.am:
15280         * gst/vaapi/Makefile.am:
15281         * tests/Makefile.am:
15282           libs: remove versioning
15283           Since we don't install libraries anymore, it makes no sense to keep
15284           versioning them according to the gstreamer's version.
15285           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15286
15287 2015-12-09 16:59:16 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15288
15289         * configure.ac:
15290         * debian.upstream/Makefile.am:
15291         * debian.upstream/control.in:
15292         * debian.upstream/libgstvaapi-dev.install.in:
15293         * debian.upstream/libgstvaapi-drm.install.in:
15294         * debian.upstream/libgstvaapi-glx.install.in:
15295         * debian.upstream/libgstvaapi-wayland.install.in:
15296         * debian.upstream/libgstvaapi-x11.install.in:
15297         * debian.upstream/libgstvaapi.install.in:
15298         * gst-libs/gst/vaapi/Makefile.am:
15299         * tests/Makefile.am:
15300           libs: make libraries no installables
15301           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15302
15303 2015-12-09 15:37:39 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15304
15305         * debian.upstream/libgstvaapi-dev.install.in:
15306         * gst-libs/gst/vaapi/Makefile.am:
15307           Do not install libgstvaapi headers
15308           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15309
15310 2016-01-19 10:40:54 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15311
15312         * Makefile.am:
15313         * configure.ac:
15314         * patches/Makefile.am:
15315         * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
15316         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
15317         * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
15318         * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
15319         * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15320         * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15321         * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15322         * patches/videoparsers/Makefile.am:
15323         * patches/videoparsers/series.frag:
15324           Remove videoparser patches
15325
15326 2015-12-09 15:18:11 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15327
15328         * Makefile.am:
15329         * configure.ac:
15330         * debian.upstream/libgstvaapi-dev.install.in:
15331         * pkgconfig/Makefile.am:
15332         * pkgconfig/gstreamer-vaapi-drm.pc.in:
15333         * pkgconfig/gstreamer-vaapi-glx.pc.in:
15334         * pkgconfig/gstreamer-vaapi-wayland.pc.in:
15335         * pkgconfig/gstreamer-vaapi-x11.pc.in:
15336         * pkgconfig/gstreamer-vaapi.pc.in:
15337           Remove pkg-config files
15338           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15339
15340 2015-12-09 13:24:30 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15341
15342         * .gitmodules:
15343         * Makefile.am:
15344         * configure.ac:
15345         * ext/Makefile.am:
15346         * ext/codecparsers:
15347         * gst-libs/gst/Makefile.am:
15348         * gst-libs/gst/codecparsers/Makefile.am:
15349         * gst-libs/gst/vaapi/Makefile.am:
15350         * gst/vaapi/Makefile.am:
15351           Remove codecparsers submodule
15352           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15353
15354 2015-12-08 00:36:36 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15355
15356         * .gitmodules:
15357         * autogen.sh:
15358         * configure.ac:
15359         * debian.upstream/libgstvaapi.install.in:
15360         * ext/Makefile.am:
15361         * ext/libvpx/Makefile.am:
15362         * ext/libvpx/gstlibvpx.c:
15363         * ext/libvpx/gstlibvpx.h:
15364         * ext/libvpx/libgstcodecparsers_vpx.vers:
15365         * ext/libvpx/sources.frag:
15366         * ext/libvpx/upstream:
15367         * gst-libs/gst/codecparsers/Makefile.am:
15368         * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
15369           Remove libvpx submodule
15370           We will be using upstream codecparsers always.
15371           No more internal libvpx !
15372
15373 2015-12-09 14:12:22 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15374
15375         * configure.ac:
15376           build: fix check for GstJpegParser
15377           Right now the local JPEG parser is always compiled because the check for the
15378           upstreamed version is broken: it looks for an non existent symbol:
15379           GstJpegImage.
15380           This patch changes that check for< GstJpegFrameHdr.
15381           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15382
15383 2015-10-28 09:56:46 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
15384
15385         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
15386           wayland: free the frame in frame_release_callback()
15387           This basically reverts 62c3888b76afc69f714a020957e8c5dd9d98f561 (wayland:
15388           decouple wl_buffer from frame).
15389           Otherwise the frame may be overwritten while it is still used by the
15390           compositer:
15391           The frame done callback (frame_done_callback()) is called, when the
15392           compositor is done processing the frame and hands it to the hardware.
15393           The buffer release callback (frame_release_callback()) is called when the
15394           buffer memory is no longer used.
15395           This can be quite some time later: E.g. if weston (with the DRM backend)
15396           puts the buffer on a hardware plane, then then buffer release callback is
15397           called when the kernel is done with the buffer. This is usually when the
15398           next frame is shown, so most likely after the frame done callback for the
15399           next frame!
15400           Since 70eff01d36a2870cbf06ffb91c2a941e8cb6b804 "wayland: sync() when
15401           destroy()" the mentioned possible leak should no longer be a problem, so
15402           reverting this change should cause no leaking buffers.
15403           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15404           https://bugzilla.gnome.org/show_bug.cgi?id=758848
15405           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15406
15407 2016-01-14 17:36:24 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15408
15409         * gst/vaapi/gstvaapipostproc.c:
15410           vaapipostproc: check ANY caps at transform_caps()
15411           When transforming downstream caps we should check for ANY caps from peer pad,
15412           otherwise we get a segmentation fault.
15413           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15414           https://bugzilla.gnome.org/show_bug.cgi?id=759893
15415
15416 2016-01-13 19:17:02 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15417
15418         * gst/vaapi/gstvaapisink.c:
15419           vaapisink: ignore frame if its upload failed
15420           When gst_vaapi_plugin_base_get_input_buffer() fail to copy the input buffer
15421           into a VAAPI buffer, the return value is GST_FLOW_NOT_SUPPORTED, and it was
15422           ignored by the vaapisink, leading to a segmentation fault.
15423           This patch ignores the frame that generated the GST_FLOW_NOT_SUPPORTED
15424           returned by gst_vaapi_plugin_base_get_input_buffer(), avoiding the
15425           segmentation fault, but doing and effort to continue rendering. This is
15426           the same behavior of ximagesink.
15427           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15428           https://bugzilla.gnome.org/show_bug.cgi?id=759332
15429
15430 2015-12-09 18:24:50 +0200  Joel Holdsworth <joel.holdsworth@vcatechnology.com>
15431
15432         * configure.ac:
15433           build: Don't ignore GST_PLUGIN_PATH_1_0 even if the directory doesn't exist yet
15434           https://bugzilla.gnome.org/show_bug.cgi?id=759184
15435
15436 2015-12-08 16:14:11 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15437
15438         * gst-libs/gst/vaapi/gstvaapicontext.c:
15439         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
15440         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
15441         * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
15442           Add 10 HEVC 10 bit decoding support
15443           Only supporting vaapidecode ! vaapisink combination for now.
15444           Missing dependencies:
15445           1: No support for P010 video format in GStreamer
15446           2: No support for P010 vaGetImage()/vaPutimage() in vaapi-intel-driver
15447           3: As a result of 1&2 , we have no support for Vaapi Video memory mapping
15448           through GstVideoMeta.
15449           Right now we only set chroma format (YUV420 with more than 8 bits per channel)
15450           for surface pool and keeping GST_VIDEO_FORMAT as ENCODED. The underlying format
15451           of the surfaces is implementation (driver) defined, which is P010.
15452
15453 2001-01-01 04:59:28 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15454
15455         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
15456         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
15457           gstvaapisurfacepool: Add new API to create surface pool based on chroma type
15458           This new API gst_vaapi_surface_pool_new_with_chroma_type() is for
15459           creating a new GstVaapiVideoPool of GstVaapiSurfaces with the specified
15460           chroam type and dimensions. The underlying format of the surfaces is
15461           implementation (driver) defined.
15462
15463 2015-12-07 19:06:28 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15464
15465         * gst-libs/gst/vaapi/gstvaapisurface.h:
15466         * gst-libs/gst/vaapi/gstvaapiutils.c:
15467           Add definitions for YUV420 with more than 8 bits per channel
15468
15469 2015-12-07 17:26:24 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15470
15471         * gst-libs/gst/vaapi/gstvaapiprofile.c:
15472           gstvaapiporfile: Fix string representation of HEVCMain10 profile
15473
15474 2015-12-07 16:17:11 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15475
15476         * configure.ac:
15477           Bump version for development
15478
15479 === release 0.7.0 ===
15480
15481 2015-12-07 12:52:10 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15482
15483         * configure.ac:
15484           0.7.0
15485
15486 2015-12-07 12:49:05 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15487
15488         * NEWS:
15489           NEWS: Updates
15490
15491 2015-12-07 12:47:04 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15492
15493         * AUTHORS:
15494           AUTHORS: Update
15495
15496 2015-12-07 12:39:23 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15497
15498         * README:
15499           README: Update
15500
15501 2015-11-26 10:34:12 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15502
15503         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15504           texture: detect GL version and use the proper API
15505           When receiving the texture from the application or the video sink, we must
15506           know it size and border. To query the texture the API has changed according to
15507           the OpenGL version used in the GL context of the application/vsink.
15508           This patch checks the current context API type and queries the texture
15509           according to this detected API.
15510           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15511           https://bugzilla.gnome.org/show_bug.cgi?id=753099
15512
15513 2015-11-26 10:19:32 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15514
15515         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
15516           texture: check for expected target and format
15517           gst_vaapi_texture_glx_new_wrapped() only handles a GL_TEXTURE_2D target and
15518           formats GL_RGBA or GL_BGRA.
15519           This patch adds a debugging verification of those values.
15520           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15521           https://bugzilla.gnome.org/show_bug.cgi?id=753099
15522
15523 2015-11-26 10:26:10 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15524
15525         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15526         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15527           libs: add gl3_bind_texture_2d()
15528           Since OpenGL3.1 removed the fixed pipelines[1] enabling 2D textures is not
15529           needed. In particular, the Intel's Mesa implementation complains if it is
15530           called.
15531           This patch add a new binding function for 2D textures, without enabling
15532           gl3_bind_texture_2d()[2].
15533           1. https://www.opengl.org/wiki/Fixed_Function_Pipeline
15534           2. https://www.opengl.org/wiki/Common_Mistakes#OOP_and_hidden_binding
15535           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15536           https://bugzilla.gnome.org/show_bug.cgi?id=753099
15537
15538 2015-11-26 10:14:45 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15539
15540         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
15541         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
15542           libs: add gl_get_current_api()
15543           In order to know which OpenGL API use, we must detect the API type of current
15544           context. This patch adds the function gl_get_current_api() which returns the
15545           OpenGL API type.
15546           This function is an adaptation of gst_gl_context_get_current_gl_api() from
15547           GstGL.
15548           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15549           https://bugzilla.gnome.org/show_bug.cgi?id=753099
15550
15551 2015-11-27 12:29:11 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15552
15553         * configure.ac:
15554         * gst-libs/gst/vaapi/Makefile.am:
15555           build: Add gmodule dependency for libgstvaapi_egl
15556           https://bugzilla.gnome.org/show_bug.cgi?id=756259
15557
15558 2015-11-27 14:24:55 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15559
15560         * patches/videoparsers/0005-videoparsers-h264-Disable-passthorugh-mode-enabling.patch:
15561         * patches/videoparsers/0006-h265parse-include-gstvaapiparse.h.patch:
15562         * patches/videoparsers/0007-h265parse-fix-build-with-GStreamer-1.5.patch:
15563         * patches/videoparsers/series.frag:
15564           patches/videoparsers: h264: Disable passthorugh mode enabling
15565           This is a quick fix for regression introduced by the upstream
15566           commit e8908f5aeef952566f6bccde743c7735d3f8c6ef in h264 videoparser.
15567           The patch is disabling the passthrough mode, otherwise it will
15568           break multi-layer mvc stream parsing.
15569           https://bugzilla.gnome.org/show_bug.cgi?id=758656
15570
15571 2015-11-25 15:12:53 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15572
15573         * gst/vaapi/Makefile.am:
15574         * patches/videoparsers/Makefile.am:
15575         * patches/videoparsers/series.frag:
15576           build: add gsth265parse patches conditionally
15577           As gsth265parse was added in GStreamer 1.4, and gstreamer-vaapi still support
15578           GStreamer 1.2, the patching of gsth265parse must be conditional to the target
15579           GStreamer version.
15580           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15581           https://bugzilla.gnome.org/show_bug.cgi?id=755525
15582
15583 2015-11-25 15:11:28 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15584
15585         * gst/vaapi/Makefile.am:
15586           build: declare correctly parse lib built files
15587           This is a continuation of commit fc8a0d12
15588           When declaring BUILT_SOURCES, those files should not be distributed. This
15589           patch avoids the distribution of the generated source code.
15590           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15591           https://bugzilla.gnome.org/show_bug.cgi?id=755525
15592
15593 2015-11-24 17:14:20 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15594
15595         * ext/libvpx/sources.frag:
15596           build: libvpx: Add missing source file
15597
15598 2015-11-23 17:21:23 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15599
15600         * gst/vaapi/gstvaapipostproc.c:
15601           vaapipostproc: Correctly detect the caps change
15602           This is a quick fix for regression introuduced by the
15603           commit 757833230bc73b8e3b4e31649e4618ba802bea51
15604           With out this, the gst_vaapipostproc_create() will
15605           never get invoked.
15606           https://bugzilla.gnome.org/show_bug.cgi?id=758543
15607
15608 2015-11-18 20:48:30 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15609
15610         * ext/libvpx/Makefile.am:
15611         * ext/libvpx/sources.frag:
15612           build: libvpx: update the sources lists
15613           `make dist` broke since commit f06798 (libvpx: Update the submodule to
15614           libvpx-1.4.0) because the sources.frag does not contain all the module
15615           sources.
15616           This patch updates thoroughly the sources.
15617           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15618           https://bugzilla.gnome.org/show_bug.cgi?id=755525
15619
15620 2015-11-16 17:49:01 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15621
15622         * gst/vaapi/gstvaapipostproc.c:
15623           vaapipostproc: don't set caps change at first set
15624           When the source caps change, the filter is destroyed and recreated.
15625           Nonetheless, this happens every time the vaapipostproc starts, since the caps
15626           change detection algorithm does not take in consideration when the caps are
15627           set by first time.
15628           This patch intents to be an optimization, to avoid a useless filter
15629           destroy-creation cycle when the sources caps are set for first time.
15630           The new helper function video_info_update() is a refactorization to avoid
15631           duplicated code.
15632           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15633           https://bugzilla.gnome.org/show_bug.cgi?id=758007
15634
15635 2015-11-12 16:13:25 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15636
15637         * gst/vaapi/gstvaapipostproc.c:
15638           vaapipostproc: params video_info_changed() callers
15639           The signature is video_info_changed(old_vip, new_vip). Nonetheless the callers
15640           swapped the the order. This didn't raise problems since the comparison of both
15641           structures were not affected by its semantics.
15642           But still it would be better to fix this to keep the coherence of the code.
15643           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15644           https://bugzilla.gnome.org/show_bug.cgi?id=758007
15645
15646 2015-09-24 10:35:44 +0000  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15647
15648         * gst/vaapi/Makefile.am:
15649           build: declare real built files
15650           When runnig the `make dist` target from a clean tree, it fails because
15651           if could not find the copied files from codecparsers submodule.
15652           They weren't copied because they weren't declared as built sources.
15653           This patch removes the stamp mechanism and use the actual file list to copy
15654           as the built sources. Also it fixes the duplication of the parser files.
15655           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15656           https://bugzilla.gnome.org/show_bug.cgi?id=755525
15657
15658 2015-11-17 19:37:07 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15659
15660         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15661           decoder: vp9: Fix last/golden/altref frame index setting
15662           Always fill VADecPictureParameterBufferVP9 last/golden/altref indices
15663           based on what ever reference frame indices encoded in frame header.
15664
15665 2015-08-25 16:01:51 +0000  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15666
15667         * debian.upstream/rules:
15668           debian: remove custom parallel compilation
15669           In order to build a debian package with upstream source, the user should
15670           do
15671           ./autogen.sh
15672           cp -a debian.upstream debian
15673           debuild -eDEB_BUILD_OPTIONS="parallel=8" -us -uc -b
15674           The environment variable DEB_BUILD_OPTIONS="parallel=8" is the canonical
15675           way to make a parallel build (-j8 in this case).
15676           This commit removes the script in debian/rules that detects the number of
15677           cpus, requested by the environment variable DEBIAN_BUILD_NCPUS, which is not
15678           official in debian.
15679           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15680           https://bugzilla.gnome.org/show_bug.cgi?id=754087
15681
15682 2015-11-16 18:22:55 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15683
15684         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15685           decoder: vp9: Fix PTS calculation of cloned frames
15686
15687 2015-11-16 18:22:33 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15688
15689         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15690           decoder: vp9: Avoid unnecessary show_frame flag checking while doing picture output
15691           We always set GST_VAAPI_PICTURE_FLAG_SKIPPED for DECODE_ONLY frames and the
15692           gstvaapidecoder base calss is reponsible for handling those frames later on.
15693           No need for explicit verification of frame header's show_frame in order to
15694           do picture outputing.
15695
15696 2015-11-16 18:22:14 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15697
15698         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15699           decoder: vp9: Fix ref picture update while doing repeat frame
15700           Don't try to do frame decoding and reference picture update
15701           while receiving a vp9 frame having show_existing_frame flag
15702           set as TRUE.
15703
15704 2015-11-16 18:21:56 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15705
15706         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15707           decoder: vp9: Add repeat-frame display handling
15708           If vp9 frame header come up with show_existing_frame flag set,
15709           we should duplicate the existing decoded frame as current frame to
15710           be displayed.
15711
15712 2015-11-12 11:07:38 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15713
15714         * gst/vaapi/gstvaapidecodebin.c:
15715           vaapidecodebin: add me as element co-author
15716           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15717           https://bugzilla.gnome.org/show_bug.cgi?id=757957
15718
15719 2015-11-12 12:47:01 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15720
15721         * gst/vaapi/gstvaapidecodebin.c:
15722           vaapidecodebin: try to get display from decoder
15723           Rather than create a dummy display, if none has propagated as a context, we
15724           should try to get the one from vaapidecode.
15725           As the bin is already in READY state, the vaapidecode should be also in that
15726           state. That means that the contexts have been negotiated, and it should have
15727           already a display.
15728           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15729           https://bugzilla.gnome.org/show_bug.cgi?id=757957
15730
15731 2015-11-11 19:04:25 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15732
15733         * gst/vaapi/gstvaapidecodebin.c:
15734         * gst/vaapi/gstvaapidecodebin.h:
15735           vaapidecodebin: add postprocessor dynamically
15736           The former approach to left the bin unfinished has some problems: the context
15737           cannot be shared because the vaapidecode is unlinked in many cases, leading to
15738           creating a VADisplay twice.
15739           Initially the bin is fully functional, constructed as
15740           (-----------------------------------)
15741           |            vaapidecodebin         |
15742           |   (-------------)    (-------)    |
15743           |<--| vaapidecode |--->| queue |--->|
15744           |   (-------------)    (-------)    |
15745           (-----------------------------------)
15746           When the context is shared and the VADisplay has VPP capabilities, before
15747           changing to READY state, the bin is reconfigured dynamically, adding the
15748           vaapipostproc element afeter the queue:
15749           (--------------------------------------------------------)
15750           |                       vaapidecodebin                   |
15751           |   (-------------)    (-------)    (---------------)    |
15752           |<--| vaapidecode |--->| queue |--->| vaapipostproc |--->|
15753           |   (-------------)    (-------)    (---------------)    |
15754           (--------------------------------------------------------)
15755           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15756           https://bugzilla.gnome.org/show_bug.cgi?id=757957
15757
15758 2015-11-11 16:33:24 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15759
15760         * gst/vaapi/gstvaapidecodebin.c:
15761           vaapidecodebin: delay the bin configuration
15762           Delay the bin configuration until changing to READY state. This is because we
15763           should add the vaapipostproc element until the vaapidecode has emitted the
15764           HAVE_CONTEXT message, so de gst_bin_add() could set the context set to
15765           vaapipostproc.
15766           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15767           https://bugzilla.gnome.org/show_bug.cgi?id=757957
15768
15769 2015-11-13 19:39:56 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15770
15771         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15772           decoder: vp9: Add crop rectangle support.
15773           Set crop rectange if:
15774           There is display_width and display_height which is different from actual width/height
15775           or
15776           The changed resolution is less than the actual configured dimension of surfaces
15777
15778 2015-11-13 19:23:05 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15779
15780         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15781           decoder: vp9: Fix the context and surface pool reset for multi resolution video
15782           Unlike other decoders, vp9 decoder doesn't need to reset the
15783           whole context and surfaces for each resolution change. Context
15784           reset only needed if resolution of any frame is greater than
15785           what actullay configured. There are streams where a bigger
15786           resolution set in ivf header or webm header but actual resolution
15787           of all frames are less. Also it is possible to have inter-prediction
15788           between these multi resolution frames.
15789
15790 2015-11-13 18:58:33 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15791
15792         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15793           decoder: vp9: Fill the VADecPictureParameterBufferVP9 width/height from frame header
15794           Always fill width/height of VADecPictureParameterBufferVP9 from frame header.
15795           Preliminary fix for supproting multi resolution video decode.
15796
15797 2015-11-13 18:51:27 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15798
15799         * gst/vaapi/gstvaapidecode.c:
15800           vaapidecode: Add comments for corner case fixes and fix couple of indentations.
15801
15802 2015-11-13 18:41:53 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15803
15804         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15805           decoder: vp9: Set lossless flag from frame header
15806
15807 2015-11-13 18:40:52 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15808
15809         * ext/codecparsers:
15810           codecparsers: Update to gst-vaapi-branch d9f25
15811           d9f2527: codecparsers: vp9: Set lossless flag in frame header
15812
15813 2015-11-11 19:16:16 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15814
15815         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
15816           libs: vp9: remove unused symbols
15817           clang complains about a couple variables and one label which were not
15818           used. This patch removes them.
15819           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15820           https://bugzilla.gnome.org/show_bug.cgi?id=757958
15821
15822 2015-11-10 19:00:22 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
15823
15824         * ext/codecparsers:
15825           codecparsers: Update to gst-vaapi-branch da251bb
15826           da251bb: codecparsers: vp9: Optimize the memory allocation
15827           f5759f4: codecparsers: vp9: Fix the wrong memcpy of probability arrays
15828
15829 2015-11-05 12:58:52 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15830
15831         * gst/vaapi/gstvaapipluginbase.c:
15832         * gst/vaapi/gstvaapipluginbase.h:
15833           plugin: guard pointers to pad query functions
15834           Since gstreamer 1.4 is not required to have pad query functions if the query
15835           vmethods are used.
15836           This patch guards out the pad query functions for gstreamer < 1.4
15837           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15838           https://bugzilla.gnome.org/show_bug.cgi?id=757629
15839
15840 2015-11-05 12:39:55 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15841
15842         * gst/vaapi/gstvaapiencode.c:
15843           vaapiencode: use pad query vmethods
15844           GstVideoEncoder, the base class of vaapiencode, added support for pad queries
15845           as virtual methods since gstreamer 1.4. This patch enables those vmethods,
15846           while keeps support for previous versions of gstreamer.
15847           This patch is relevant since GstVideoEncoder takes care of other queries that
15848           we are currently ignoring.
15849           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15850           https://bugzilla.gnome.org/show_bug.cgi?id=757629
15851
15852 2015-10-28 13:01:04 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15853
15854         * gst/vaapi/gstvaapidecode.c:
15855           vaapidecode: return pad's template caps if no display
15856           A caps query can occur before the element has a display. In that case, the
15857           element can return its pad's template. But when the element already has a
15858           display, and the caps probe fails, the element shall return an empty caps, so
15859           the auto-plug could try with another decoder.
15860           If the element has a display and the caps probe works, then the computed caps
15861           should be returned.
15862           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15863           https://bugzilla.gnome.org/show_bug.cgi?id=757598
15864
15865 2015-10-28 12:59:02 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15866
15867         * gst/vaapi/gstvaapidecode.c:
15868         * gst/vaapi/gstvaapisink.c:
15869           plugins: don't create display at caps query
15870           Caps query can happen before the element has a bus. The display creation should
15871           be should occur on the context negotiation, when the bus is already configured.
15872           Then at caps query no display should be created.
15873           Instead of force the display creation, we graciously fail the allowed_caps()
15874           creation.
15875           This change only applies for vaapidecode and vaapisink. The vaapipostroc, as a
15876           basetransform descendant, seems to be not affected by this, nor the encoders.
15877           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15878           https://bugzilla.gnome.org/show_bug.cgi?id=757598
15879
15880 2015-11-04 21:38:42 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15881
15882         * gst/vaapi/gstvaapidecode.c:
15883         * gst/vaapi/gstvaapiencode.c:
15884         * gst/vaapi/gstvaapipluginutil.c:
15885         * gst/vaapi/gstvaapipluginutil.h:
15886         * gst/vaapi/gstvaapipostproc.c:
15887         * gst/vaapi/gstvaapisink.c:
15888           plugins: fix context query handling
15889           The current context query handling design is flawed: the function
15890           gst_vaapi_reply_to_query() returns FALSE either if the query is not a
15891           GST_CONTEXT_QUERY of if the query could not be handled correctly. But the
15892           pad query function should handle differently each case.
15893           This patch changes the gst_vaapi_reply_to_query() for
15894           gst_vaapi_handle_context_query() and changes it usage in all the vaapi plugins
15895           to match the correct context query handling.
15896           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15897           https://bugzilla.gnome.org/show_bug.cgi?id=757598
15898
15899 2015-11-04 20:37:05 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15900
15901         * gst/vaapi/gstvaapipluginutil.c:
15902           plugin: don't lose previous context at query
15903           When processing the GST_CONTEXT_QUERY we should not lose the previous
15904           context in the query, we should only add our display structure.
15905           This patch copies the old context, if it is there, and stamp our display on
15906           it. Otherwise, a new context is created.
15907           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15908           https://bugzilla.gnome.org/show_bug.cgi?id=757598
15909
15910 2015-11-04 20:29:03 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15911
15912         * gst/vaapi/gstvaapivideocontext.c:
15913         * gst/vaapi/gstvaapivideocontext.h:
15914           vaapivideocontext: add gst_vaapi_video_context_set_display()
15915           This function set the display to an already created context. This function is
15916           going to be used later.
15917           Also, gst_vaapi_video_context_new_with_display() now uses this function.
15918           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15919           https://bugzilla.gnome.org/show_bug.cgi?id=757598
15920
15921 2015-10-30 12:27:16 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15922
15923         * gst/vaapi/gstvaapipluginutil.c:
15924         * gst/vaapi/gstvaapivideocontext.c:
15925         * gst/vaapi/gstvaapivideocontext.h:
15926           plugins: check if display is set in sync
15927           Since the context messages are sync'ed, the display assignation happens in the
15928           same thread, hence we can know if the display was found or not as soon we call
15929           for it.
15930           In order to take advantage of it, gst_vaapi_video_context_prepare() receives,
15931           as a new parameter, the address of the plugin's display, and reports back if
15932           the display was found and set.
15933           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15934           https://bugzilla.gnome.org/show_bug.cgi?id=757598
15935
15936 2015-10-30 12:33:48 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15937
15938         * gst/vaapi/gstvaapipluginutil.c:
15939         * gst/vaapi/gstvaapivideocontext.c:
15940           plugins: set display through context
15941           Instead of setting the display to the plugin directly after its creation, do
15942           it through the gstreamer's context mechanism, avoiding double assignations.
15943           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15944           https://bugzilla.gnome.org/show_bug.cgi?id=757598
15945
15946 2015-11-02 18:20:07 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15947
15948         * gst/vaapi/gstvaapivideocontext.c:
15949           vaapivideocontext: rename context structure
15950           The context structure is named "display" which is too generic. The contrary
15951           happens, for example, with GstGL, what uses the same name as the context, and
15952           its logs make more sense.
15953           This patch renames the context structure with the same name as the
15954           context, thus GST_PTR_FORMAT can pretty print it.
15955           https://bugzilla.gnome.org/show_bug.cgi?id=757598
15956
15957 2015-11-04 19:02:34 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15958
15959         * gst/vaapi/gstvaapivideocontext.c:
15960           vaapivideocontext: refactor gst_vaapi_video_context_prepare()
15961           First, refactorized run_context_query() into _gst_context_run_query(), adding
15962           a new parameter: the pad direction, in order to simplify the code.
15963           Second, added a new helper function: _gst_context_query(), which is a generic
15964           context query function.  It isolates the operation of running the query and
15965           sets the context if found, also it enhances the logs.
15966           _gst_context_query() is similar to the one used in GstGL. Perhaps, in the
15967           future this helper function will be merged into the core libraries of
15968           GStreamer.
15969           Finally, gst_vaapi_video_context_prepare() was rewritten to use
15970           _gst_context_query().
15971           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15972           https://bugzilla.gnome.org/show_bug.cgi?id=757598
15973
15974 2015-10-30 11:18:47 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15975
15976         * gst/vaapi/gstvaapivideocontext.c:
15977           vaapivideocontext: refactor context category debug
15978           Refactor the extraction GST_CAT_CONTEXT logging using a only once
15979           initializator, so we could get the debug category from different code
15980           paths, safely.
15981           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15982           https://bugzilla.gnome.org/show_bug.cgi?id=757598
15983
15984 2015-10-23 11:17:01 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15985
15986         * gst/vaapi/gstvaapivideocontext.c:
15987           gstvaapivideocontext: fix indentation
15988           gst-indent does not handle correctly some expression like function
15989           declaration with attributes, breaking the following expressions.
15990           This patch makes gst-indent to ignore the attributed function
15991           declartion so the followed function definition is not mangled, such
15992           as happened in commit b4154a
15993           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15994           https://bugzilla.gnome.org/show_bug.cgi?id=757598
15995
15996 2015-11-02 16:48:27 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
15997
15998         * gst/vaapi/gstvaapipluginbase.c:
15999           plugin: chain up set_context() vmethod
16000           Since Gstreamer 1.7, set_context() vmethod needs to be chained up with
16001           the parent class in order to broadcast all its contexts when the element
16002           is added into a bin:
16003           http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=d5ded1588920c4471eefe055d09095d9e5e989b5
16004           There is no need to guard the call, because before GStreamer 1.7, the
16005           set_context() vmethod was NULL in the element class, hence the conditional
16006           call make it safe.
16007           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16008           https://bugzilla.gnome.org/show_bug.cgi?id=757598
16009
16010 2015-11-06 10:20:34 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16011
16012         * tests/simple-encoder.c:
16013           tests: simple-encoder: remove dead code
16014           The caps creation for codec state configuration is not used. Let's remove it.
16015           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16016
16017 2015-11-02 19:05:07 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16018
16019         * gst/vaapi/gstvaapidecodebin.c:
16020           vaapidecodebin: fix a leaked display instance
16021           The display returned by gst_vaapi_video_context_get_display() increments the
16022           references. Thus, we have to unref the returned display.
16023           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16024           https://bugzilla.gnome.org/show_bug.cgi?id=757595
16025
16026 2015-11-04 16:50:44 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16027
16028         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
16029         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
16030           libs: remove unneeded headers
16031           Since gstvaapidisplay_glx.h do not expose gl.h/glx.h structures, it is not
16032           required to include them in the header. It is not also required to include
16033           them in gstvaapidisplay_glx.c, since gstvaapiutils_glx.h includes them and
16034           exposes their structures (e.g. GLXPixmap).
16035           Nonetheless, glext.h neither glxext.h are required to include, they are
16036           already included conditionally by gl.h and glx.h, respectively.
16037           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16038           https://bugzilla.gnome.org/show_bug.cgi?id=757577
16039
16040 2015-11-06 19:18:54 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16041
16042         * ext/codecparsers:
16043           codecparsers: Update to gst-vaapi-branch 0ea6792
16044           0ea6792: codecparsers: vp9: Add header comments
16045           347ffc7: codecparsers: vp9: Use g_slice_free() for releasing memory allocated from the slice allocator
16046
16047 2015-11-06 15:19:38 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16048
16049         * gst/vaapi/gstvaapidecode.c:
16050           VP9: plugins: Add VP9 decoder
16051
16052 2015-11-06 15:12:51 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16053
16054         * gst-libs/gst/vaapi/Makefile.am:
16055         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.c:
16056         * gst-libs/gst/vaapi/gstvaapidecoder_vp9.h:
16057           VP9: libgstvaapi: Add VP9 decoder
16058
16059 2015-11-06 14:57:00 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16060
16061         * gst-libs/gst/vaapi/gstvaapiprofile.c:
16062         * gst-libs/gst/vaapi/gstvaapiprofile.h:
16063           VP9: gstvaapiprofile: Add profile definitions
16064
16065 2015-11-06 14:39:22 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16066
16067         * configure.ac:
16068           VP9: build: Check availability of vp9 decoder APIs
16069
16070 2015-11-06 14:24:08 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16071
16072         * configure.ac:
16073         * ext/Makefile.am:
16074         * gst-libs/gst/codecparsers/Makefile.am:
16075           VP9: Allow building vp9 codecparser internally
16076
16077 2015-11-06 12:38:46 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16078
16079         * ext/codecparsers:
16080           codecparsers: Update to gst-vaapi-branch commit ac5dc1a
16081           ac5dc1a: codecparsers: vp9: Add vp9 codec parser
16082           e7d9217: codecparser: h264: initialize parsing structures
16083           403d400: codecparser: h265: initialize parsing structures
16084
16085 2015-11-04 15:37:34 +0100  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16086
16087         * configure.ac:
16088           configure.ac: don't use an undefined variable
16089           If the environment lacks of gstreamer development packages, this error will
16090           be reported to the user: "gstreamer- was not found"
16091           This is because we are using an undefined variable in the printed message. The
16092           fix simple changes the variable for the hard-coded string "1.0".
16093           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16094           https://bugzilla.gnome.org/show_bug.cgi?id=757283
16095
16096 2015-10-16 15:55:40 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16097
16098         * gst/vaapi/gstvaapidecode.c:
16099           vaapidecode: relax guards for memory:VASurface capsfeature
16100           Though caps features are supported since GStreamer 1.2, there are some
16101           issues with the features caps negotiation in that version. Nonetheless,
16102           those issues are fixed in GStreamer 1.4. So, the memoy:VASurface caps
16103           feature negotiation is relaxed for GStreamer 1.4.
16104           The guard is the same as in vaapisink's caps template.
16105           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16106           https://bugzilla.gnome.org/show_bug.cgi?id=756686
16107
16108 2015-10-15 18:18:36 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16109
16110         * gst/vaapi/gstvaapidecode.c:
16111           vaapidecode: decide allocation doesn't update srccaps
16112           The received caps query will bring the already negotiated caps, so they are
16113           not expected to change.
16114           This patch removes this verification which is dead code path.
16115           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16116           https://bugzilla.gnome.org/show_bug.cgi?id=756686
16117
16118 2015-10-14 20:30:30 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16119
16120         * gst/vaapi/gstvaapidecode.c:
16121         * gst/vaapi/gstvaapipluginutil.c:
16122         * gst/vaapi/gstvaapipluginutil.h:
16123           vaapidecode: use caps to check the features
16124           Instead of calling gst_vaapi_find_preferred_caps_feature(), which is
16125           expensive, we check the caps from the allocation query, to check the
16126           negotiated feature.
16127           In order to do this verification a new utility function has been implemented:
16128           gst_vaapi_caps_feature_contains().
16129           As this new function shared its logic with gst_caps_has_vaapi_surface(), both
16130           have been refactorized.
16131           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16132           https://bugzilla.gnome.org/show_bug.cgi?id=756686
16133
16134 2015-10-14 20:22:43 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16135
16136         * gst/vaapi/gstvaapidecode.c:
16137           vaapidecode: set format before decide allocation
16138           There is a regression from commit 3d8e5e. It was expected the buffer pool
16139           allocation occur before the caps negotiation, but it is not.
16140           This patch fixes this regression: the caps negotiation is done regardless the
16141           allocation query from downstream.
16142           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16143           https://bugzilla.gnome.org/show_bug.cgi?id=756686
16144
16145 2015-10-16 20:21:50 +0800  Lim Siew Hoon <siew.hoon.lim@intel.com>
16146
16147         * configure.ac:
16148           build: check for patch and fix yasm check
16149           Add configure checking for GNU patch tools and fixed configure
16150           checking YASM to correct sequence.
16151           Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16152           https://bugzilla.gnome.org/show_bug.cgi?id=756690
16153
16154 2015-10-15 19:20:21 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16155
16156         * ext/libvpx/Makefile.am:
16157           build: Remove disable-md5 option for libvpx build
16158           The configure option --disable-md5 was provided in libvpx-1.3.0 which
16159           has been removed in 1.4.0.
16160
16161 2015-10-15 19:00:26 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16162
16163         * ext/libvpx/upstream:
16164           libvpx: Update the submodule to libvpx-1.4.0
16165           libvpx git commit: c74bf6d889992c3cabe017ec353ca85c323107cd
16166
16167 2015-10-15 10:59:08 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16168
16169         * configure.ac:
16170           configure: mark support for GStreamer 1.2 as obsolete.
16171           Support for GStreamer 1.2 is obsolete. i.e. it is no longer supported.
16172           Our goal is to support the last two stable versions of GStreamer which
16173           are 1.4 and 1.6 at the moment.
16174           We still keep the 1.2 specific codes until the next gstreamer-vaapi-0.7
16175           release and will get rid of those in 0.8.
16176
16177 2015-10-12 14:13:03 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16178
16179         * gst/vaapi/gstvaapidecode.c:
16180           vaapidecode: Fix buffer copy assertion
16181           Don't try to copy the NULL buffer-codec_data.
16182
16183 2015-09-28 14:57:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16184
16185         * configure.ac:
16186           build: allow builds against GStreamer 1.7.x
16187           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16188
16189 2015-09-23 16:02:46 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16190
16191         * gst/vaapi/gstcompat.h:
16192           gstcompat: add gst_buffer_copy_deep() if gst < 1.5
16193           gst_buffer_copy_deep() was added in GStreamer 1.5. If want to use it we should
16194           add an implementation if gstreamer-vaapi is linked to previous versions.
16195           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16196
16197 2015-09-23 12:13:41 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16198
16199         * gst/vaapi/gstvaapidecode.c:
16200           vaapidecode: simplify copy of GstVideoCodecState
16201           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16202
16203 2015-09-14 19:21:08 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16204
16205         * patches/videoparsers/0006-h265parse-fix-build-with-GStreamer-1.5.patch:
16206         * patches/videoparsers/series.frag:
16207           patches/videoparsers: h265parser: more API fences
16208           Add more API fences according with its version and refresh the patch.
16209           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16210           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16211
16212 2015-09-14 19:19:56 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16213
16214         * patches/videoparsers/0005-h265parse-include-gstvaapiparse.h.patch:
16215         * patches/videoparsers/series.frag:
16216           patches/videoparsers: h265parser: rename patch keeping number
16217           Refresh the patch and rename it in order to keep the patch number.
16218           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16219           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16220
16221 2015-09-14 19:18:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16222
16223         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16224           patches/videoparsers: h264parser: more API fences and refresh
16225           Add more API fences according with its version and refresh the patch.
16226           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16227           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16228
16229 2015-09-14 19:16:51 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16230
16231         * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStreamer-1.5.patch:
16232         * patches/videoparsers/series.frag:
16233           patches/videoparsers: h264parser: fix description and refresh
16234           Fix a typo in the patch description and refresh it in order to avoid the
16235           creation of .orig files and break the distcheck target.
16236           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16237           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16238
16239 2015-09-14 19:15:18 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16240
16241         * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
16242         * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
16243           patches/videoparsers: h264parser: refresh patches
16244           In order to avoid the creation of .orig files and break the distcheck target.
16245           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16246           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16247
16248 2015-09-15 16:53:31 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16249
16250         * gst/vaapi/Makefile.am:
16251           build: link libgstvaapi_parse against codec parser
16252           GST_CODEC_PARSER_* variables are defined if builtin codec parsers are disabled
16253           when running configure.
16254           Right now, libgstcodecparsers links only to libgstvaapi, but libgstvaapi_parse
16255           need it if builtin codec parsers are disabled.
16256           This patch adds GST_CODEC_PARSER_* variables to libgstvaapi_parse
16257           compilation. If builtin codec parsers are enable, this variable is null, so it
16258           should work using libgstvaapi, as normal.
16259           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16260           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16261
16262 2015-09-11 16:35:30 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16263
16264         * configure.ac:
16265           build: verify for H264 MVC and H265 SPS
16266           Currently the H264 and H265 parsers look for MVC and SPS respectively, and
16267           the required symbols for those were added in GStreamer 1.5
16268           If we try to compile in GStreamer < 1.4, without enabling the builtin codec
16269           parsers, the compilation fails, because the lack of those symbols.
16270           This patch verifies if the installed H264 and H265 parsers have those symbols. If
16271           they do not, the specific built in codec parsers are enabled and used.
16272           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16273           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16274
16275 2015-09-11 16:49:16 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16276
16277         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16278           decoder: h264: initialize PPS's slice_group_id
16279           When the GstVaapiParserInfoH264 is allocated, the memory is not initialized,
16280           so it contains random data.
16281           When gst_h264_parser_parse_pps() fails, the PPS structure keeps slice_group_id
16282           pointer uninitialized, leading to a segmentation fault when the memory is
16283           freed.
16284           This patch prevents this by initializing the slice_group_id before the PPS
16285           parsing.
16286           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16287           https://bugzilla.gnome.org/show_bug.cgi?id=754845
16288
16289 2015-09-15 11:01:29 +0300  Mark Nauwelaerts <mnauw@users.sourceforge.net>
16290
16291         * gst/vaapi/gstvaapidecode.c:
16292           vaapidecode: proper numerator and denominator for forced latency framerate
16293           https://bugzilla.gnome.org/show_bug.cgi?id=755040
16294
16295 2015-09-11 20:51:42 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16296
16297         * ext/codecparsers:
16298           codecparsers: Update to gst-vaapi-branch commit f9e284b
16299           dae1a84: h264parse/h265parse: Fix negotiation crash
16300           45a9f8a: codecparsers: h265 : Fix default scaling list values
16301           28eaaf5: codecparsers: h265: Fix the selection of Active Ref Pic Set
16302           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16303
16304 2015-09-04 22:19:55 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16305
16306         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16307           decoder: hevc: Don't flush dpb for EOS/EOB nal
16308           Explicit flushing of dpb for EOS and EOB nal decoding is wrong,
16309           the dpb_add() itself will handle the flusing(if needed) of dpb
16310           for end of sequence and end of bitstream.
16311           https://bugzilla.gnome.org/show_bug.cgi?id=754010
16312
16313 2015-09-04 22:11:10 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16314
16315         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16316           decoder: hevc: Fix the dpb_add() based on C.5.2.3
16317           Follow the spec as it is in C.5.2.3, add the decoded frame to dpb
16318           just after the PicLatencyCnt setting of existing dpb frames.
16319           https://bugzilla.gnome.org/show_bug.cgi?id=754010
16320
16321 2015-09-04 22:02:55 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16322
16323         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16324           decoder: hevc: Fix the picture addition in dpb() based on spec H265 v3 (04/2015)
16325           This fix is based on the V3 vesion of spec which was missing in older versions.
16326           When the current picture has PicOutputFlag equal to 1, for each picture in the
16327           DPB that is marked as "needed for output" and follows the current picture in output order,
16328           the associated variable PicLatencyCount is set equal to PicLatencyCount + 1 (C.5.2.3).
16329           https://bugzilla.gnome.org/show_bug.cgi?id=754010
16330
16331 2015-09-04 22:00:36 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16332
16333         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16334           decoder: h265: Fix indentation
16335
16336 2015-06-13 01:39:31 +1000  Jan Schmidt <jan@centricular.com>
16337
16338         * gst-libs/gst/vaapi/gstvaapidecoder.c:
16339         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16340         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
16341         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16342         * gst/vaapi/gstvaapidecode.c:
16343         * gst/vaapi/gstvaapipluginutil.c:
16344           multiview: initial attempt at stereo/multiview support
16345           Add support for marking caps and buffers for multiview or
16346           stereoscopic output.
16347           https://bugzilla.gnome.org/show_bug.cgi?id=750835
16348
16349 2015-08-28 17:12:12 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16350
16351         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16352           decoder: hevc: remove unused functions
16353           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16354           https://bugzilla.gnome.org/show_bug.cgi?id=754250
16355
16356 2015-08-31 13:11:54 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16357
16358         * gst/vaapi/gstvaapidecode.c:
16359           vaapidecode: remove (another) unused variable
16360           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16361
16362 2015-08-28 17:10:40 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16363
16364         * gst/vaapi/gstvaapidecode.c:
16365           vaapidecode: remove unused variable
16366           Thus silence the compilation warnings.
16367
16368 2015-08-28 16:06:08 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16369
16370         * gst/vaapi/gstvaapidecode.c:
16371           vaapidecode: compilation fix
16372           gst_vaapi_decoder_state_changed() returns void. This patch fixes the
16373           compilation where the toolchain uses restrictive flags as clang.
16374           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16375
16376 2015-08-29 00:27:05 +0300  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16377
16378         * gst/vaapi/gstvaapidecode.c:
16379           vaapidecode: renegotiate if caps are not equal
16380           The use of gst_caps_is_always_compatible() for this optimization may lead to
16381           false positives. It is better to stick to gst_caps_is_strictly_equal() to know
16382           if it is required a re-negotiation.
16383           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16384           https://bugzilla.gnome.org/show_bug.cgi?id=750835
16385
16386 2015-08-29 00:18:57 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16387
16388         * gst/vaapi/gstvaapidecode.c:
16389         * gst/vaapi/gstvaapidecode.h:
16390           vaapidecode: Rework the re-negotiation code to handle multi resoultion videos
16391           Delaying the pool re-negotiation untill we push all decoded (and queued)
16392           frames downstream. Otherwise for the multi-resolution videos, the
16393           GstVideoVideoMemory will be having wrong resolution and which leads
16394           to nasty behaviours, especially when using software renderers.
16395           sample media file: RAP_B_Bossen_1.bin
16396           case explained:
16397           The first SPS Nal will report resoultion of 448x256 and having crop rectangles to
16398           get the final resoultion 416x240.
16399           Starting from 25 th frame, the resolution will change to 416x240. But parser
16400           elements won't report this since the effective croped resolution is same in
16401           both cases. Here the core libgstvaapi will detect this through it's internal
16402           parsing and do all context/pool destory/reset stuffs. Also it will notify this
16403           change to plugins in advance. But if the plugin try to do re-negotiaion of pool
16404           immediately, this will not sync with the resolution of already decoded and queued
16405           frames and which will lead to failure in gst_video_frame_map() in downstream(if we use the
16406           software renderer). So we have to delay the pool renegotiation in vaapidecode,
16407           untill we push all decoded frames downstream.
16408           https://bugzilla.gnome.org/show_bug.cgi?id=753914
16409
16410 2015-08-28 23:43:47 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16411
16412         * gst/vaapi/gstvaapidecode.c:
16413           vaapidecode: Always keep a copy of input codec state
16414           Currently we are sharing the input GstVideoCodecState with
16415           GstVaapiDecoder(gst-libs/gst/vaapi) by just doing ref and unref for
16416           each caps change. This is troublesome in many cases, for eg: if
16417           resoultion changes with in a singe stream. Because, when ever there
16418           is a resolution change, GstVideoDecoder will first change the Codec_state->caps
16419           fields with new resolution, but since we are using the same codecstate (ref)
16420           in gstvaapidecode.c, the caps check for input caps change will always fail.
16421           https://bugzilla.gnome.org/show_bug.cgi?id=753914
16422
16423 2015-08-26 07:25:03 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16424
16425         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16426           decoder: hevc: Fix the scaling list scan order
16427           The default scan order of scaling lists are up-right-diagonal
16428           as per hevc specification. Use the newly implemented
16429           uprightdiagonal_to_raster conversion codecparser APIs to
16430           get the the scaling_list values in raster order, which is
16431           what the VA intel driver requires.
16432
16433 2015-08-26 07:20:09 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16434
16435         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16436           decoder: hevc: sync with the codecparser changes
16437           The Tile Scanning Conversion process (spec 6-3 and 6-4) is implemented
16438           in codecparsers now. Remove the duplication from gstvaapidecoder_h265
16439
16440 2015-08-26 07:04:22 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16441
16442         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16443           patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16444
16445 2015-08-26 06:57:36 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16446
16447         * ext/codecparsers:
16448           codecparsers: Update to gst-vaapi-branch commit 69550f1
16449           c207c6d: codecparsers: h265: Fix tile row and column parsing
16450           47074c5: codecparsers: h265: Add APIs for up-right-diagonal/raster scan conversion
16451           cd28b18: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16452           1746bbe: videoparsers: Use gst_base_parse_merge_tags()
16453           2f0932b: h264parse: Clear SPS info after processing
16454           f57d6b0: videoparsers: enable accept-template flag
16455
16456 2015-08-25 15:38:42 +0000  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16457
16458         * debian.upstream/control.in:
16459           debian: add yasm as build dependency
16460           As the compilation of libvpx (for vp8 parser) is enabled by default,
16461           yasm is required by default too.
16462           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16463
16464 2015-08-14 19:21:04 +0800  Lim Siew Hoon <siew.hoon.lim@intel.com>
16465
16466         * debian.upstream/rules:
16467           debian: remove --with-gstreamer-api option
16468           It is no longer valid in gstreamer-vaapi.
16469           Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
16470           [removed unused GST_API_VERSION variable]
16471           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16472           https://bugzilla.gnome.org/show_bug.cgi?id=753618
16473
16474 2015-08-24 19:22:14 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16475
16476         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16477           wayland: rename is_cancelled to sync_failed
16478           Since commit 065a18a3, the semantics of the variable is_cancelled did not make
16479           sense. This commit renames this variable to sync_failed.
16480
16481 2015-08-13 15:12:44 -0400  Olivier Crete <olivier.crete@collabora.com>
16482
16483         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
16484           wayland: Don't return GST_FLOW_ERROR on flushing
16485           Setting the sink to flushing causes gst_vaapi_window_wayland_sync() to
16486           return FALSE which makes gst_vaapi_window_wayland_render() return
16487           FALSE which ends up posting an ERROR message in
16488           gst_vaapisink_show_frame_unlocked(). Solution is to just return TRUE
16489           in the EBUSY case.
16490           https://bugzilla.gnome.org/show_bug.cgi?id=753598
16491
16492 2015-08-06 12:28:51 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16493
16494         * gst/vaapi/gstvaapi.c:
16495           Revert "Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now."
16496           This reverts commit 3ccb198b513dc6ad287fe44117d03bec4d6a966a.
16497
16498 2015-07-06 20:22:57 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16499
16500         * gst/vaapi/gstvaapidecodebin.c:
16501           vaapidecodebin: check for postproc instance
16502           If the VPP's deinterlace-method is set, first we should check if the postproc
16503           is already instanced to set it. Otherwise we just store it until the VPP is
16504           added into the bin.
16505           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16506           https://bugzilla.gnome.org/show_bug.cgi?id=749554
16507
16508 2015-08-06 18:48:13 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16509
16510         * gst/vaapi/gstvaapidecodebin.c:
16511         * gst/vaapi/gstvaapipluginutil.c:
16512         * gst/vaapi/gstvaapipluginutil.h:
16513           vaapidecodebin: ensure VPP before going to READY
16514           There are sometimes that the VA-API display context is not shared among the
16515           pipeline, but it is important to know it before going to READY state (when the
16516           pipeline is already linked).
16517           One instance of this case is this:
16518           gst-launch-1.0 filesrc location=media ! decodebin ! vaapipostproc ! vaapisink
16519           This patch adds a new function in gstvaapipluginutil called
16520           gst_vaapi_create_test_display(). Its purpose is to create a disposable VA-API
16521           display, which only will be used for verify if the VAEntrypointVideoProc is
16522           available by the hardware. Afterwards, it should be unrefed.
16523           If the vaapidecodebin is going to READY state, and the element still doesn't
16524           know if VPP is available, the last resort is to create a new instance of the
16525           VA-API display and test for it.
16526           https://bugzilla.gnome.org/show_bug.cgi?id=749554
16527
16528 2015-08-06 12:39:52 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16529
16530         * gst/vaapi/gstvaapidecodebin.c:
16531           vaapidecodebin: post an error message if fails
16532           If the construction of the bin fails, post an error message in the bus.
16533           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16534           https://bugzilla.gnome.org/show_bug.cgi?id=749554
16535
16536 2015-08-06 12:36:07 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16537
16538         * gst/vaapi/gstvaapidecodebin.c:
16539         * gst/vaapi/gstvaapidecodebin.h:
16540           vaapidecodebin: has_vpp as a tri-state variable
16541           has_vpp can be UNKNOWN while the context message hasn't being received.
16542           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16543           https://bugzilla.gnome.org/show_bug.cgi?id=749554
16544
16545 2015-08-03 16:33:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16546
16547         * gst/vaapi/gstvaapivideomemory.c:
16548           gstvaapivideomemory: native format with no derived image
16549           If USE_NATIVE_FORMATS is defined we bail out before configuring the surface
16550           info based on the derived image configuration.
16551           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16552           https://bugzilla.gnome.org/show_bug.cgi?id=744042
16553
16554 2015-07-23 20:07:59 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16555
16556         * gst-libs/gst/vaapi/video-format.c:
16557         * gst-libs/gst/vaapi/video-format.h:
16558         * gst/vaapi/gstvaapivideomemory.c:
16559           surface pool config based on video info
16560           First added the function gst_vaapi_video_format_get_best_native(), which
16561           returns the best native format that matches a particular chroma type:
16562           YUV 4:2:0 -> NV12, YUV 4:2:2 -> YUY2, YUV 4:0:0 -> Y800
16563           RGB32 chroma and encoded format map to NV12 too.
16564           That format is used to configure, initially, the surface's pool for the
16565           allocator.
16566           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16567           https://bugzilla.gnome.org/show_bug.cgi?id=744042
16568
16569 2015-07-23 16:03:43 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16570
16571         * gst/vaapi/gstvaapivideomemory.c:
16572           gstvaapivideomemory: refactor gst_vaapi_video_allocator_new()
16573           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16574           https://bugzilla.gnome.org/show_bug.cgi?id=744042
16575
16576 2015-06-19 15:51:07 +0200  Victor Jaquez <vjaquez@igalia.com>
16577
16578         * gst-libs/gst/vaapi/gstvaapiencoder.c:
16579           gstvaapiencoder: validate chroma according to the VA's RT format
16580           Before, only YUV420 color space where supported. With this patch, the
16581           encoder is queried to know the supported formats and admits YUV422
16582           color space if its available.
16583           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16584           https://bugzilla.gnome.org/show_bug.cgi?id=744042
16585
16586 2015-08-13 05:07:52 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16587
16588         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16589           decoder: hevc: Add calculation of WpOffsetHalfRangeC
16590           This is necessary for finding ChromaOffsetL0/ChromaOffsetL1
16591           prediction weight table values with out using any hard coding.
16592           Fixme: We don't have parser API for sps_range_extension, so
16593           assumed zero value for high_precision_offsets_enabled_flag.
16594           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16595
16596 2015-08-13 04:09:44 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16597
16598         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16599           decoder: hevc: Fix ChromaOffsetL0/ChromaOffsetL1 calculation
16600           Based on ITU-T rec H265(4/2015): 7-56
16601           This was a wrong equation in rec H265 (4/2013): 7-44...
16602           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16603
16604 2015-08-13 04:08:03 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16605
16606         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16607           decoder: hevc: Fix default value assignment of pred_weight_table
16608
16609 2015-08-13 03:48:43 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16610
16611         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16612           decoder: hevc: Fix the value assigning for delta_chroma_log2_weight_denom
16613           Assign only if ChromaArrayType != 0..
16614           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16615
16616 2015-08-13 03:06:32 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16617
16618         * ext/codecparsers:
16619           codecparsers: Update to gst-vaapi-branch commit 1c70432
16620           8e98b41: codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
16621           839c5bc: codecparsers: h265: Fix the parsing of ref_pic_lists_modification
16622           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16623
16624 2015-08-11 08:09:10 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16625
16626         * ext/codecparsers:
16627           codecparsers: Update to gst-vaapi-branch commit c18b8ad
16628           8a03e67: videoparsers: h265: Avoid skipping of EOS and EOB nals
16629           a033083: videoparsers: h265: Fix the frame start detection code
16630           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16631
16632 2015-08-10 05:50:50 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16633
16634         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16635           decoder: hevc: Add SEI parsing
16636           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16637
16638 2015-08-07 08:43:44 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16639
16640         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16641           decoder: hevc: Workaround to recognize wrongly encoded main profile streams
16642           HACK: This is a work-around to identify some main profile streams having wrong profile_idc.
16643           There are some wrongly encoded main profile streams(eg: ENTP_C_LG_3.bin) which doesn't
16644           have any of the profile_idc values mentioned in Annex-A, instead general_profile_idc
16645           has been set as zero and having general_profile_compatibility_flag[general_profile_idc]
16646           is TRUE. Assuming them as MAIN profile for now.
16647           https://bugzilla.gnome.org/show_bug.cgi?id=753226
16648           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16649
16650 2015-08-07 08:41:57 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16651
16652         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16653           patches/videoparsers: Fix the wrong source file path
16654           This is something wrongly typed in commit 6d7b631
16655
16656 2015-08-07 08:34:55 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16657
16658         * ext/codecparsers:
16659           codecparsers: Update to gst-vaapi-branch commit b8d8be4
16660           ee7e81b: h264parse: Don't discard first AU delimiter
16661           3690fb9: h264parse: Add more NAL types for debugging output
16662           108d368: h265parse: Avoid checking for Non Mandatory VPS NAL
16663           ace61048: h265parse: expose compatible profiles to downstream
16664           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16665
16666 2015-08-06 13:07:53 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16667
16668         * gst/vaapi/gstvaapipluginutil.c:
16669         * gst/vaapi/gstvaapivideocontext.c:
16670         * gst/vaapi/gstvaapivideocontext.h:
16671           gstvaapivideocontext: remove unused parameter
16672           gst_vaapi_video_context_prepare() received an unused parameter. This patch
16673           removes it and the structure passed by the caller.
16674           This a left over of "Removal of gstreamer-1.0 support" (commit 8b36e25f).
16675           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16676
16677 2015-08-06 04:01:24 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16678
16679         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16680           decoder: hevc: Fix decoding of stream when it has temporal sublayers
16681           We are calculating the dpb size based on max_dec_pic_buffering.
16682           But if there are more than one temporal sublayers, we are supposed
16683           to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
16684           size calculation (Assuming HighestTid as max_sub_layers_minus).
16685           Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin
16686           https://bugzilla.gnome.org/show_bug.cgi?id=753226
16687           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16688
16689 2015-08-05 14:11:12 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16690
16691         * gst/vaapi/gstvaapidecode.c:
16692         * gst/vaapi/gstvaapidecodebin.c:
16693         * gst/vaapi/gstvaapiencode_h264.c:
16694         * gst/vaapi/gstvaapiencode_h265.c:
16695         * gst/vaapi/gstvaapiencode_jpeg.c:
16696         * gst/vaapi/gstvaapiencode_mpeg2.c:
16697         * gst/vaapi/gstvaapiencode_vp8.c:
16698         * gst/vaapi/gstvaapipluginutil.h:
16699         * gst/vaapi/gstvaapipostproc.c:
16700         * gst/vaapi/gstvaapisink.c:
16701           refactor vaapi caps strings for pad templates
16702           Refactor the main vaapi caps strings into three macros:
16703           GST_VAAPI_MAKE_SURFACE_CAPS, GST_VAAPI_MAKE_ENC_SURFACE_CAPS and
16704           GST_VAAPI_MAKE_GLTEXUPLOAD_CAPS.
16705           Those are in gstvaapipluginutil.h so all the elements could use them, instead
16706           of re-declaring them every time.
16707           No functional changes.
16708           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16709
16710 2015-08-05 14:15:07 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16711
16712         * gst/vaapi/gstvaapipostproc.c:
16713           gstvaapipostproc: fix code style
16714           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16715
16716 2015-08-05 05:23:20 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16717
16718         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
16719           decoder: hevc: Fix the decoding of dependent slice segment
16720           Decoding process for reference picture list construction needs to be
16721           invoked only for P and B slice and the value for slice_type of dependent slice
16722           segment should be taken from the previous independent slice segment header
16723           of the same pic.
16724           https://bugzilla.gnome.org/show_bug.cgi?id=753226
16725           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16726
16727 2015-06-22 17:38:41 +0200  Victor Jaquez <vjaquez@igalia.com>
16728
16729         * gst/vaapi/gstvaapipluginbase.c:
16730           plugins: reduce the noise of warnings
16731           Those messagse should be attached to the object, also the lack of
16732           caps is not an error, in particular in the case of JPEG encoding.
16733           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16734           https://bugzilla.gnome.org/show_bug.cgi?id=744042
16735
16736 2015-06-23 17:49:51 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16737
16738         * gst-libs/gst/vaapi/gstvaapicontext.c:
16739           gstvaapicontext: fix the JPEG encoder attribs value
16740           When we query for the VAConfigAttribEncJPEG, we get a value which packs the
16741           VAConfigAttribValEncJPEG structure, but we did not assign it. This patch
16742           assigns the returned value to the attribute.
16743           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16744           https://bugzilla.gnome.org/show_bug.cgi?id=744042
16745
16746 2015-06-18 17:37:46 +0200  Victor Jaquez <vjaquez@igalia.com>
16747
16748         * gst-libs/gst/vaapi/gstvaapiencoder.c:
16749           gstvaapiencoder: framerate 0/1 is valid too
16750           Framerate 0/1 is valid, and it is particularly useful for picture
16751           encoding, such as jpeg. This patch makes the encoder to admit that
16752           framerate.
16753           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16754           https://bugzilla.gnome.org/show_bug.cgi?id=744042
16755
16756 2015-07-03 09:35:16 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16757
16758         * gst/vaapi/gstvaapipostproc.c:
16759           vaapipostroc: GLTextureUploadMeta in sink template
16760           Advertise GLTextureUploadMeta in sink caps template.
16761           https://bugzilla.gnome.org/show_bug.cgi?id=752130
16762
16763 2015-07-23 13:11:40 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
16764
16765         * gst/vaapi/Makefile.am:
16766         * gst/vaapi/gstvaapiencode.c:
16767         * gst/vaapi/gstvaapipluginbase.c:
16768         * gst/vaapi/gstvaapipluginbase.h:
16769         * gst/vaapi/gstvaapipostproc.c:
16770         * gst/vaapi/gstvaapisink.c:
16771         * gst/vaapi/gstvaapiuploader.c:
16772         * gst/vaapi/gstvaapiuploader.h:
16773           remove gstvaapiuploader
16774           Working on bug #744042 I realized that the gstvaapiuploader is practically not
16775           used.
16776           This patch removes the gstvaapiuploader and add the method
16777           gst_vaapi_plugin_base_get_allowed_raw_caps () that returns the raw caps that
16778           the system can handle, which is used by vaapisink and vaapipostproc.
16779           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16780           https://bugzilla.gnome.org/show_bug.cgi?id=752777
16781
16782 2015-07-27 18:49:13 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16783
16784         * gst/vaapi/gstvaapidecode.c:
16785           vaapidecode: don't lost GLTextureUpload on seek
16786           When seeking, the decoder is reset, but the buffer pool is not
16787           re-negotiated, but in reset_full() the code forgets if the negotiated buffer
16788           pool has the GLTextureUpload meta.
16789           The decoder knows that GLTextureUpload meta was negotiated in
16790           decide_allocation(), but this method is not called when seeking.
16791           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16792           https://bugzilla.gnome.org/show_bug.cgi?id=752929
16793
16794 2015-07-21 18:45:56 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16795
16796         * gst/vaapi/gstvaapipluginutil.c:
16797           plugins: don't use gst_pad_get_allowed_caps()
16798           gst_pad_get_allowed_caps() query the pad and the peer pad. In the case
16799           decoders, that is OK, but in the case of the postproc might lead loops,
16800           since the gst_base_transform_query_caps() forwards the query upstream
16801           and forth.
16802           Instead of gst_pad_get_allowed_caps() we only query the peer with
16803           gst_pad_peer_query_caps() using the pad's template as filter.
16804           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16805           https://bugzilla.gnome.org/show_bug.cgi?id=752558
16806
16807 2015-07-22 12:40:19 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16808
16809         * README:
16810           README: updates
16811
16812 2015-07-22 09:45:26 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16813
16814         * patches/videoparsers/0004-h264parse-Disable-3D-video-support-for-GStremaer-1.5.patch:
16815         * patches/videoparsers/series.frag:
16816           patches/videoparsers: h264parse: Disable 3D video support for GStremaer < 1.5
16817           All API/ABI changes for S3D/MVC are added in 1.5, backporting
16818           them to older verison is not recommended.
16819           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16820
16821 2015-07-22 09:41:34 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16822
16823         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
16824           patches/Videoparsers: update patch to fix build with older GStreamer 1.2 stacks
16825
16826 2015-07-22 09:38:42 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16827
16828         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
16829           decoder: jpeg: Align with new API/ABI changes in codecparser
16830           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16831
16832 2015-07-22 09:31:02 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16833
16834         * ext/codecparsers:
16835           codecparsers: Update to gst-vaapi-branch commit 800bdb2
16836           ed13220: mpegvideometa: add meta transform function
16837           18d5efd: codecparsers: jpeg: add some padding to ScanHdr struct
16838           7a51722: codecparsers: jpeg: fix docs for table parsing functions
16839           06b8ded: codecparsers: jpeg: fix validity checking of data parsed
16840           387a39d: codecparsers: jpeg: fix up API
16841           db9d6a9: codecparsers: jpeg: tweak API a little
16842           bb6951e: codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
16843           f33c30c: codecparsers: jpeg: fix and optimize scan for next marker code
16844           4658c30: codecparsers: jpeg: fix calculation of segment size
16845           759bcb9: codecparsers: jpeg: fix default Huffman tables generation
16846           b4811ee: codecparsers: jpeg: add JPEG bitstream parser
16847           9422464: h264parse: fix typo in log message
16848           9e793a0: h264parse: Move PAR calcs, and use them for stereoscopic half-aspect
16849           77704ce: nalutils: trivial patch to check if
16850           8bb9249: codecparsers: mpeg4: actually return full number of bits of resync marker
16851           7862f95: Revert "codecparsers: remove ignored increment of return"
16852           54017b1: h264parse: Add support for passing stereoscopic/multiview info
16853           8667ee4: h264parse: Don't switch to passthrough on set_caps()
16854           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16855
16856 2015-06-29 14:27:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16857
16858         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16859           decoder: h264: track previous reference frames.
16860           Improve closure of gaps in frame_num by strictly following and trying
16861           to fill them with previous reference frames. So, they are now tracked
16862           thus avoiding insertion of dummy ("greenish") frames.
16863
16864 2015-06-29 13:16:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16865
16866         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16867           decoder: h264: fix integration of second field into the DPB.
16868           If the new picture to be added to the DPB is not a first field, then
16869           it shall be the second field of the previous picture that was added
16870           before.
16871           This removes the need for dpb_find_picture() now that we track the
16872           immediately preceding decoded picture, in decode order.
16873
16874 2015-07-06 14:38:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16875
16876         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16877           decoder: h264: fix closure of "other-field" gap.
16878           When a dummy "other-field" is inserted, it is assumed to inherit the
16879           reference flags from the first field, and the sliding window decoded
16880           reference picture marking process is also executed so that corrupted
16881           frames are moved out as early as possible.
16882           While doing so, we also try to output frames that now contain a single
16883           valid field picture, prior to inserting any other picture into the DPB.
16884           Note: this may be superfluous currently based on the fact that dpb_add()
16885           combines the two most recent pairable fields, but this process would be
16886           further simplified later on.
16887
16888 2015-06-24 13:58:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16889
16890         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
16891           decoder: h264: track corrupted frames.
16892           Mark the picture as "corrupted" if it is reconstructed from corrupted
16893           references or if those references are fake, e.g. resulting from lost
16894           frames.
16895           This is useful for notifying the upper layer, or downstream elements,
16896           that the decoded frame may contain artefacts.
16897           https://bugzilla.gnome.org/show_bug.cgi?id=703921
16898
16899 2015-06-24 13:48:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16900
16901         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
16902         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
16903         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
16904         * gst/vaapi/gstvaapidecode.c:
16905           decoder: add initial infrastructure for marking corrupted output.
16906           Add initial infrastructure in core codec library and vaapidecode to mark
16907           corrupted frames as such. A corrupted frame is such a frame that was
16908           reconstructed from invalid references for instance.
16909           https://bugzilla.gnome.org/show_bug.cgi?id=751434
16910           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
16911
16912 2015-07-15 18:18:49 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16913
16914         * configure.ac:
16915           Bump version for development
16916
16917 === release 0.6.0 ===
16918
16919 2015-07-15 15:49:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16920
16921         * configure.ac:
16922           0.6.0
16923
16924 2015-07-15 15:49:19 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16925
16926         * NEWS:
16927           NEWS: updates
16928
16929 2015-07-14 19:39:20 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16930
16931         * gst-libs/gst/vaapi/gstvaapiprofile.c:
16932           vaapidecoder: no wmv profiles gstreamer 1.4/1.2
16933           This patch fix the auto-plugging problem in gstreamer 1.2 and gstreamer 1.4
16934           Right now there is not a primary ranked parser for vc1 and the demuxers
16935           delivers caps without specifying the profile. This situation is not an issue
16936           for avdec_vc1 but for vaapidecode it is, which refuses to negotiate without a
16937           explicit profile defined in the negotiated caps.
16938           Nonetheless, in gstreamer 1.5 it seems not to be a problem since the
16939           negotiation admits caps subsets try outs.
16940           This patch solves the issue ignoring the profile negotiation in the caps. For
16941           gstreamer < 1.5 the profile string is not handled, so the auto-plugging get
16942           done without the vc1 parser, such as happens in gstreamer 1.5.
16943           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16944
16945 2015-07-07 20:57:20 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16946
16947         * gst/vaapi/gstvaapi.c:
16948           Marking rank of vaapidecodebin as GST_RANK_MARGINAL for now.
16949           Unfortunately vaapidecodebin element is not seems to be stable
16950           enough for autoplugging ahead of vaapidecode.
16951           Lowering the rank for now (cosidering the immediate 0.6 release).
16952           See this: https://bugzilla.gnome.org/show_bug.cgi?id=749554
16953           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16954
16955 2015-07-07 13:32:18 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16956
16957         * gst-libs/gst/vaapi/Makefile.am:
16958           build: Add missing CFLAGS to Makefile.am
16959
16960 2015-07-03 15:07:02 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16961
16962         * gst-libs/gst/vaapi/gstvaapifilter.c:
16963           gstvaapifilter: Only register STE property if it supported by corresponding VA library
16964           Fix the regression introduced in commit eb465fb.
16965           VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
16966           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16967
16968 2015-07-02 17:49:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
16969
16970         * gst/vaapi/gstvaapipostproc.c:
16971           vaapipostproc: no format convert on GL tex upload meta
16972           When GL texture upload meta is negotiated, vaapipostproc shall not modify the
16973           color format of the buffer.
16974           https://bugzilla.gnome.org/show_bug.cgi?id=748184
16975
16976 2015-07-03 12:42:09 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16977
16978         * gst-libs/gst/vaapi/gstvaapifilter.c:
16979           gstvaapifilter: Add guard for VAProcFilterSkinToneEnhancement
16980           VAProcFilterSkinToneEnhancement is avaialbe from VA >= 0.36.
16981           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16982
16983 2015-07-02 21:57:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16984
16985         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
16986           encoder:h265: Fix the check for packed-header support
16987           Use VA_ENC_PACKED_HEADER_* definition for checking.
16988           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16989
16990 2015-07-02 21:37:56 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16991
16992         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
16993           encoder:h264: Fix the check for packed-header support
16994           Use VA_ENC_PACKED_HEADER_* definition for checking.
16995           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16996
16997 2015-07-02 21:00:14 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
16998
16999         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
17000           encoder: h264: submit SEI buffering_period() and picture_timing() messages for CBR mode
17001           One buffering_period() SEI message shall be present in every IDR access unit
17002           when NalHrdBpPresentFlag is inferred to be equal to 1. This is the case when we
17003           use a non-CQP mode, e.g. CBR. In other words, when
17004           nal_hrd_parameters_present_flag is set to 1.
17005           One picture_timing() SEI messages shall be present in every access unit
17006           if CpbDpbDelaysPresentFlag is equal to 1 or pic_struct_present_flag is equal to 1
17007           https://bugzilla.gnome.org/show_bug.cgi?id=722734
17008           https://bugzilla.gnome.org/show_bug.cgi?id=751831
17009           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17010
17011 2015-07-01 14:16:50 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17012
17013         * gst/vaapi/gstvaapidecodebin.c:
17014           vaapidecodebin: notify if vpp is disabled
17015           When the system is aware that VPP is not available by the VA driver,
17016           it would be useful to notify to the user that the disable-vpp property
17017           has changed.
17018           https://bugzilla.gnome.org/show_bug.cgi?id=749554
17019
17020 2015-07-01 14:17:17 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17021
17022         * gst/vaapi/gstvaapidecodebin.c:
17023         * gst/vaapi/gstvaapidecodebin.h:
17024           vaapidecodebin: enable vpp if it is available
17025           Instead of creating and adding VPP into the bin at setup, we wait until
17026           we are sure the VA driver supports it. We know that when the VA video
17027           context is received by the bin. Afterwards, it is decided to instanciate
17028           and link the VPP or not.
17029           This is more efficient and safer than waiting the VPP to fail and then
17030           disable it.
17031           https://bugzilla.gnome.org/show_bug.cgi?id=749554
17032
17033 2015-07-02 12:29:32 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17034
17035         * tests/test-display.c:
17036         * tests/test-windows.c:
17037           tests: Fix compilation while enabling egl as the only renderer in build
17038           Include missing header files gstvaapidisplay_egl.h and gstvaapiwindow_egl.h.
17039
17040 2015-07-02 10:45:50 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17041
17042         * configure.ac:
17043           configure: fix the build while enabling egl as the only renderer
17044
17045 2015-07-02 10:25:25 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17046
17047         * configure.ac:
17048           libs: Bump library major version
17049
17050 2015-06-30 09:44:18 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17051
17052         * gst/vaapi/gstvaapi.c:
17053         * gst/vaapi/gstvaapidecodebin.c:
17054         * gst/vaapi/gstvaapiencode.c:
17055         * gst/vaapi/gstvaapiencode_jpeg.c:
17056         * gst/vaapi/gstvaapipluginbase.c:
17057         * gst/vaapi/gstvaapipluginutil.c:
17058         * gst/vaapi/gstvaapipostproc.c:
17059         * gst/vaapi/gstvaapivideobufferpool.c:
17060         * gst/vaapi/gstvaapivideocontext.c:
17061         * gst/vaapi/gstvaapivideomemory.c:
17062         * gst/vaapi/gstvaapivideometa.c:
17063           gst/vaapi: Switch to upstreram like indentation.
17064           gst-indent for all gst/vaapi/*.c source files
17065
17066 2015-06-30 09:35:37 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17067
17068         * gst/vaapi/gstvaapidecodebin.c:
17069         * gst/vaapi/gstvaapidecodebin.h:
17070           vaapidecodebin: Add property to disable VPP
17071           Adding a new propery "disable-vpp", enabling it will prevent
17072           the insertion of vaapipostproc child element.
17073           This is helpful in debugging, specifically to narrow-down the
17074           vaapidecodebin/vaapipostproc related negotiation issues.
17075           No support for run-time disabling for now.
17076           https://bugzilla.gnome.org/show_bug.cgi?id=745901
17077
17078 2015-06-29 13:35:59 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17079
17080         * gst/vaapi/gstvaapipostproc.c:
17081           vaapipostproc: Fix wrong selection of passthrough mode.
17082           The Current code path is falling back to passthorugh mode if there is no
17083           vpp property set by the user explictily. But we should not use the
17084           passthrough mode if the negotiated src pad caps have a differnt color space
17085           format than sink pad caps (Even though the user didn't set the format property
17086           explicitly).
17087           https://bugzilla.gnome.org/show_bug.cgi?id=748184
17088           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17089
17090 2015-06-29 13:20:28 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17091
17092         * gst/vaapi/gstvaapipostproc.c:
17093           vaapipostproc: prevent advanced-deinterlacing of non-native video formats.
17094           This is a workaround to deal with the va-intel-driver for non-native
17095           formats while doing advanced deinterlacing. The format of reference surfaces must
17096           be same as the format used by the driver internally for motion adaptive
17097           deinterlacing and motion compensated deinterlacing.
17098           A permanent solution could be to do the color space conversion internally
17099           for reference surfaces.
17100           https://bugzilla.gnome.org/show_bug.cgi?id=730925
17101           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17102
17103 2015-06-29 13:06:30 +0300  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17104
17105         * gst/vaapi/gstvaapisink.c:
17106           Work around ABBA deadlock between vaapisink and vaapipostproc
17107           vaapisink takes the display lock, then does a gst_buffer_replace which can
17108           take the lock on the gst_vaapi_video_pool.
17109           vaapipostproc asks the gst_vaapi_video_pool for a new surface. This takes
17110           the lock on the gst_vaapi_video_pool; if you're unlucky, there are no free
17111           surfaces, which means that gst_vaapi_surface_create is
17112           called. gst_vaapi_surface_create takes the display lock.
17113           If vaapisink and vaapipostproc are in different threads, and this happens,
17114           you get a deadlock. vaapisink holds the display lock, and wants the
17115           gst_vaapi_video_pool lock. vaapipostproc holds the gst_vaapi_video_pool lock
17116           and wants the display lock.
17117           Work around this by releasing the display lock in vaapisink around the
17118           gst_buffer_replace.
17119           https://bugzilla.gnome.org/show_bug.cgi?id=738249
17120           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
17121           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17122
17123 2015-04-29 16:34:07 +0200  Jacobo Aragunde Pérez <jaragunde@igalia.com>
17124
17125         * gst/vaapi/gstvaapidecodebin.c:
17126         * gst/vaapi/gstvaapidecodebin.h:
17127           vaapidecodebin: expose deinterlace-method property from inner vaapipostproc
17128           https://bugzilla.gnome.org/show_bug.cgi?id=745901
17129
17130 2015-05-19 11:24:10 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17131
17132         * gst/vaapi/gstvaapipostproc.c:
17133           vaapipostproc: log negotiated caps
17134
17135 2015-05-18 14:30:22 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17136
17137         * gst/vaapi/gstvaapipostproc.c:
17138           vaapipostproc: remove useless debug message
17139
17140 2015-02-12 12:31:57 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17141
17142         * gst/vaapi/gstvaapidecode.c:
17143           vaapidecode: log negotiated src/sink caps
17144
17145 2015-05-07 15:57:26 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17146
17147         * gst/vaapi/gstvaapisink.c:
17148           vaapisink: error handling if rendering fails
17149           This patch enhance the code path when an error is found when rendering a
17150           buffer.
17151           If the video meta doesn't contain a surface proxy or a surface, a warning
17152           message is printed.
17153           If the rendering backend fails, a error message is posted in the bus.
17154           https://bugzilla.gnome.org/show_bug.cgi?id=749382
17155
17156 2015-06-18 14:55:12 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17157
17158         * gst/vaapi/gstvaapisink.c:
17159           vaapisink: Fix the conditional pad template creation.
17160
17161 2015-06-18 13:19:26 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17162
17163         * tests/Makefile.am:
17164           build: Don't build simple-encoder test program if there is no VA Encoding support
17165           This will fix the build error against older VA-APIs <= 0.32
17166
17167 2015-06-18 12:20:37 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17168
17169         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
17170         * gst-libs/gst/vaapi/gstvaapicompat.h:
17171           Fix build error for older VA-API versions
17172           Provide guards for VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM and
17173           VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME which are only availble from
17174           VA >= 0.36.
17175
17176 2015-06-17 14:20:37 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17177
17178         * gst/vaapi/gstvaapisink.c:
17179           vaapisink: Fix the capsfeature advertisement in padtemplate
17180           This fixes the regression introduced in 64acc74.
17181           If a pad supports multiple set of capsfeatures, it needs to add
17182           multiple equal structures with different feature sets to the caps.
17183           Because caps structures with the same name but with a non-equal
17184           set of caps features are not compatible.
17185           Without this patch, playbin will autoplug xvimagesink instead of vaapisink.
17186           https://bugzilla.gnome.org/show_bug.cgi?id=750095
17187
17188 2015-06-17 12:41:28 +0300  Adrian Cox <adrian@humboldt.co.uk>
17189
17190         * gst/vaapi/gstvaapisink.c:
17191           vaapisink: Expose the overlay capability for compatibility with dvbsuboverlay.
17192           https://bugzilla.gnome.org/show_bug.cgi?id=750095
17193           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17194           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17195
17196 2015-06-17 09:53:29 +0300  Olivier Crete <olivier.crete@collabora.com>
17197
17198         * gst/vaapi/gstvaapipluginbase.c:
17199           vaapipluginbase: Override downstream allocation reply if no pool
17200           If the downstream replied without a pool, then override it.
17201           https://bugzilla.gnome.org/show_bug.cgi?id=748559
17202
17203 2015-06-09 15:15:31 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17204
17205         * gst/vaapi/gstvaapipostproc.c:
17206         * gst/vaapi/gstvaapipostproc.h:
17207           vaapipostproc: add color balance interface
17208           https://bugzilla.gnome.org/show_bug.cgi?id=720376
17209
17210 2015-05-22 18:13:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17211
17212         * gst-libs/gst/vaapi/gstvaapifilter.c:
17213         * gst-libs/gst/vaapi/gstvaapifilter.h:
17214         * gst/vaapi/gstvaapipostproc.c:
17215         * gst/vaapi/gstvaapipostproc.h:
17216           vaapipostproc: add skin tone enhancement
17217           Added the 'skin-tone-enhancement' property to vaapostproc.
17218           https://bugzilla.gnome.org/show_bug.cgi?id=744088
17219
17220 2015-05-20 18:02:37 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17221
17222         * docs/reference/libs/libs-docs.xml.in:
17223           doc: add VA-API reference in freedesktop
17224
17225 2015-06-04 19:03:44 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17226
17227         * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17228         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17229         * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17230           patches/videoparsers: rebase all the h264parse patches
17231           In order to avoid the creation of .orig files and break the distcheck target
17232
17233 2015-06-04 18:29:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17234
17235         * ext/libvpx/Makefile.am:
17236           build: don't build in parallel libvpx
17237           This fixes the distcheck -j XX target.
17238
17239 2015-06-02 08:52:53 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17240
17241         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
17242           encoder: jpeg: Fix the packed header generation
17243           This is a work-around to satisfy the va-intel-driver.
17244           Normalize the quality factor and scale QM values (only for packed header
17245           generation) similar to what VA-Intel driver is doing . Otherwise the
17246           generated packed headers will be wrong, since the driver itself is
17247           scaling the QM values using the normalized quality factor.
17248           https://bugzilla.gnome.org/show_bug.cgi?id=748335
17249           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17250
17251 2015-06-02 11:46:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17252
17253         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17254           decoder: h264: fix uninitialized variables in avcC mode.
17255           Fix uninitialized variables when decoding SPS and PPS NAL units from
17256           "codec-data" buffers. This is particularly important when seeking ops
17257           are involved, and the new persistent states are used more often.
17258           https://bugzilla.gnome.org/show_bug.cgi?id=750094
17259
17260 2015-06-01 18:39:18 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17261
17262         * gst/vaapi/gstvaapidecode.c:
17263           vaapidecode: remove unneeded casting
17264           And a code-style fix
17265
17266 2015-05-21 19:38:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17267
17268         * gst/vaapi/gstvaapidecode.c:
17269           vaapidecode: calculate decoding latency
17270           This is a naïve approach to the calculation of the VA-API decoding latency. It
17271           takes into consideration when the frame-rate has some insane value.
17272           https://bugzilla.gnome.org/show_bug.cgi?id=740419
17273
17274 2015-05-21 23:16:14 +1000  Jan Schmidt <jan@centricular.com>
17275
17276         * configure.ac:
17277           configure: Compiling against libgstgl requires libgstvideo
17278           Fix detection of the GstGL helper headers in uninstalled
17279           builds.
17280
17281 2015-05-28 10:52:48 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17282
17283         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17284           encoder: hevc: Fix the size over-flow for encoded buffer.
17285           The approximation of 6 times compression ratio migh not
17286           work in all cases. Especially when enabling I frames.
17287           Provide large enough size for coded-buffer creation.
17288
17289 2015-05-28 10:43:20 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17290
17291         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
17292           encoder: vp8: Fix the size over-flow for encoded buffer.
17293           The approximation of 4 times compression ratio will not
17294           work in all cases. Especially when enabling I frames.
17295           Provide large enough size for coded-buffer creation.
17296
17297 2015-05-28 05:43:49 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17298
17299         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17300           encoder: hevc:  fix bug in multi slice encoding.
17301           This is a work-around for satisfying the VA-Intel driver.
17302           The driver only support slices begin from CTU row start address.
17303           Multi-Slice encoding also requires a fix in va-intel-driver:
17304           http://lists.freedesktop.org/archives/libva/2015-May/003351.html
17305           https://bugzilla.gnome.org/show_bug.cgi?id=749854
17306           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17307
17308 2015-03-12 22:57:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17309
17310         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17311           decoder: h264: add initial support for loss of pictures.
17312           Implement decoding process for gaps in frame_num (8.5.2). This
17313           also somewhat supports unintentional loss of pictures.
17314           https://bugzilla.gnome.org/show_bug.cgi?id=745048
17315           https://bugzilla.gnome.org/show_bug.cgi?id=703921
17316           Original-patch-by: Wind Yuan <feng.yuan@intel.com>
17317           [fixed derivation of POC, ensured clone is valid for reference,
17318           actually fixed detection of gaps in FrameNum by PrevRefFrameNum]
17319           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17320
17321 2015-05-22 11:42:52 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17322
17323         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17324           decoder: h264: add support for missing first field.
17325           Try to identify missing first fields too, thus disregarding any
17326           intermediate gaps in frames. We also assume that we keep the same
17327           field sequence, i.e. if previous frames were in top-field-first
17328           (TFF) order, then so are subsequent frames.
17329           Note that insertion of dummy first fields need to operate in two
17330           steps: (i) create the original first field that the current field
17331           will inherit from, and (ii) submit that field into the DPB prior
17332           to initializing the current (other) field POC values but after any
17333           reference flag was set. i.e. copy reference flags from the child
17334           (other field) to the parent (first field).
17335           https://bugzilla.gnome.org/show_bug.cgi?id=745048
17336
17337 2015-05-07 14:00:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17338
17339         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17340           decoder: h264: add support for missing second field.
17341           Interlaced H.264 video frames always have two fields to decode and
17342           display. However, in some cases, e.g. packet loss, one of the field
17343           can be missing. This perturbs the reference picture marking process,
17344           whereby the number of references available in DPB no longer matches
17345           the expected value.
17346           This patch adds initial support for missing field within a decoded
17347           frame. The current strategy taken is to find out the nearest field,
17348           by POC value, and with the same parity.
17349           https://bugzilla.gnome.org/show_bug.cgi?id=745048
17350
17351 2015-05-22 17:06:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17352
17353         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17354           decoder: h264: improve tracking of "top-field-first" flag.
17355           Try to maintain a "top-field-first" (TFF) flag, even if the H.264 standard
17356           does not mandate it. This will be useful for tracking missing fields, and
17357           also for more correct _split_fields() implementation for frames in the DPB.
17358
17359 2015-05-05 11:56:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17360
17361         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17362           decoder: h264: skip all pictures prior the first I-frame.
17363           Don't try to decode pictures until the first I-frame is received within
17364           the currently active sequence. There is no point is decoding and then
17365           displaying frames with artifacts.
17366
17367 2015-05-12 15:36:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17368
17369         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17370           decoder: h264: fix processing of EOSEQ NAL.
17371           Fix decoding of end_of_seq() NAL unit so that to not submit the current
17372           picture for decoding again. This is pretty vintage code that dates back
17373           before the existing of the whole decoder units machinery.
17374           One issue that could be arising if that code was kept is that we could
17375           have submitted a picture, and subsequently a GstVideoCodec frame, twice.
17376           Once without the decode_only flag set, and once with that flag set. The
17377           end result is that the GstVideoDecoder would release the codec frame
17378           twice, thus releasing stale data.
17379           In short, the piece of code that is removed by this patch is for once
17380           completely obsolete for a while, and secondly error-prone in corner
17381           cases.
17382
17383 2013-02-28 15:26:36 +0800  Wind Yuan <feng.yuan@intel.com>
17384
17385         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
17386         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17387         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
17388         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
17389           decoder: add utility function to clone picture objects.
17390           https://bugzilla.gnome.org/show_bug.cgi?id=703921
17391           Signed-off-by: Wind Yuan <feng.yuan@intel.com>
17392           [added cosmetic changes, fixed propagation of "one-field" flag to
17393           children, fixed per-codec clone modes (h264)]
17394           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17395
17396 2015-05-27 23:49:18 +0300  Alban Browaeys <prahal@yahoo.com>
17397
17398         * gst/vaapi/Makefile.am:
17399           build: don't compile HEVC encoder if not supported
17400           Fix:
17401           (gst-plugin-scanner:16681): GStreamer-WARNING **: Failed to load plugin '/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so': /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstvaapi.so: undefined symbol: gst_vaapi_encoder_h265_get_default_properties
17402           https://bugzilla.gnome.org/show_bug.cgi?id=749954
17403           Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17404           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17405
17406 2015-05-27 23:43:16 +0300  Alban Browaeys <prahal@yahoo.com>
17407
17408         * gst-libs/gst/vaapi/gstvaapicompat.h:
17409         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17410           HEVC: decode: add missing va_dec_hevc header
17411           Signed-off-by: Alban Browaeys <prahal@yahoo.com>
17412           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17413           https://bugzilla.gnome.org/show_bug.cgi?id=749953
17414
17415 2015-05-26 13:28:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17416
17417         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17418           mpeg2: fix PTS cache for GOP start.
17419           If the GOP temporal sequence number (TSN) is interpolated from a valid
17420           PTS, then we need to compensate that PTS corresponding to the start of
17421           GOP with the next picture to be decoded, which shall be an I-frame,
17422           based on its sequence number.
17423           https://bugzilla.gnome.org/show_bug.cgi?id=748676
17424
17425 2015-05-27 10:49:56 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17426
17427         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17428           mpeg2: avoid crash when seeking with debug logs
17429           Move down the debug message when the state of the decoder is verified
17430           so the slice header is not NULL.
17431
17432 2014-12-17 00:41:10 +1100  Jan Schmidt <jan@centricular.com>
17433
17434         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17435           mpeg2: Avoid crashes and warnings on re-opened decoder after a seek
17436           Reset state and add some checks for safe state to avoid a crash and
17437           a warning after the decoder is destroyed/recreated during a seek.
17438
17439 2015-05-26 10:21:59 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17440
17441         * patches/videoparsers/0003-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17442         * patches/videoparsers/series.frag:
17443           patches/videoparsers: Rebase the patch on top of gst-vaapi-branch commit 20ee952
17444           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17445
17446 2015-05-26 10:03:20 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17447
17448         * ext/codecparsers:
17449           codecparsers: Update to gst-vaapi-branch commit 20ee952
17450           b7dded3: h264parse: don't consider unknown stream-format as avc
17451           5110ad9: h264parse: fix up handling of input caps corner cases
17452           e51db3e: h264parse: Remove dead code
17453           3d739d0: codecparser: h265: Fix the number of tile rows/columns parsing
17454           8482957: h265parse: Fix profile, tier and level setting in caps
17455           4649acb: h265parse: Fix the memory freeing of stored VPS nals
17456           f2beeb7: h265parse: Fix source caps to report cropped dimensions
17457           6886a31: h264parse: Fix profile and level setting in caps
17458           5286c1a: h264parse: Consider SEI NALU as "HEADER" packets
17459           eb97854: videoparsers: h264: bit-exact sync with upstream, minor changes here and there
17460           53074fc: build: Upgrade GStreamer dependency to 1.0
17461           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17462
17463 2015-05-26 06:01:10 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17464
17465         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17466           HEVC: decode: Replace clip3 implementation with glib CLAMP macro
17467           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17468
17469 2015-05-26 05:33:33 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17470
17471         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17472           HEVC: decode: Update Cropping Rectangle
17473           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17474
17475 2015-05-25 11:58:20 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17476
17477         * gst/vaapi/Makefile.am:
17478         * gst/vaapi/gstvaapi.c:
17479         * gst/vaapi/gstvaapiencode_h265.c:
17480         * gst/vaapi/gstvaapiencode_h265.h:
17481           HEVC_Encode: Add HEVC(h265) Encoder plugin
17482           https://bugzilla.gnome.org/show_bug.cgi?id=748874
17483           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17484
17485 2015-05-25 11:38:34 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17486
17487         * gst-libs/gst/vaapi/Makefile.am:
17488         * gst-libs/gst/vaapi/gstvaapiencoder_h265.c:
17489         * gst-libs/gst/vaapi/gstvaapiencoder_h265.h:
17490           HEVC_Encode: Add HEVC(h265) encoder to core libgstvaapi
17491           https://bugzilla.gnome.org/show_bug.cgi?id=748874
17492           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17493
17494 2015-05-25 11:26:14 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17495
17496         * configure.ac:
17497           HEVC_Encode: build: Check availability of VA APIs for H265 encoding.
17498           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17499           https://bugzilla.gnome.org/show_bug.cgi?id=748874
17500
17501 2015-05-25 10:58:52 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17502
17503         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
17504         * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
17505           gstvaapiutils_h265: Add H265 Tier specific utility functions
17506           -- New API: gst_vaapi_utils_h265_get_tier_from_string()
17507           -- New API: gst_vaapi_utils_h265_get_tier_string()
17508           https://bugzilla.gnome.org/show_bug.cgi?id=748874
17509           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17510
17511 2015-05-19 10:57:42 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17512
17513         * docs/reference/plugins/Makefile.am:
17514           doc: conditional linking for scanner
17515           Add x11 library only if it is enabled.
17516           https://bugzilla.gnome.org/show_bug.cgi?id=749018
17517
17518 2015-05-19 10:37:13 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17519
17520         * docs/reference/plugins/plugins.types:
17521           doc: fix scanner compilation warning
17522           https://bugzilla.gnome.org/show_bug.cgi?id=749018
17523
17524 2015-05-06 16:19:23 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17525
17526         * docs/reference/libs/libs-docs.xml.in:
17527         * docs/reference/libs/libs-sections.txt:
17528           doc: update sections and symbols
17529           https://bugzilla.gnome.org/show_bug.cgi?id=749018
17530
17531 2015-05-13 10:38:24 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17532
17533         * .gitignore:
17534         * Makefile.am:
17535         * debian.upstream/Makefile.am:
17536         * docs/Makefile.am:
17537         * docs/reference/Makefile.am:
17538         * docs/reference/libs/Makefile.am:
17539         * docs/reference/plugins/Makefile.am:
17540         * ext/Makefile.am:
17541         * ext/libvpx/Makefile.am:
17542         * git.mk:
17543         * gst-libs/Makefile.am:
17544         * gst-libs/gst/Makefile.am:
17545         * gst-libs/gst/base/Makefile.am:
17546         * gst-libs/gst/codecparsers/Makefile.am:
17547         * gst-libs/gst/vaapi/Makefile.am:
17548         * gst/Makefile.am:
17549         * gst/vaapi/Makefile.am:
17550         * patches/Makefile.am:
17551         * patches/videoparsers/Makefile.am:
17552         * pkgconfig/Makefile.am:
17553         * tests/Makefile.am:
17554           build: use git.mk
17555           This patch handles dinamically the gitignore files with git.mk[1].
17556           Removed the automake variable MAINTAINERCLANFILES in most of the
17557           Makefile.am files since now it is handled by the top one.
17558           1. https://github.com/behdad/git.mk/blob/master/git.mk
17559           https://bugzilla.gnome.org/show_bug.cgi?id=749321
17560
17561 2015-05-07 11:28:15 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17562
17563         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17564           wayland: sync() when destroy()
17565           Before pushing a the new frame, the render() method calls sync() to flush the
17566           pending frames. Nonetheless, the last pushed frame never gets rendered, leading
17567           to a memory leak too.
17568           This patch calls sync() in the destroy() to flush the pending frames before
17569           destroying the window.
17570           Also a is_cancelled flag is added. This flag tells to not flush the event
17571           queue again since the method failed previously or were cancelled by the user.
17572           https://bugzilla.gnome.org/show_bug.cgi?id=749078
17573
17574 2015-05-07 15:55:40 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
17575
17576         * gst-libs/gst/vaapi/gstvaapiwindow.c:
17577         * gst-libs/gst/vaapi/gstvaapiwindow.h:
17578         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17579         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17580         * gst/vaapi/gstvaapisink.c:
17581           vaapisink: implement unlock/unlock_stop for wayland
17582           Otherwise wl_display_dispatch_queue() might prevent the pipeline from
17583           shutting down. This can happen e.g. if the wayland compositor exits while
17584           the pipeline is running.
17585           Changes:
17586           * renamed unlock()/unlock_stop() to unblock()/unblock_cancel() in gstvaapiwindow
17587           * splitted the patch removing wl_display_dispatch_queue()
17588           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17589           https://bugzilla.gnome.org/show_bug.cgi?id=747492
17590           https://bugzilla.gnome.org/show_bug.cgi?id=749078
17591
17592 2015-05-07 12:33:34 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17593
17594         * configure.ac:
17595         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17596           wayland: wl_display_dispatch_queue() can block forever.
17597           wl_display_dispatch_queue() might prevent the pipeline from shutting
17598           down. This can happen e.g. if the wayland compositor exits while the
17599           pipeline is running.
17600           This patch replaces it with these steps:
17601           - With wl_display_prepare_read() all threads announce their intention
17602           to read.
17603           - wl_display_read_events() is thread save. On threads reads, the other
17604           wait for it to finish.
17605           - With wl_display_dispatch_queue_pending() each thread dispatches its
17606           own events.
17607           wl_display_dispatch_queue_pending() was defined since wayland 1.0.2
17608           Original-patch-by: Michael Olbrich <m.olbrich@pengutronix.de>
17609           * stripped out the unlock() unlock_stop() logic
17610           * stripped out the poll handling
17611           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17612           https://bugzilla.gnome.org/show_bug.cgi?id=749078
17613           https://bugzilla.gnome.org/show_bug.cgi?id=747492
17614
17615 2015-05-07 18:30:33 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17616
17617         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17618           wayland: rename frame for last_frame
17619           Since frame in the private data means the last frame sent, it would
17620           semantically better use last_frame.
17621           Also, this patch makes use of g_atomic_pointer_{compare_and_exchange, set}()
17622           functions.
17623           https://bugzilla.gnome.org/show_bug.cgi?id=749078
17624
17625 2015-05-07 11:18:12 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17626
17627         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17628           wayland: use a counter as sync flag
17629           Wayland window has a pointer to the last pushed frame and use it to set the
17630           flag for stopping the queue dispatch loop. This may lead to memory leaks,
17631           since we are not keeping track of all the queued frames structures.
17632           This patch removes the last pushed frame pointer and change the binary flag
17633           for an atomic counter, keeping track of number of queued frames and use it for
17634           the queue dispatch loop.
17635           https://bugzilla.gnome.org/show_bug.cgi?id=749078
17636
17637 2015-05-07 10:36:17 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17638
17639         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17640           wayland: decouple wl_buffer from frame
17641           This patch takes out the wayland's buffer from the the frame structure. The
17642           buffer is queued to wayland and destroyed in the "release" callback. The
17643           frame is freed in the surface's "done" callback.
17644           In this way a buffer may be leaked but not the whole frame structure.
17645           - surface 'done' callback is used to throttle the rendering operation and to
17646           unallocate the frame, but not the buffer.
17647           - buffer 'release' callback is used to destroy wl_buffer.
17648           Original-patch-by: Zhao Halley <halley.zhao@intel.com>
17649           * code rebase
17650           * kept the the event_queue for buffer's proxy
17651           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17652           https://bugzilla.gnome.org/show_bug.cgi?id=749078
17653
17654 2015-05-14 16:22:36 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17655
17656         * gst/vaapi/gstvaapisink.c:
17657           vaapisink: fix indentation
17658
17659 2015-05-13 11:54:01 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17660
17661         * debian.upstream/Makefile.am:
17662         * ext/libvpx/Makefile.am:
17663         * gst-libs/gst/vaapi/Makefile.am:
17664         * gst/vaapi/Makefile.am:
17665         * tests/Makefile.am:
17666           build: fix make distcheck
17667           This patch fixes several issues found when running the `make distcheck`
17668           target:
17669           - In commit c561b8da, the update of gstcompat.h in Makefile.am was
17670           forgotten.
17671           - In commit c5756a91 add the simple_encoder_source_h in EXTRA_DIST was
17672           forgotten.
17673           - vpx.build.stamp is not generated at all, only vpx.configure.stamp.
17674           - The make target distcleancheck failed because some autogenerated files
17675           were not handled with the DISTCLEANFILES variable.
17676           Note: `make distcheck -jXX` is not currently supported.
17677
17678 2015-05-13 13:28:17 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17679
17680         * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
17681         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
17682         * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
17683           h264parse: update patches with upstream
17684           These patches didn't applied cleanly, breaking the `make distcleancheck`
17685           target. Re-sync'ed the patches against the current git's submodule.
17686
17687 2015-05-12 16:04:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17688
17689         * tests/simple-encoder.c:
17690           tests: simple-encoder: fix build warnings on 64-bit platforms.
17691           Add a cosmetic change to replace VAAPI buffer with VA buffer and most
17692           importantly fix warnings spitted out during build on 64-bit platforms.
17693           ../../tests/simple-encoder.c:211:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17694           g_warning ("Invalid VAAPI buffer size (%d)", size);
17695           ^
17696           ../../tests/simple-encoder.c:217:5: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘gssize’ [-Wformat=]
17697           g_warning ("Failed to create output buffer of size %d", size);
17698           ^
17699
17700 2015-05-08 15:54:09 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17701
17702         * gst/vaapi/gstvaapipluginbase.c:
17703         * gst/vaapi/gstvaapipluginutil.c:
17704         * gst/vaapi/gstvaapipluginutil.h:
17705         * gst/vaapi/gstvaapivideocontext.h:
17706           plugins: remove gstreamer-0.10 crumbs
17707           GstVideoContext was used in gstreamer-0.10, which is not supported anymore.
17708           Still, its definition was still in the code. This patch removes it.
17709           https://bugzilla.gnome.org/show_bug.cgi?id=749113
17710
17711 2015-05-05 13:08:25 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17712
17713         * tests/Makefile.am:
17714         * tests/simple-encoder.c:
17715         * tests/y4mreader.c:
17716         * tests/y4mreader.h:
17717           tests: add simple-encoder program
17718           This patch adds a simple-encoder test program that uses libgstvaapi for video
17719           encoding to elementary (raw) streams. Input stream is raw YUV in the Y4M
17720           format. That can be from a regular file or standard input when the input
17721           filename is "-".
17722           Usage: simple-encoder [options]* <source>
17723           Options:
17724           --output|-o     output file name
17725           --codec|-c      codec to use for video encoding
17726           --bitrate|-b    desired bitrate (kbps)
17727           By default, and as an initial patch, the encoded stream shall conform to the
17728           minimally supported profile. That is "Constrained Baseline Profile" for H.264
17729           and "Simple Profile" for MPEG-2. Though, those are the defaults to be
17730           generated by libgstvaapi.
17731           You can find Y4M sample files here http://samples.mplayerhq.hu/yuv4mpeg2/
17732           Original-patch-by: Changzhi Wei <changzhix.wei@intel.com>
17733           * general code clean-up
17734           * removed the yuv reader thread
17735           * re-wrote the y4m file parser
17736           * updated used API fixed some wrong usage
17737           * fixed a lot of memory leaks
17738           * added the bitrate setting
17739           * keep fps' numerator and denominator
17740           * simplified the thread control
17741           * removed custom logging and use glib
17742           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17743           https://bugzilla.gnome.org/show_bug.cgi?id=719528
17744
17745 2015-05-05 13:02:19 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17746
17747         * gst-libs/gst/vaapi/gstvaapiencoder.h:
17748           libs: trivial documentation fix
17749           GST_VAAPI_ENCODER_STATUS_NO_SURFACE and GST_VAAPI_ENCODER_STATUS_NO_BUFFER
17750           are not errors, so they do not have the ERROR namespace.
17751           This patch fixes this typo in documentation.
17752
17753 2015-02-15 15:01:03 +0000  Simon Farnsworth <simon@farnz.org.uk>
17754
17755         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
17756           window: Correct prototype to match implementation
17757           On s390x, guintptr and GstVaapiID are not compatible types. The
17758           implementation of gst_vaapi_window_new_internal() and all its callers
17759           seem to assume that its third argument is a GstVaapiID, while the
17760           header gives it guintptr type.
17761           https://bugzilla.gnome.org/show_bug.cgi?id=744559
17762
17763 2015-05-04 14:24:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17764
17765         * gst/vaapi/gstvaapidecode.c:
17766         * gst/vaapi/gstvaapidecodebin.c:
17767           vaapidecode: add guards for disabled codecs.
17768           Fix link when building plugin elements without HEVC support. e.g. don't
17769           try to call into gst_vaapi_decoder_h265_set_alignment() if there is no
17770           support HEVC enabled in libgstvaapi.
17771           Also, drop disabled codecs from static template caps. Add the missing
17772           HEVC static template caps into vaapidecodebin too.
17773
17774 2015-04-30 13:29:48 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17775
17776         * configure.ac:
17777         * gst-libs/gst/vaapi/glibcompat.h:
17778           build: upgrade glib dependency to 2.32
17779           Since bug #745728 was fixed the oldest supported version of GStreamer is
17780           1.2. That GStreamer release requires glib 2.32, so we can upgrade our
17781           requirement too.
17782           This patch changes the required version of glib in configure.ac and removes
17783           the hacks in glibcompat.h
17784           https://bugzilla.gnome.org/show_bug.cgi?id=748698
17785
17786 2015-04-30 13:21:08 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17787
17788         * gst/vaapi/gstvaapipluginbase.c:
17789           plugins: check if the pool config is already set
17790           In commit 97b768, a regression for GStreamer 1.2 was introduced:
17791           GStreamer 1.2 doesn't check, in gst_buffer_pool_set_config() if the
17792           config option is already set. This patch adds an inline function to
17793           first verify if the option is not in the pool config berfore add it.
17794
17795 2015-04-29 12:39:50 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17796
17797         * gst/vaapi/gstvaapipostproc.c:
17798           vaapipostproc: tune up a couple of log messages
17799           In order to reduce the noise, the query type log was downgrade from INFO to
17800           DEBUG, and the shared display address log message is assigned to the object.
17801
17802 2015-04-29 12:27:43 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17803
17804         * gst/vaapi/gstvaapipluginbase.c:
17805           plugins: check gst_buffer_pool_set_config()
17806           Check the return value of gst_buffer_pool_set_config(). If it fails an error
17807           message is posted in the bus.
17808
17809 2015-04-29 12:24:52 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17810
17811         * gst/vaapi/gstvaapipluginbase.c:
17812           plugins: more specific log message
17813           Be more specific in the log message about the reason of creating a new pool.
17814
17815 2015-04-29 12:22:29 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17816
17817         * gst/vaapi/gstvaapipluginbase.c:
17818           plugins: delete unused variable
17819           need_pool is a boolean variable extracted from the allocation query, but it is
17820           not used afterwards.
17821
17822 2015-04-27 19:21:12 -0400  Olivier Crete <olivier.crete@collabora.com>
17823
17824         * gst/vaapi/gstvaapipluginbase.c:
17825           vaapipluginbase: Update the pool if there was no pool in the downstream reply
17826           Fix regression introduced by bd866479, the query after decide_allocation()
17827           always needs a pool in the first slot.
17828           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
17829           https://bugzilla.gnome.org/show_bug.cgi?id=748559
17830
17831 2015-04-27 20:50:19 -0400  Olivier Crete <olivier.crete@collabora.com>
17832
17833         * gst/vaapi/gstvaapivideobufferpool.c:
17834           videopool: Free members before chaining up finalize
17835           The finalize function in GObject frees the object memory, so
17836           everything else needs to have been freed before.
17837           https://bugzilla.gnome.org/show_bug.cgi?id=748563
17838
17839 2015-04-27 20:31:50 -0400  Olivier Crete <olivier.crete@collabora.com>
17840
17841         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
17842           wayland: don't leak the registry proxy
17843           Release the registry proxy when closing the display.
17844           https://bugzilla.gnome.org/show_bug.cgi?id=748564
17845
17846 2015-04-21 17:17:06 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17847
17848         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17849           wayland: refactor _sync() method and rename callback
17850           This patch only intends to improve readability: in the method
17851           gst_vaapi_window_wayland_sync() the if/do instructions are squashed into a
17852           single while loop.
17853           Also renames the frame_redraw_callback() callback into frame_done_callback(),
17854           which is a bit more aligned to Wayland API.
17855
17856 2015-02-03 16:52:06 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
17857
17858         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
17859           wayland: free frame in buffer release callback
17860           The Wayland compositor may still use the buffer when the frame done
17861           callback is called.
17862           This patch destroys the frame (which contains the buffer) until the
17863           release callback is called. The draw termination callback only controls
17864           the display queue dispatching.
17865           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17866           https://bugzilla.gnome.org/show_bug.cgi?id=747492
17867
17868 2015-04-21 10:00:36 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17869
17870         * gst/vaapi/gstvaapidecode.c:
17871           vaapidecode: refactor gst_vaapidecode_internal_flush()
17872           This a cosmetic refactor: gst_vaapidecode_internal_flush() removes its only
17873           label; gst_vaapidecode_finish() is more readable and gst_vaapidecode_purge()
17874           shares the same error message of gst_vaapidecode_internal_flush() when flush
17875           fails.
17876
17877 2015-04-20 13:27:27 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17878
17879         * gst/vaapi/gstvaapidecode.c:
17880           vaapidecode: refactor gst_vaapidecode_destroy()
17881           Add the method gst_vaapidecode_purge(). This method releases the
17882           flushed frames from the decoder.
17883           This new method add more readablity to gst_vaapidecode_destroy()
17884
17885 2015-04-16 12:53:18 -0400  Olivier Crete <olivier.crete@collabora.com>
17886
17887         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
17888         * gst/vaapi/gstvaapidecode.c:
17889           vaapidecode: Tell the base class about released frames on close
17890           The base class needs to be informed about frames that were still queued
17891           in the decoder on release, otherwise they are leaked.
17892           https://bugzilla.gnome.org/show_bug.cgi?id=747999
17893
17894 2015-04-19 11:19:03 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
17895
17896         * gst/vaapi/gstvaapidecode.c:
17897           vaapidecode: reduce logging noise
17898           When a frame is rejected by downstream, the message is logged twice. This
17899           patch removes one of those logging messages.
17900           Also, the reject of a frame doesn't mean an alarming error. This patch demotes
17901           the log message from error to info.
17902
17903 2015-04-16 20:18:13 -0400  Olivier Crete <olivier.crete@collabora.com>
17904
17905         * gst/vaapi/gstvaapidecode.c:
17906           vaapidecode: Use the GstVideoDecoder error reporting function
17907           This way, the decoder won't stop on the first decoding error,
17908           in most cases it can recover after some glitchiness.
17909           https://bugzilla.gnome.org/show_bug.cgi?id=744620
17910
17911 2015-04-17 19:10:35 +0000  Olivier Crete <olivier.crete@collabora.com>
17912
17913         * gst/vaapi/gstvaapipluginbase.c:
17914           vaapipluginbase: The allocation query can return without a pool
17915           It is possible to return the min/max/size without actually providing
17916           a pool. This way the source knows how many buffers downstream needs.
17917           https://bugzilla.gnome.org/show_bug.cgi?id=748076
17918
17919 2015-04-17 16:45:22 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17920
17921         * ext/Makefile.am:
17922         * gst/vaapi/Makefile.am:
17923         * gst/vaapi/gstvaapiparse.c:
17924         * gst/vaapi/gstvaapiparse.h:
17925         * patches/videoparsers/0001-h265parse-include-gstvaapiparse.h.patch:
17926         * patches/videoparsers/series.frag:
17927           plugins: Add h265 videoparser element "vaapiparse_h265"
17928           This is a mirror of h265parse element in upstream gst-plugins-bad.
17929           There could be additional patches but all should go to upstream.
17930           This is for making development faster.
17931           Note: vaapiparse_h265 will get build only for GStreamer version >= 1.4
17932
17933 2015-04-17 15:44:04 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17934
17935         * ext/codecparsers:
17936           codecparsers: Update to gst-vaapi-branch commit 43a0368
17937           45f1c28: codecparser: h265: Fix nal unit size checking
17938           f25987b: codecparser: h265: Calculate crop rectangle dimensions
17939           639573a: codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
17940           4c8ec41: Add h265 videoparser plugin source files
17941
17942 2015-04-17 10:10:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17943
17944         * autogen.sh:
17945           autogen: drop videoutils submodule.
17946
17947 2015-04-17 10:36:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
17948
17949         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17950           decoder: hevc: cosmetics.
17951           Mostly coding style updates. Avoid integer signess inconsistencies.
17952           Optimize dpb_find_lowest_poc() to align with original h264's decoder.
17953
17954 2015-04-16 14:13:59 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17955
17956         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17957           decoder: hevc: Add Support for tiled video decoding
17958           Based up on the value of uniform_spacing_flag in Picture Parameter Set,
17959           the tile column width and tile row height should be calculated.
17960           Equations: 6-1, 6-2
17961           Tiled video Descriptions: 7.3.2.3, 7.4.3.3
17962
17963 2015-04-16 14:13:21 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
17964
17965         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
17966           decoder: hevc: Fix decoding when there are RASL pictures present.
17967           -- Set NoRaslOutputFlag based on EOS and EOB Nal units
17968           -- Fix PicOutputFlag setting for RASL picture
17969           -- Fix prev_poc_lsb/prev_poc_msb calculation
17970           -- Drop the RASL frames if NoRaslOutputFlag is TRUE for the associated IRAP picture
17971           -- Fixed couple of crashes and added cosmetics
17972
17973 2015-04-14 10:54:54 +0100  Martin Sherburn <martin.sherburn@datapath.co.uk>
17974
17975         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
17976           display: drm: fix race condition setting device type
17977           There is a race condition where g_drm_device_type can be left set to
17978           DRM_DEVICE_RENDERNODES when it shouldn't.
17979           If thread 1 comes in and falls into the last else statement setting up both
17980           RENDERNODES and LEGACY types. And begins to process the first type (RENDERNODES),
17981           it sets g_drm_device_type = RENDERNODES.
17982           Now when thread 2 comes in and sees g_drm_device_type is RENDERNODES, it queues
17983           up that type to be tried but then encounters the lock and has to wait until the
17984           first thread finishes. Once the lock is acquired it will then proceed to ONLY try
17985           RENDERNODES and fail it. But it doesn't try LEGACY. And from then on, all future
17986           attempts will only try RENDERNODES.
17987           So to avoid this situation I have simply moved the acquisition of the lock higher
17988           up in the attached patch.
17989           https://bugzilla.gnome.org/show_bug.cgi?id=747914
17990
17991 2015-04-15 15:26:12 -0400  Olivier Crete <olivier.crete@collabora.com>
17992
17993         * gst/vaapi/gstvaapipostproc.c:
17994           vaapipostproc: Don't create filter on caps query
17995           The problem with this is that creating the filter causes the display to
17996           be selected, and the caps query happens while linking the element. So,
17997           if the downstream or upstream element is using a specific display
17998           object, it won't be propagated correctly to the postproc as it already
17999           has a display at this point.
18000           https://bugzilla.gnome.org/show_bug.cgi?id=747945
18001
18002 2015-04-15 15:20:17 -0400  Olivier Crete <olivier.crete@collabora.com>
18003
18004         * gst-libs/gst/vaapi/gstvaapivideopool.c:
18005           videopool: Release lock while allocating new object
18006           The video pool can be accessed with the display lock held, for example,
18007           when releasing a buffer from inside vaapisink_render, but allocating
18008           a new object can may also take the display lock. Which means a possible
18009           deadlock.
18010           https://bugzilla.gnome.org/show_bug.cgi?id=747944
18011
18012 2015-04-15 17:26:43 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18013
18014         * gst/vaapi/gstvaapisink.c:
18015           vaapisink: use GstVideoSink vmethod show_frame()
18016           vaapisink inherits from GstVideoSink, in order to use its functionality (such
18017           as ::show-preroll-frame property), we should use its vmethod show_frame(),
18018           rather than call ourselves render() and preroll().
18019
18020 2015-04-15 18:16:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18021
18022         * gst/vaapi/gstvaapisink.c:
18023         * gst/vaapi/gstvaapisink.h:
18024           vaapisink: add 'handoff' signal
18025           This patch adds the signal ::handoff and the property signal-handoffs. If the
18026           property is set TRUE, the signal ::handoff is emitted just after the buffer is
18027           rendered.
18028           Based on Zhao Halley <halley.zhao@intel.com>
18029           https://bugzilla.gnome.org/show_bug.cgi?id=747905
18030
18031 2015-04-14 10:17:16 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18032
18033         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18034           HEVC: silence the compiler
18035           Fixed a couple of clang complains.
18036
18037 2015-02-02 16:42:43 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
18038
18039         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
18040           wayland: destroy vpp buffer pool on resize
18041           Otherwise the old buffers with the old size are used.
18042           https://bugzilla.gnome.org/show_bug.cgi?id=747491
18043
18044 2015-04-14 10:08:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18045
18046         * configure.ac:
18047         * gst-libs/gst/vaapi/Makefile.am:
18048           build: don't compile HEVC if not supported
18049           HEVC decoding was added recently libva-1.5.
18050           This patch avoids HEVC decoding support in libgstvaapi if it is not available
18051           in the installed libva.
18052           https://bugzilla.gnome.org/show_bug.cgi?id=747831
18053
18054 2015-04-13 16:04:59 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18055
18056         * gst/vaapi/gstvaapidecode.c:
18057           vaapidecode: Update Author name in plugin metadata
18058
18059 2015-04-13 15:43:30 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18060
18061         * gst/vaapi/gstvaapidecode.c:
18062           plugins: Add HEVC decoder
18063           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18064
18065 2015-04-13 15:41:45 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18066
18067         * gst-libs/gst/vaapi/Makefile.am:
18068         * gst-libs/gst/vaapi/gstvaapidecoder_h265.c:
18069         * gst-libs/gst/vaapi/gstvaapidecoder_h265.h:
18070           HEVC: Add HEVC(h265) decoder to core libgstvaapi
18071           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18072
18073 2015-04-13 14:53:46 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18074
18075         * gst-libs/gst/vaapi/Makefile.am:
18076         * gst-libs/gst/vaapi/gstvaapiutils_h265.c:
18077         * gst-libs/gst/vaapi/gstvaapiutils_h265.h:
18078         * gst-libs/gst/vaapi/gstvaapiutils_h265_priv.h:
18079           HEVC: Add codec utility methods to core libgstvaapi
18080           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18081
18082 2015-04-13 14:52:53 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18083
18084         * gst-libs/gst/vaapi/gstvaapiprofile.c:
18085         * gst-libs/gst/vaapi/gstvaapiprofile.h:
18086           HEVC: gstvaapiprofile: Add profile definitions
18087           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18088
18089 2015-04-13 14:52:14 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18090
18091         * configure.ac:
18092           HEVC: build: Check availability of h265 decoder APIs
18093           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18094
18095 2015-04-13 14:51:51 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18096
18097         * configure.ac:
18098         * ext/Makefile.am:
18099         * gst-libs/gst/codecparsers/Makefile.am:
18100           HEVC: Allow to build h265 codecparser internally
18101           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18102
18103 2015-04-08 18:05:20 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18104
18105         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18106         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
18107         * gst-libs/gst/vaapi/gstvaapisurface.c:
18108           guard buffer export API if not available
18109           The support for buffer exports in VA-API was added in version 0.36. These
18110           interfaces are for interop with EGL, OpenCL, etc.
18111           GStreamer-VAAPI uses it for a dmabuf memory allocator. Though, gstreamer-vaapi
18112           has to support VA-API versions ranging from 0.30.4, which doesn't support it.
18113           This patch guards all the buffer exports handling (and dmabuf allocator) if
18114           the detected VA-API version is below 0.36.
18115           https://bugzilla.gnome.org/show_bug.cgi?id=746405
18116
18117 2015-04-13 11:29:35 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18118
18119         * ext/codecparsers:
18120           codecparsers: Update to gst-vaapi-branch commit 9bc72b0
18121           767bf22: codecparsers: h265: add helpers to convert quantization matrices
18122           71c8e93: codecparser: h265: skip byte alignment bits while parsing slice header
18123           3bf0355: codecparsre: h265: Fix the NumDeltaPocs calculation
18124           10e2087: codecparser: h265: Fix the NumPocTotalCurr calculatio
18125           2d753b8: codecparser: h265: Fix nal size calculation for EOS and EOB
18126
18127 2014-12-11 12:02:38 +0100  Michael Olbrich <m.olbrich@pengutronix.de>
18128
18129         * gst/vaapi/gstvaapidecode.c:
18130           vaapidecode: unref video codec frame twice
18131           We get one reference when the frame is passed to decode_handle_frame()
18132           and create another one in gst_vaapi_decoder_push_frame().
18133           Usually the frame is handled in gst_vaapidecode_push_decoded_frame().
18134           Here the frame is always released twice:
18135           gst_video_decoder_finish_frame() + gst_video_codec_frame_unref() or
18136           gst_video_decoder_drop_frame() + gst_video_codec_frame_unref().
18137           In gst_vaapidecode_reset_full() both references to the frame must be
18138           released as well.
18139           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18140           https://bugzilla.gnome.org/show_bug.cgi?id=743226
18141
18142 2015-04-08 18:20:34 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18143
18144         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
18145           libs: remove unused variables
18146           clang reports these unused variables. Let's get rid of them.
18147           This patch is a missing part of commit c82e5173
18148           https://bugzilla.gnome.org/show_bug.cgi?id=747312
18149
18150 2015-04-03 20:38:07 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18151
18152         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18153           decoder: mpeg4: remove an spurious comparison
18154           The member size in GstMpeg4Packet is gsize which is unsigned, which cannot be
18155           less than zero. Hence this pre-condition test is a no-op. This patch removes
18156           that code.
18157           https://bugzilla.gnome.org/show_bug.cgi?id=747312
18158
18159 2015-04-03 20:33:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18160
18161         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18162           encoder: h264: casts slice_param->slice_type
18163           slice_type in slice_param is defined as (char *), but it is compared against a
18164           signed integer. clang complains about this comparison.
18165           This patch casts the variable.
18166           https://bugzilla.gnome.org/show_bug.cgi?id=747312
18167
18168 2015-04-03 20:31:47 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18169
18170         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
18171           encoder: avoid GstVaapiCodedBuffer redefinition
18172           The symbol GstVaapiCodedBuffer is already defined in
18173           gst-libs/gst/vaapi/gstvaapicodedbuffer.h which is loaded, at the end, by
18174           gstvaapiencoder_objects.h. Clang complains about the symbol re-definition.
18175           This patch removes that redefinition.
18176           https://bugzilla.gnome.org/show_bug.cgi?id=747312
18177
18178 2015-04-03 20:28:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18179
18180         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18181         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
18182           libs: remove unused variables
18183           clang reports these unused variables. Let's get rid of them.
18184           https://bugzilla.gnome.org/show_bug.cgi?id=747312
18185
18186 2015-04-03 20:27:24 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18187
18188         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
18189           encoder: mpeg2: use fabsf() instead of abs()
18190           The member value in frame_rate_tab is float, the result of the abs() function
18191           should be float too. But abs() only manages integers.
18192           This patch replaces abs() with fabsf() to handle correctly the possible floats
18193           values.
18194           https://bugzilla.gnome.org/show_bug.cgi?id=747312
18195
18196 2015-04-03 20:02:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18197
18198         * gst-libs/gst/vaapi/gstvaapidecoder.c:
18199         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18200         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
18201         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
18202         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
18203           decoder: cast GST_VAAPI_DECODER_STATUS_DROP_FRAME
18204           Since GST_VAAPI_DECODER_STATUS_DROP_FRAME is not part of the enum
18205           GstVaapiDecoderStatus, we need to cast it to avoid compiler complains.
18206           https://bugzilla.gnome.org/show_bug.cgi?id=747312
18207
18208 2015-04-04 00:40:29 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18209
18210         * README:
18211           Update README
18212
18213 2015-04-04 00:06:56 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18214
18215         * .gitmodules:
18216         * README:
18217           Changing source code download links from https://gitorious  to https://github
18218           -- gitmodules: Change gstreamer-codecparsers submodule source download link
18219           -- README: Change the gstreamer-vaapi webpage link
18220
18221 2015-04-03 23:30:24 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18222
18223         * ext/codecparsers:
18224           codecparsers: update to gst-vaapi-branch commit 1f792e4
18225           87f4a7e: bytereader: add gst_byte_reader_peek_sub_reader() and _get_sub_reader()
18226           7d8ba7a: bytereader: use unchecked inline variant for get_remaining in more places
18227           2528ea6: bytereader: add gst_byte_reader_masked_scan_uint32_peek
18228           2b92a67: h264parse: reset the parser information when caps changes
18229           05eee86: codecparsers: Indent file
18230           e27a38b: codecparsers: Add READ_UE_MAX macro
18231           2036471: Constify some static arrays everywhere
18232
18233 2015-04-03 17:45:08 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18234
18235         * gst/vaapi/gstvaapivideoconverter_glx.c:
18236         * gst/vaapi/gstvaapivideoconverter_x11.c:
18237           Remove the gstvaapivideoconverter_*.c source files missed in commit 51b1e4a
18238
18239 2015-04-03 17:09:08 +0300  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18240
18241         * gst/vaapi/gstvaapidecode.c:
18242         * gst/vaapi/gstvaapidecodebin.c:
18243         * gst/vaapi/gstvaapiencode_h264.c:
18244         * gst/vaapi/gstvaapiencode_jpeg.c:
18245         * gst/vaapi/gstvaapiencode_mpeg2.c:
18246         * gst/vaapi/gstvaapiencode_vp8.c:
18247         * gst/vaapi/gstvaapipluginbase.c:
18248         * gst/vaapi/gstvaapipluginutil.c:
18249         * gst/vaapi/gstvaapipluginutil.h:
18250         * gst/vaapi/gstvaapipostproc.c:
18251         * gst/vaapi/gstvaapisink.c:
18252         * gst/vaapi/gstvaapivideobuffer.c:
18253         * gst/vaapi/gstvaapivideobufferpool.c:
18254         * gst/vaapi/gstvaapivideocontext.c:
18255         * gst/vaapi/gstvaapivideocontext.h:
18256         * gst/vaapi/gstvaapivideoconverter_glx.h:
18257         * gst/vaapi/gstvaapivideoconverter_x11.h:
18258         * gst/vaapi/gstvaapivideomemory.h:
18259         * gst/vaapi/gstvaapivideometa_texture.c:
18260           Removal of gstreamer-1.0 support
18261           The support for GStreamer 1.0 has been obsoleted in 0.5.10 release.
18262           GStreamer 1.2 is the a minimal requirement for building the gstreamer-vaapi.
18263           This patch removes all the pre-processor conditional code compilation guarded
18264           for gstreamer-1.0.
18265           Thus, all the video converters were removed too.
18266           https://bugzilla.gnome.org/show_bug.cgi?id=745728
18267           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18268           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18269
18270 2015-04-03 17:08:30 +0300  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18271
18272         * gst-libs/gst/vaapi/gstcompat.h:
18273         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18274         * gst-libs/gst/vaapi/gstvaapiprofile.c:
18275         * gst-libs/gst/vaapi/sysdeps.h:
18276         * gst/vaapi/gstcompat.h:
18277         * gst/vaapi/gstvaapi.c:
18278         * gst/vaapi/gstvaapidecode.c:
18279         * gst/vaapi/gstvaapidecodebin.c:
18280         * gst/vaapi/gstvaapiencode.c:
18281         * gst/vaapi/gstvaapiencode_h264.c:
18282         * gst/vaapi/gstvaapiencode_jpeg.c:
18283         * gst/vaapi/gstvaapiencode_mpeg2.c:
18284         * gst/vaapi/gstvaapiencode_vp8.c:
18285         * gst/vaapi/gstvaapiparse.c:
18286         * gst/vaapi/gstvaapipluginbase.c:
18287         * gst/vaapi/gstvaapipluginutil.c:
18288         * gst/vaapi/gstvaapipostproc.c:
18289         * gst/vaapi/gstvaapisink.c:
18290         * gst/vaapi/gstvaapiuploader.c:
18291         * gst/vaapi/gstvaapivideobuffer.c:
18292         * gst/vaapi/gstvaapivideobufferpool.c:
18293         * gst/vaapi/gstvaapivideocontext.c:
18294         * gst/vaapi/gstvaapivideoconverter_glx.c:
18295         * gst/vaapi/gstvaapivideoconverter_x11.c:
18296         * gst/vaapi/gstvaapivideomemory.c:
18297         * gst/vaapi/gstvaapivideometa.c:
18298         * gst/vaapi/gstvaapivideometa_texture.c:
18299         * tests/codec.c:
18300           update and move gstcompat.h
18301           The purpose of gstcompat.h is to couple the API differences among
18302           gstreamer-1.0 and gstreamer-0.10. Since gstreamer-0.10 is obsolete, the code
18303           in this compatibility layer shall be removed.
18304           Nevertheless, the gstcompat.h header should be kept, if new incompatibilites
18305           appear in the future, but it shall live in gst/vaapi, not in gst-libs.
18306           This patch removes the crumbs defined gstcompat.h and moves it to gst/vaapi.
18307           In order to avoid layer violations, gstcompat.h includes sysdeps.h and all
18308           the includes in gst/vaapi of sysdeps.h are replaced with gstcompat.h
18309           https://bugzilla.gnome.org/show_bug.cgi?id=745728
18310           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18311           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18312
18313 2015-04-03 17:05:45 +0300  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18314
18315         * configure.ac:
18316         * gst/vaapi/Makefile.am:
18317           autotools: remove gstreamer-1.0 support
18318           This patch only removes the support of gstreamer-1.0 in the autotools
18319           scripts. No other files are touched.
18320           In the automake file all the converters were deprecated.
18321           https://bugzilla.gnome.org/show_bug.cgi?id=745728
18322           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18323           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18324
18325 2015-04-03 17:03:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18326
18327         * .gitmodules:
18328         * ext/Makefile.am:
18329         * ext/videoutils:
18330           Remove the gstreamer-videoutils submodule
18331
18332 2015-04-03 17:01:45 +0300  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18333
18334         * configure.ac:
18335         * gst-libs/gst/Makefile.am:
18336         * gst-libs/gst/vaapi/Makefile.am:
18337         * gst-libs/gst/video/Makefile.am:
18338         * gst/vaapi/Makefile.am:
18339         * tests/Makefile.am:
18340           Remove libgstvaapi-videoutils.so
18341           This library was intended to add the base classes for video decoders which
18342           where not included in gstreamer-0.10.
18343           Since the support of gstreamer-0.10 is deprecated those classes are not
18344           required, thus the whole library is removed.
18345           https://bugzilla.gnome.org/show_bug.cgi?id=745728
18346           https://bugzilla.gnome.org/show_bug.cgi?id=732666
18347           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18348
18349 2015-04-03 16:55:43 +0300  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18350
18351         * configure.ac:
18352         * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18353         * gst-libs/gst/vaapi/gstvaapiutils.c:
18354         * tests/test-subpicture.c:
18355           Remove HAVE_GST_VIDEO_OVERLAY_HWCAPS macro
18356           This macro guarded the use of HAVE_GST_VIDEO_OVERLAY_HWCAPS, which was not
18357           defined before gstreamer 0.10.35. Since the support of gstreamer-0.10 is
18358           deprecated these guards are not required.
18359           https://bugzilla.gnome.org/show_bug.cgi?id=745728
18360           https://bugzilla.gnome.org/show_bug.cgi?id=732666
18361           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18362
18363 2015-04-03 16:55:27 +0300  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18364
18365         * gst-libs/gst/vaapi/gstcompat.h:
18366         * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
18367         * gst-libs/gst/vaapi/gstvaapidecoder.c:
18368         * gst-libs/gst/vaapi/gstvaapiimage.c:
18369         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
18370         * gst-libs/gst/vaapi/video-format.c:
18371         * gst-libs/gst/vaapi/video-format.h:
18372         * gst/vaapi/gstvaapi.c:
18373         * gst/vaapi/gstvaapidecode.c:
18374         * gst/vaapi/gstvaapidecodebin.c:
18375         * gst/vaapi/gstvaapidownload.c:
18376         * gst/vaapi/gstvaapidownload.h:
18377         * gst/vaapi/gstvaapiencode.c:
18378         * gst/vaapi/gstvaapiencode_h264.c:
18379         * gst/vaapi/gstvaapiencode_jpeg.c:
18380         * gst/vaapi/gstvaapiencode_mpeg2.c:
18381         * gst/vaapi/gstvaapiencode_vp8.c:
18382         * gst/vaapi/gstvaapiparse.c:
18383         * gst/vaapi/gstvaapipluginbase.c:
18384         * gst/vaapi/gstvaapipluginbase.h:
18385         * gst/vaapi/gstvaapipluginutil.c:
18386         * gst/vaapi/gstvaapipluginutil.h:
18387         * gst/vaapi/gstvaapipostproc.c:
18388         * gst/vaapi/gstvaapisink.c:
18389         * gst/vaapi/gstvaapiupload.c:
18390         * gst/vaapi/gstvaapiupload.h:
18391         * gst/vaapi/gstvaapiuploader.c:
18392         * gst/vaapi/gstvaapivideobuffer.c:
18393         * gst/vaapi/gstvaapivideoconverter_glx.c:
18394         * gst/vaapi/gstvaapivideoconverter_x11.c:
18395         * gst/vaapi/gstvaapivideometa.c:
18396         * gst/vaapi/gstvaapivideometa.h:
18397         * tests/test-filter.c:
18398         * tests/test-subpicture.c:
18399           Removal of gstreamer-0.10 support
18400           This patch removes all the pre-processor conditional code compilation guarded
18401           for gstreamer-0.10.
18402           https://bugzilla.gnome.org/show_bug.cgi?id=745728
18403           https://bugzilla.gnome.org/show_bug.cgi?id=732666
18404           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18405
18406 2015-04-03 16:54:54 +0300  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18407
18408         * configure.ac:
18409         * debian.upstream/control.in:
18410         * gst-libs/gst/video/Makefile.am:
18411         * gst/vaapi/Makefile.am:
18412           autotools: remove gstreamer-0.10 support
18413           This patch only removes the support of gstreamer-0.10 in the autotools
18414           scripts. No other files are touched.
18415           The configuration parameter --gstreamer-api was deleted since now it is always
18416           auto-detected.
18417           The verification of vmethod query in GstBaseSinkClass was removed since it was
18418           added in gstreamer 0.10.35. The same case for GstVideoOverlayComposition and
18419           its format flags.
18420           The precious variable GST_PLUGIN_PATH was removed, while GST_PLUGIN_PATH_1_0
18421           remained.
18422           The automake files were changed accordingly.
18423           Removed, in debian/control, the vaapiupload and vaapidownload descriptions.
18424           https://bugzilla.gnome.org/show_bug.cgi?id=732666
18425           https://bugzilla.gnome.org/show_bug.cgi?id=745728
18426           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18427
18428 2015-03-16 23:38:18 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18429
18430         * gst/vaapi/gstvaapidecode.c:
18431           vaapidecode: add drain() vmethod
18432           In GStremer v1.6 a new vmethod drain() was added in GstVideoDecoder
18433           class. This patch implements this new method.
18434           https://bugzilla.gnome.org/show_bug.cgi?id=742922
18435           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18436           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18437
18438 2015-03-16 23:37:29 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18439
18440         * gst/vaapi/gstvaapidecode.c:
18441           vaapidecode: remove vmethod reset()
18442           Since in bug #745728 the support for GStreamer 1.0 is going to be dropped,
18443           this patch removes the method reset() which was deprecated in GStreamer 1.2.
18444           https://bugzilla.gnome.org/show_bug.cgi?id=742922
18445           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18446           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18447
18448 2015-03-16 23:36:33 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18449
18450         * gst/vaapi/gstvaapidecode.c:
18451           vaapidecode: handle flush() vmethod
18452           Since GStreamer 1.2 the vmethod reset() in GstVideoDecoderClass was deprecated
18453           and flush() was added.
18454           This patch set the vmethod flush() if the installed GStreamer version is 1.2 or
18455           superior. Otherwise, reset() is set.
18456           v2: 1) In order to avoid symbol collision, the old method gst_vaapidecode_flush()
18457           was renamed to gst_vaapidecode_internal_flush().
18458           2) The new vmethod flush() always do a hard full reset.
18459           v3: 1) Call gst_vaapidecode_internal_flush() first in flush() vmethod, in order to
18460           gather all collected data with  gst_video_decoder_have_frame()
18461           https://bugzilla.gnome.org/show_bug.cgi?id=742922
18462           Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18463           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18464
18465 2015-03-16 23:10:53 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18466
18467         * gst/vaapi/gstvaapidecode.c:
18468           vaapidecode: call the correct query function
18469           In commit 2f8c115 (vaapidecode: use the query virtual methods in 1.4)
18470           a bug was introduced: when calling the parent's query function of the
18471           src pad, the one of the sink pad is called instead. This patch fixes
18472           this issue.
18473           https://bugzilla.gnome.org/show_bug.cgi?id=746248
18474
18475 2015-03-15 00:36:45 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18476
18477         * .gitmodules:
18478           gitmodules: Use https:// url instead of git:// for submodules.
18479           Gitorious is failing to clone repositories over git:// url.
18480
18481 2015-03-14 22:12:19 +0200  Julien Isorce <j.isorce@samsung.com>
18482
18483         * gst-libs/gst/vaapi/gstvaapidisplay.c:
18484           vaapidisplay: mark X11 display as compatible with EGL
18485           GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl
18486           gst-launch-1.0 ... ! vaapidecode ! glimagesink
18487           https://bugzilla.gnome.org/show_bug.cgi?id=745902
18488           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18489
18490 2015-03-06 15:20:01 +0200  Olivier Crete <olivier.crete@collabora.com>
18491
18492         * gst/vaapi/gstvaapidecode.c:
18493           vaapidecode: Don't crash if a buffer outlives the decoder
18494           Sometimes, for example, when switching video streams but keeping
18495           the same sink, the surface will be released after the decoder is
18496           stopped and replaced. This caused a crash because the release
18497           callback was called on an invalid pointer.
18498           The patch adding an additional reference to the decoder object in the buffer.
18499           https://bugzilla.gnome.org/show_bug.cgi?id=745189
18500           Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
18501           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18502
18503 2015-03-06 14:31:21 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18504
18505         * gst/vaapi/gstvaapidecode.c:
18506           vaapidecode: clean-ups (indentation, drop unused variables)
18507
18508 2015-03-06 14:09:22 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18509
18510         * gst/vaapi/gstvaapidecode.c:
18511           vaapidecode: use the query virtual methods in 1.4
18512           GstVideoDecoder, the base class of vaapidecode, added support for
18513           pad queries as virtual methods. This patch enables the use of that
18514           support, while keeping support for lower versions of gstreamer.
18515           This patch is important because GstVideoDecoder takes care of other
18516           queries that might be important in the pipeline managing.
18517           v2: 1) rebase to current master
18518           2) fix indentation with gst-indent
18519           3) simplify the patch layout
18520           4) fix the context query
18521           5) initialise the filter to NULL
18522           6) improve the query log message for gst-1.2
18523           https://bugzilla.gnome.org/show_bug.cgi?id=744406
18524
18525 2015-03-06 12:16:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18526
18527         * gst/vaapi/gstvaapipostproc.c:
18528         * gst/vaapi/gstvaapipostproc.h:
18529           vaapipostproc: always activate buffer pool
18530           The vaapipostproc has a proxy flag to know if the the buffer pool is
18531           already active. But this fails in some situations where it is needed
18532           to renegotiate the buffer pool.
18533           This patch removes that flag so the renegotiation is done whenever is
18534           required.
18535           https://bugzilla.gnome.org/show_bug.cgi?id=745535
18536
18537 2015-03-02 17:04:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18538
18539         * gst/vaapi/gstvaapisink.c:
18540           vaapisink: fix minor memory leak in debug mode.
18541           The gst_video_colorimetry_to_string() function returns a newly created
18542           string that represents the GstVideoColorimetry value. So, that needs
18543           to be released after usage, in e.g. GST_DEBUG().
18544
18545 2015-03-03 12:37:41 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18546
18547         * gst/vaapi/gstvaapidecodebin.h:
18548           vaapidecodebin: Avoid usage of "__" prefix in macro names
18549           Avoiding "__" prefix usage in Header File Guards as per
18550           C standard recommendation.
18551
18552 2015-03-03 12:31:11 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18553
18554         * gst/vaapi/gstvaapi.c:
18555           plugins: Disable vaapidecodebin for GStreamer < 1.4
18556           There are autoplugging issues in GStreamer-1.2.
18557           Lets disable vaapidecodebin untill we get some workarounds for this.
18558
18559 2015-03-02 15:19:40 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18560
18561         * gst/vaapi/Makefile.am:
18562         * gst/vaapi/gstvaapi.c:
18563         * gst/vaapi/gstvaapidecodebin.c:
18564         * gst/vaapi/gstvaapidecodebin.h:
18565           plugins: Add a vaapidecodebin element
18566           Add a "vaapidecodebin" element to vaapi plugins.
18567           Child Elements: "vaapidecode ! queue ! vaapipostproc"
18568           The Reasons for implementing a new bin element:
18569           -- Help to Autoplug Hardware Accelerated Video Postprocessing element in playbin
18570           with out any dependency to upstream gstreamer.
18571           This is to overcome the *unacceptable* delay in upstream gstreamer to get new
18572           features in. Eg: https://bugzilla.gnome.org/show_bug.cgi?id=687182.
18573           Also customers using older gstreamer versions (1.2 and 1.4) will get the
18574           benefit of autoplugging, hardware accelerated deinterlacing support etc.
18575           -- Help to maintain a single thread implementation in vaapidecode.
18576           This will result a dead-lock free vaapidecode in most of the cases.
18577           More details here: https://bugzilla.gnome.org/show_bug.cgi?id=742605
18578           https://bugzilla.gnome.org/show_bug.cgi?id=745216
18579
18580 2015-03-02 14:59:16 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18581
18582         * gst/vaapi/gstvaapidecode.c:
18583           vaapidecode: re-indent (gst-indent) gstvaapidecode.c
18584
18585 2015-03-02 14:46:38 +0200  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18586
18587         * gst/vaapi/gstvaapidecode.c:
18588         * gst/vaapi/gstvaapidecode.h:
18589           vaapidecode: Switch back to Single thread implementation
18590           Because the decoder uses the thread from handle_frame() to decode a frame,
18591           the src pad task creates an unsolveable AB-BA deadlock between
18592           handle_frame() waiting for a free surface and decode_loop() pushing
18593           decoded frames out.
18594           Instead, have handle_frame() take responsibility for pushing surfaces,
18595           and remove the deadlock completely. If you need a separate thread
18596           downstream, you can insert a queue between vaapidecode and its downstream
18597           to get one.
18598           Another justification for the single thread implementation is,
18599           there are two many point of locking in gstreamer-vaapi's current
18600           implementation which can lead to deadlocks.
18601           https://bugzilla.gnome.org/show_bug.cgi?id=742605
18602           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
18603           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18604           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18605
18606 2015-03-02 13:28:41 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18607
18608         * gst/vaapi/gstvaapipluginbase.c:
18609           plugins: fix detection of upstream v4l2src element.
18610           Improve check for upstream element that requires DMABUF buffer pool,
18611           e.g. v4l2src element. In particular, make sure to traverse through
18612           any additional capsfilter for instance.
18613           Note: the traversal to the top-most upstream element could be made
18614           more generic, but we are insofar only interested in supporting pipes
18615           similar to v4l2src or v4l2src ! capsfilter, e.g. with an explicit
18616           specification for a desired video camera format, or resolution.
18617
18618 2015-03-02 11:12:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18619
18620         * gst/vaapi/gstvaapivideomemory.c:
18621           plugins: fix allocation of DMABUF memory.
18622           The dmabuf allocator would close the DMABUF handle passed in the init
18623           function gst_dmabuf_allocator_alloc(). So, we need to dup() it so that
18624           to avoid a double close, ultimately in the underlying driver that owns
18625           the DMABUF handle.
18626
18627 2015-02-26 12:28:02 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18628
18629         * gst/vaapi/gstvaapidecode.c:
18630           vaapidecode: keep src caps and output state in sync
18631           vaapidecode keeps an output state that use the format
18632           GST_VIDEO_FORMAT_ENCODED, while it crafts a different src caps
18633           for a correct negotiation.
18634           I don't see the rational behind this decoupling, it looks like
18635           unnecessary complexity. This patch simplify this logic keeping
18636           in sync the output state and the src caps.
18637           This patch improves the readability of the function
18638           gst_vaapidecode_update_src_caps() and simplify its logic. Also,
18639           the patch validates if the buffer pool has the configuration for
18640           the GL texture upload meta, in order to set the caps feature
18641           meta:GLTextureUpload. Otherwise, the I420 format is set back.
18642           https://bugzilla.gnome.org/show_bug.cgi?id=744618
18643           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18644           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18645
18646 2015-02-26 12:26:54 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18647
18648         * gst/vaapi/gstvaapidecode.c:
18649           vaapidecode: upload meta only if feature and allocation
18650           When vaapidecode finishes the decoding of a frame and pushes it,
18651           if, in the decide_allocation() method, it is determined if the
18652           next element supports the GL texture upload meta feature, the
18653           decoder adds the buffer's meta.
18654           Nonetheless, in the same spirit of the commit 71d3ce4d, the
18655           determination if the next element supports the GL texture upload
18656           meta needs to check both the preferred caps feature *and* if the
18657           allocation query request the API type.
18658           This patch, first removes the unused variable need_pool, and
18659           determines the attribute has_texture_upload_meta using the
18660           preferred caps feature *and* the allocation query.
18661           Also, the feature passed to GstVaapPluginBase is not longer
18662           determined by has_texture_upload_meta, but by the computed
18663           preferred one.
18664           https://bugzilla.gnome.org/show_bug.cgi?id=744618
18665           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18666           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18667
18668 2015-02-26 12:24:55 +0200  Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18669
18670         * gst/vaapi/gstvaapidecode.c:
18671         * gst/vaapi/gstvaapidecode.h:
18672         * gst/vaapi/gstvaapipluginutil.c:
18673         * gst/vaapi/gstvaapipluginutil.h:
18674           vaapidecode: delayed src caps negotiation
18675           Currently the src caps are set immediately after the sink caps are set, but in
18676           that moment the pipeline might not fully constructed and the video sink has
18677           not negotiated its supported caps and features. As a consequence, in many cases
18678           of playback, the least optimized caps feature is forced. This is partially the
18679           responsible of bug #744039.
18680           Also, vaapidecode doesn't attend the reconfigure events from downstream,
18681           which is a problem too, since the video sink can be changed with different
18682           caps features.
18683           This patch delays the src caps, setting them until the first frame arrives to
18684           the decoder, assuming until that very moment the whole pipeline is already
18685           negotiated. Particularly, it checks if the src pad needs to be reconfigured,
18686           as a consequence of a reconfiguration event from downstream.
18687           A key part of this patch is the new GstVaapiCapsFeature
18688           GST_VAAPI_CAPS_FEATURE_NOT_NEGOTIATED, which is returned when the src pad
18689           doesn't have a peer yet. Also, for a better report of the caps allowed
18690           through the src pad and its peer, this patch uses gst_pad_get_allowed_caps()
18691           instead of gst_pad_peer_query_caps() when looking for the preferred feature.
18692           v3: move the input_state unref to close(), since videodecoder resets at
18693           some events such as navigation.
18694           v4: a) the state_changed() callback replaces the input_state if the media
18695           changed, so this case is also handled.
18696           b) since the parameter ref_state in gst_vaapidecode_update_src_caps() is
18697           always the input_state, the parameter were removed.
18698           c) there were a lot of repeated code handling the input_state, so I
18699           refactored it with the function gst_vaapi_decode_input_state_replace().
18700           https://bugzilla.gnome.org/show_bug.cgi?id=744618
18701           Signed-off-by: Víctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
18702           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18703
18704 2015-02-24 17:14:33 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18705
18706         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
18707         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
18708           encoder: h264: add support for more than 2 views
18709           Add support for H.264 MVC Multiview High profile encoding with
18710           more than 2 views. All views within the same accesss unit are
18711           provided in increasing order of view order index (VOIdx).
18712           Upto 10 view are supported for now.
18713           A new property "view-ids" has been provided for the plugins to
18714           set the view ids (which is an array of guint values) to be used
18715           for mvc encoding.
18716           https://bugzilla.gnome.org/show_bug.cgi?id=732453
18717
18718 2015-02-23 16:55:36 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18719
18720         * gst/vaapi/gstvaapipluginbase.c:
18721           plugins: upload meta only if feature and allocation
18722           Working on bug #743687, I realized that vaapidecode always adds to its buffer
18723           pool the config option GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META if
18724           the decide_allocation()'s query has GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE.
18725           Nevertheless, there are occasions where the query has the API type, but the
18726           last negotiated caps don't have the feature meta:GstVideoGLTextureUploadMeta.
18727           Under this contradiction, vaapidecode adds the GLTextureUploadMeta API to its
18728           buffer pool configuration, and adds its buffer's meta to each output buffer,
18729           even if the negotiated caps feature is memory:SystemMemory with I420 color
18730           format.
18731           This kind of output buffers chokes ClutterAutoVideosSink, since it uses a map
18732           that relates caps <-> GL upload method. If it receives a buffer with color
18733           format I420, it assumes that it doesn't have a texture upload meta, because
18734           only those with RGB color format has it. Our buffers, with I420 format, say
18735           that they have the upload meta too. In that case the mapped method is a dummy
18736           one which does nothing. I reported this issue in bug #744039 (the patch,
18737           obviously, was rejected).
18738           This patch workarounds the problem: the buffer pool's configuration option
18739           GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META is set if and only if the
18740           query has the GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE *and* the negotiated
18741           caps feature is meta:GstVideoGLTextureUploadMeta.
18742           I have tested these patches with gst-master (1.5), gst-1.4 and gst-1.2 and
18743           in all they seem to work correctly.
18744           https://bugzilla.gnome.org/show_bug.cgi?id=744618
18745           [adapted to fit current EGL changes]
18746           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18747
18748 2015-02-20 15:13:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18749
18750         * gst-libs/gst/vaapi/gstvaapitexture.c:
18751         * gst-libs/gst/vaapi/gstvaapitexture.h:
18752         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
18753         * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
18754         * gst/vaapi/gstvaapivideometa_texture.c:
18755           plugins: add support for GstVideoGLTextureOrientation.
18756           Add support for GstVideoGLTextureOrientation modes. In particular,
18757           add orientation flags to the GstVaapiTexture wrapper and the GLX
18758           implementations. Default mode is that texture memory is laid out
18759           with top lines first, left row first. Flags indicate whether the
18760           X or Y axis need to be inverted.
18761
18762 2015-02-09 21:09:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18763
18764         * gst/vaapi/gstvaapidecode.c:
18765         * gst/vaapi/gstvaapipluginbase.c:
18766         * gst/vaapi/gstvaapipluginutil.c:
18767         * gst/vaapi/gstvaapipluginutil.h:
18768         * gst/vaapi/gstvaapipostproc.c:
18769         * gst/vaapi/gstvaapivideometa_texture.c:
18770           plugins: add support for BGRA textures.
18771           Some frameworks (EFL) expect BGRA textures for storage. However,
18772           adding support for that broadly into GStreamer framework  implies
18773           two kinds of hacks: (i) libgstgl helpers currently do not support
18774           BGRA textures correctly, (ii) we need to better parse downstream
18775           suggested caps and intersect them with what the VA plugin elements
18776           can offer to them for GL texturing.
18777
18778 2015-01-23 09:31:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18779
18780         * gst/vaapi/gstvaapipluginutil.c:
18781           plugins: fix support for Wayland/EGL running alongside X11.
18782           When multiple display servers are available, the glimagesink element
18783           (from GStreamer 1.4) may not be able to derive a global display in
18784           Wayland. Rather, a "window"-specific display is created. In this case,
18785           the GstGLDisplay handle available through GstGLContext is invalid.
18786           So, try to improve heuristics for display server characterisation in
18787           those particular situations.
18788
18789 2015-02-20 15:29:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18790
18791         * configure.ac:
18792         * gst/vaapi/Makefile.am:
18793         * gst/vaapi/gstvaapidecode.c:
18794         * gst/vaapi/gstvaapipluginbase.c:
18795         * gst/vaapi/gstvaapipluginutil.c:
18796         * gst/vaapi/gstvaapivideobufferpool.c:
18797         * gst/vaapi/gstvaapivideometa_texture.c:
18798           plugins: add initial support for EGL.
18799           Add initial support for EGL through GstVideoGLTextureUploadMeta.
18800           Fix gst_vaapi_ensure_display() to allocate a GstVaapiDisplay off the
18801           downstream supplied GstGLContext configuration, i.e. use its native
18802           display handle to create a GstVaapiDisplay of type X11 or Wayland ;
18803           and use the desired OpenGL API to allocate the GstVaapiDisplayEGL
18804           wrapper.
18805           https://bugzilla.gnome.org/show_bug.cgi?id=741079
18806
18807 2014-12-09 11:46:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18808
18809         * gst/vaapi/gstvaapivideometa_texture.c:
18810           plugins: track video texture size changes.
18811           Sync video texture sizes to GstVideoGLTextureUploadMeta private date,
18812           i.e. GstVaapiVideoMetaTexture, on a regular basis. In particular, we
18813           now update the texture size from the GstVideoMeta, if any, or reset
18814           to some defaults otherwise.
18815
18816 2014-12-03 15:45:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18817
18818         * gst/vaapi/gstvaapipluginbase.c:
18819         * gst/vaapi/gstvaapipluginbase.h:
18820         * gst/vaapi/gstvaapipluginutil.c:
18821           plugins: ensure VA display matches GL context expectations.
18822           If a GstGLContext is supplied by the downstream element, then make
18823           sure that the VA plugin element gets a compatible display to what
18824           is requested by the GL context. e.g. re-allocate a VA/GLX display
18825           when a GLX context is provided by the downstream element.
18826
18827 2014-12-03 14:14:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18828
18829         * configure.ac:
18830         * gst/vaapi/Makefile.am:
18831         * gst/vaapi/gstvaapipluginbase.c:
18832         * gst/vaapi/gstvaapipluginbase.h:
18833           plugins: record downstream GstGLContext.
18834           Record GL context supplied by downstream elements. This can be useful,
18835           and further needed, to enforce run-time check that the GL context is
18836           compatible for use by libgstvaapi. e.g. check that we don't create a
18837           VA/GLX display for EGL/X11 contexts.
18838           https://bugzilla.gnome.org/show_bug.cgi?id=725643
18839           Original-path-by: Matthew Waters <ystreet00@gmail.com>
18840
18841 2014-12-01 14:52:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18842
18843         * tests/Makefile.am:
18844         * tests/output.c:
18845           egl: update tests.
18846           Add initial support for EGL to tests. The new EGL backend can be selected
18847           through the --egl command line option. The OpenGL|ES version can further
18848           be selected with the --gles-version command line option, where the default
18849           of 0 means "desktop" OpenGL.
18850
18851 2015-01-27 16:21:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18852
18853         * gst-libs/gst/vaapi/Makefile.am:
18854         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18855         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
18856         * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
18857         * gst-libs/gst/vaapi/gstvaapiwindow_egl.c:
18858         * gst-libs/gst/vaapi/gstvaapiwindow_egl.h:
18859           egl: add windowing support.
18860           This provides for some basic EGL window abstraction.
18861
18862 2015-01-24 08:29:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18863
18864         * gst-libs/gst/vaapi/Makefile.am:
18865         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18866         * gst-libs/gst/vaapi/gstvaapitexture_egl.c:
18867         * gst-libs/gst/vaapi/gstvaapitexture_egl.h:
18868           egl: add texture abstraction.
18869           Add GstVaapiTextureEGL abstraction that can create its own GL texture,
18870           or import a foreign allocated one, while still allowing updates from a
18871           VA surface.
18872
18873 2014-12-09 18:14:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18874
18875         * gst-libs/gst/vaapi/Makefile.am:
18876         * gst-libs/gst/vaapi/gstvaapisurface_egl.c:
18877         * gst-libs/gst/vaapi/gstvaapisurface_egl.h:
18878           egl: allow for EGLImage imports into VA Surfaces.
18879           Add helpers to import EGLImage objects into VA surfaces. There are
18880           two operational modes: (i) gst_vaapi_surface_new_from_egl_image(),
18881           which allows for implicit conversion from EGLImage to a VA surface
18882           in native video format, and (ii) gst_vaapi_surface_new_with_egl_image(),
18883           which exactly wraps the source EGLImage, typically in RGBA format
18884           with linear storage.
18885           Note: in case of (i), the EGLImage can be disposed right after the
18886           VA surface creation call, unlike in (ii) where the user shall ensure
18887           that the EGLImage is live until the associated VA surface is no longer
18888           needed.
18889           https://bugzilla.gnome.org/show_bug.cgi?id=743847
18890
18891 2015-02-20 15:27:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18892
18893         * configure.ac:
18894         * gst-libs/gst/vaapi/Makefile.am:
18895         * gst-libs/gst/vaapi/egl_compat.h:
18896         * gst-libs/gst/vaapi/egl_vtable.h:
18897         * gst-libs/gst/vaapi/gstvaapidisplay.c:
18898         * gst-libs/gst/vaapi/gstvaapidisplay.h:
18899         * gst-libs/gst/vaapi/gstvaapidisplay_egl.c:
18900         * gst-libs/gst/vaapi/gstvaapidisplay_egl.h:
18901         * gst-libs/gst/vaapi/gstvaapidisplay_egl_priv.h:
18902         * gst-libs/gst/vaapi/gstvaapiutils_egl.c:
18903         * gst-libs/gst/vaapi/gstvaapiutils_egl.h:
18904         * gst-libs/gst/vaapi/ogl_compat.h:
18905           Add initial support for EGL.
18906           Add initial support for EGL to libgstvaapi core library. The target
18907           display server and the desired OpenGL API can be programmatically
18908           selected at run-time.
18909           A comprehensive set of EGL utilities are provided to support those
18910           dynamic selection needs, but also most importantly to ensure that
18911           the GL command stream is executed from within a single thread.
18912           https://bugzilla.gnome.org/show_bug.cgi?id=743846
18913
18914 2015-01-30 21:38:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18915
18916         * gst-libs/gst/vaapi/gstvaapivalue.c:
18917           libs: initialize GValues in a thread-safe manner.
18918
18919 2015-01-30 21:35:10 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18920
18921         * gst-libs/gst/vaapi/gstvaapivalue.c:
18922           libs: re-indent all GValue related source code.
18923
18924 2015-01-22 22:45:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
18925
18926         * gst/vaapi/gstvaapidecode.c:
18927           vaapidecode: partially revert 0777f35.
18928           Reset the VA decoder after updating the base plugin caps, and most
18929           importantly, after GstVideoDecoder negotiation. The reason behind
18930           this is that the negotiation could trigger a last decide_allocation()
18931           where we could actually derive a new GstVaapiDisplay to use from the
18932           downstream element. e.g. GLX backend.
18933
18934 2015-02-19 13:37:09 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18935
18936         * gst/vaapi/gstvaapidecode.c:
18937           vaapidecode: Caps query should return the list of all supported caps.
18938           Query caps filtering should be always done on top of allowed caps instead
18939           of existing fixed caps on a particular pad.
18940           This fixes the mvc stream decoding when there is a base view(high profile)
18941           and non-base view(stereo-high profile).
18942
18943 2015-02-18 13:36:16 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18944
18945         * gst/vaapi/gstvaapidecode.c:
18946           vaapidecode: intersect filter from query caps
18947           According to documentation[1] when receiving a GST_QUERY_CAPS
18948           the return value should be all formats that this elements supports,
18949           taking into account limitations of peer elements further downstream
18950           or upstream, sorted by order of preference, highest preference first.
18951           This patch add those limitations intersecting with the received
18952           filter in the query. Also takes into account the already negotiated
18953           caps. Also adds the processing of the query on the SRC pad.
18954           1. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-nego-getcaps.html
18955           https://bugzilla.gnome.org/show_bug.cgi?id=744406
18956
18957 2015-02-18 11:46:11 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18958
18959         * gst-libs/gst/vaapi/Makefile.am:
18960         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
18961         * gst-libs/gst/vaapi/gstvaapidecoder.c:
18962         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
18963         * gst-libs/gst/vaapi/gstvaapidisplay.c:
18964         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
18965         * gst/vaapi/gstvaapivideomemory.c:
18966           Fix compiler warnings
18967           This patch fixes some warnings that gcc 4.9 reports.
18968           https://bugzilla.gnome.org/show_bug.cgi?id=744411
18969
18970 2015-02-18 11:22:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18971
18972         * gst/vaapi/gstvaapidecode.c:
18973           vaapidecode: Use GST_DEBUG_FUNCPTR for gst_vaapidecode_query()
18974           Hence the function name is shown in the gst-inspect-1.0 information
18975           rather than the memory address.
18976           https://bugzilla.gnome.org/show_bug.cgi?id=744330
18977
18978 2015-02-18 11:21:35 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18979
18980         * gst/vaapi/gstvaapidecode.c:
18981           vaapidecode: log flow error name
18982           https://bugzilla.gnome.org/show_bug.cgi?id=744387
18983
18984 2015-02-18 11:20:42 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
18985
18986         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
18987           VC1: decoder: Ignore VC1 user BDU's
18988           Don't return error if the processed BDU is a user one, just ignore them.
18989           https://bugzilla.gnome.org/show_bug.cgi?id=741237
18990           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
18991
18992 2015-02-18 11:19:26 +0200  Olivier Crete <olivier.crete@collabora.com>
18993
18994         * gst/vaapi/gstvaapidecode.c:
18995         * gst/vaapi/gstvaapipluginbase.c:
18996           vaapidecode: Emit error GstMessage when returning a GST_FLOW_ERROR
18997           This is required in GStreamer, elements should never return
18998           GST_FLOW_ERROR without posting an ERROR message on the bus.
18999           https://bugzilla.gnome.org/show_bug.cgi?id=744620
19000
19001 2015-02-13 13:45:32 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19002
19003         * gst/vaapi/Makefile.am:
19004         * gst/vaapi/gstvaapi.c:
19005         * gst/vaapi/gstvaapiencode_vp8.c:
19006         * gst/vaapi/gstvaapiencode_vp8.h:
19007           plugins: Add VP8 Encoder
19008
19009 2015-02-13 13:42:04 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19010
19011         * gst-libs/gst/vaapi/Makefile.am:
19012         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.c:
19013         * gst-libs/gst/vaapi/gstvaapiencoder_vp8.h:
19014           Add VP8 Encoder to core libgstvaapi.
19015
19016 2015-02-13 13:40:19 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19017
19018         * configure.ac:
19019           configure: Add Check for VP8 Encoding API
19020
19021 2015-02-10 11:40:16 +0200  Lim Siew Hoon <siew.hoon.lim@intel.com>
19022
19023         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
19024           decoder: vc1: Rounding control handling for VC1 simple and Main profile
19025           Added rounding control handling for VC1 simple and Main profile
19026           based on VC1 standard spec: section 8.3.7
19027           https://bugzilla.gnome.org/show_bug.cgi?id=743958
19028           Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
19029           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19030
19031 2015-02-06 12:10:51 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19032
19033         * gst/vaapi/Makefile.am:
19034           build: fix make dist when certain conditionals not met.
19035           Fix typo which was preventing the inclusion of jpeg encoder
19036           source files from make dist (when there is no jpeg encoder
19037           API support in libva).
19038
19039 2015-02-05 13:08:53 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19040
19041         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19042           encoder: jpeg: Fix the sampling factor calculation for ENCODED format.
19043           If the incoming raw video format is GST_VIDEO_FORMAT_ENCODED,
19044           use native YUV420 format (which is i420) as default.
19045
19046 2015-02-05 12:13:38 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19047
19048         * gst-libs/gst/vaapi/gstvaapiencoder.c:
19049           encoder: Only support YUV420 native format as input for now
19050           Practically we should be able to support more formats, for eg:
19051           JPEG Encoder can support YUV422, RGBA and all.
19052           But this is causing more issues which need proper fix here and there.
19053
19054 2015-02-04 18:34:59 +0200  Olivier Crete <olivier.crete@collabora.com>
19055
19056         * gst-libs/gst/vaapi/gstvaapidecoder.h:
19057         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
19058         * gst/vaapi/gstvaapidecode.c:
19059           vaapidecode: Check the condition after taking the lock
19060           Otherwise the condition could become true before the lock
19061           is taken and the g_cond_signal() could be called
19062           before the g_cond_wait(), so the g_cond_wait() is never
19063           awoken.
19064           https://bugzilla.gnome.org/show_bug.cgi?id=740645
19065
19066 2015-02-04 11:18:29 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19067
19068         * gst/vaapi/Makefile.am:
19069         * gst/vaapi/gstvaapi.c:
19070         * gst/vaapi/gstvaapiencode_jpeg.c:
19071         * gst/vaapi/gstvaapiencode_jpeg.h:
19072           plugins: Add JPEG encoder element
19073
19074 2015-02-04 11:17:58 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19075
19076         * gst-libs/gst/vaapi/gstvaapicontext.c:
19077           gstvaapicontext: Add VAConfigAttribValEncJPEG to the attribute list using for VAConfig creation.
19078
19079 2015-02-04 11:17:27 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19080
19081         * gst-libs/gst/vaapi/gstvaapicontext.c:
19082           gstvaapicontext: Don't use the unsupported Ratecontrol attributes for vaCreateConfig
19083           Don't add the VAConfigAttribRateControl to the attribute list using
19084           for the vaCreateConfig if it is not supported by the driver.
19085
19086 2015-02-04 11:17:06 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19087
19088         * gst-libs/gst/vaapi/gstvaapiencoder.c:
19089           gstvaapiencoder: Use hardcoded packed_raw_data flag for JPEG Encoding
19090
19091 2015-02-04 11:16:37 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19092
19093         * gst-libs/gst/vaapi/gstvaapiencoder.c:
19094           gstvaapiencoder: Fix crash when handling rate control mask
19095           Having a ratecontrol_mask equal to zero is not a bug, but the driver
19096           might not be supporting any kind of rate control mechanisms.
19097           Eg: JPEG Encoding
19098
19099 2015-02-04 11:16:05 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19100
19101         * gst-libs/gst/vaapi/Makefile.am:
19102         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.c:
19103         * gst-libs/gst/vaapi/gstvaapiencoder_jpeg.h:
19104           encoder: Add JPEG Encoder
19105
19106 2015-02-04 11:15:38 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19107
19108         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
19109         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
19110           encoder_objects: Add QuantizationMatrix and JPEGHuffmanTable
19111
19112 2015-02-04 11:15:00 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19113
19114         * gst-libs/gst/vaapi/gstvaapidisplay.c:
19115         * gst-libs/gst/vaapi/gstvaapiencoder.c:
19116         * gst-libs/gst/vaapi/gstvaapiprofile.c:
19117         * gst-libs/gst/vaapi/gstvaapiprofile.h:
19118           Encode: Add support for Picture level Entrypoint
19119           This is useful for JPEG encoding which is utilizing picture level
19120           entrypoint instead of slice level entrypoint like h264,mpeg2 etc.
19121
19122 2015-02-04 11:14:15 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19123
19124         * configure.ac:
19125           configure: Add Check for JPEG encoding API
19126
19127 2015-02-03 13:08:53 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19128
19129         * AUTHORS:
19130           AUTHORS: Updates
19131
19132 2015-02-03 13:08:01 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19133
19134         * configure.ac:
19135           Bump version for development.
19136
19137 === release 0.5.10 ===
19138
19139 2015-02-03 10:00:42 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19140
19141         * configure.ac:
19142           0.5.10
19143
19144 2015-02-03 10:00:23 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19145
19146         * NEWS:
19147           NEWS: Updates
19148
19149 2015-02-02 11:43:58 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19150
19151         * gst/vaapi/gstvaapivideometa_texture.c:
19152           Fix compilation error if there is no GL/gl.h header file installed
19153
19154 2015-01-28 18:09:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19155
19156         * gst/vaapi/gstvaapivideomemory.h:
19157           plugins: drop leftover declaration.
19158           GstVaapiVideoMemory quark is not needed any more, and the actual
19159           implementation was already removed bfore the merge. i.e. this is
19160           an oversight for a hunk that was not meant to be pushed.
19161
19162 2015-01-26 18:30:47 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19163
19164         * gst/vaapi/gstvaapipluginbase.c:
19165         * gst/vaapi/gstvaapivideobufferpool.c:
19166         * gst/vaapi/gstvaapivideobufferpool.h:
19167         * gst/vaapi/gstvaapivideomemory.c:
19168         * gst/vaapi/gstvaapivideomemory.h:
19169           plugins: add support for dma_buf exports (v4l2src).
19170           Allow v4l2src element to connected to vaapipostproc or vaapisink when
19171           "io-mode" is set to "dmabuf-import". In practice, this is a more likely
19172           operational mode with uvcvideo. Supporting v4lsrc with "io-mode" set
19173           to "dmabuf" could work, but with more demanding driver or kernel reqs.
19174           Note: with GStreamer 1.4, v4l2src (gst-plugins-good) needs to be built
19175           with --without-libv4l2.
19176           https://bugzilla.gnome.org/show_bug.cgi?id=743635
19177
19178 2014-01-23 05:00:09 -0500  Wind Yuan <feng.yuan@intel.com>
19179
19180         * configure.ac:
19181         * gst/vaapi/Makefile.am:
19182         * gst/vaapi/gstvaapipluginbase.c:
19183           plugins: add support for dma_buf imports.
19184           Allow imports of v4l2 buffers into VA surfaces for further operation
19185           with vaapi plugins, e.g. vaapipostproc or vaapiencode_* elements.
19186           https://bugzilla.gnome.org/show_bug.cgi?id=735362
19187           [fixed memory leaks, ported to new dma_buf infrastructure, cleanups]
19188           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19189
19190 2014-09-15 15:27:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19191
19192         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19193         * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19194           surface: add support for GEM buffer imports.
19195           Add support for GEM buffer imports. This is useful for VA/EGL interop
19196           with legacy Mesa implementations, or when it is desired or required to
19197           support outbound textures for instance.
19198           https://bugzilla.gnome.org/show_bug.cgi?id=736718
19199
19200 2014-09-15 15:25:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19201
19202         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19203         * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19204           surface: add support for dma_buf imports.
19205           Add new gst_vaapi_surface_new_with_dma_buf_handle() helper function
19206           to allow for creating VA surfaces from a foreign DRM PRIME fd. The
19207           resulting VA surface owns the supplied buffer handle.
19208           https://bugzilla.gnome.org/show_bug.cgi?id=735362
19209
19210 2015-01-27 11:19:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19211
19212         * gst-libs/gst/vaapi/gstvaapisurface.c:
19213         * gst-libs/gst/vaapi/gstvaapisurface.h:
19214         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19215           surface: add initial support for foreign buffer imports.
19216           Add gst_vaapi_surface_new_from_buffer_proxy() helper function to
19217           create a VA surface from an external buffer provided throug the
19218           new GstVaapiBufferProxy object.
19219
19220 2014-09-15 13:47:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19221
19222         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19223         * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19224         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19225         * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19226           surface: add support for GEM buffer exports.
19227           Add support for GEM buffer exports. This will only work with VA drivers
19228           based off libdrm, e.g. the Intel HD Graphics VA driver. This is needed
19229           to support interop with EGL and the "Desktop" GL specification. Indeed,
19230           the EXT_image_dma_buf_import extension is not going to be supported in
19231           Desktop GL, due to the lack of support for GL_TEXTURE_EXTERNAL_OES targets
19232           there.
19233           This is useful for implementing VA/EGL interop with legacy Mesa stacks,
19234           in Desktop OpenGL context.
19235           https://bugzilla.gnome.org/show_bug.cgi?id=736717
19236
19237 2014-09-15 11:48:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19238
19239         * gst-libs/gst/vaapi/Makefile.am:
19240         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19241         * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19242         * gst-libs/gst/vaapi/gstvaapisurface_drm.c:
19243         * gst-libs/gst/vaapi/gstvaapisurface_drm.h:
19244           surface: add support for dma_buf exports.
19245           Use the new VA buffer export APIs to allow for a VA surface to be
19246           exposed as a plain PRIME fd. This is in view to simplifying interop
19247           with EGL or OpenCL for instance.
19248           https://bugzilla.gnome.org/show_bug.cgi?id=735364
19249
19250 2014-09-15 10:58:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19251
19252         * gst-libs/gst/vaapi/Makefile.am:
19253         * gst-libs/gst/vaapi/gstvaapibufferproxy.c:
19254         * gst-libs/gst/vaapi/gstvaapibufferproxy.h:
19255         * gst-libs/gst/vaapi/gstvaapibufferproxy_priv.h:
19256           Add abstraction for exported VA buffers.
19257           The VA buffer export APIs work for a particular lifetime starting from
19258           vaAcquireBufferHandle() and ending with vaReleaseBufferHandle(). As such,
19259           it could be much more convenient to support implicit releases by simply
19260           having a refcount reaching zero.
19261           https://bugzilla.gnome.org/show_bug.cgi?id=736721
19262
19263 2015-01-28 18:25:09 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19264
19265         * gst-libs/gst/vaapi/Makefile.am:
19266           Add missing header file to Makefile
19267           Add gstvaapitexture_glx.h to Makefile.am
19268
19269 2015-01-27 11:44:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19270
19271         * gst-libs/gst/vaapi/gstvaapicontext.c:
19272         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19273         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19274         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19275         * gst/vaapi/gstvaapipostproc.c:
19276         * gst/vaapi/gstvaapiuploader.c:
19277         * gst/vaapi/gstvaapivideobufferpool.c:
19278         * gst/vaapi/gstvaapivideomemory.c:
19279         * gst/vaapi/gstvaapivideomemory.h:
19280         * tests/test-surfaces.c:
19281           videopool: add optional flags for surface pool allocation.
19282           Reword surface pool allocation helpers so that to allow for a simple
19283           form, e.g. gst_vaapi_surface_pool_new(format, width, height); and a
19284           somewhat more elaborated/flexible form with optional allocation flags
19285           and precise GstVideoInfo specification.
19286           This is an API/ABI change, and SONAME version needs to be bumped.
19287
19288 2015-01-26 23:21:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19289
19290         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
19291         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
19292         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
19293         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
19294         * gst-libs/gst/vaapi/gstvaapivideopool.c:
19295         * gst-libs/gst/vaapi/gstvaapivideopool.h:
19296         * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
19297           videopool: re-indent all GstVaapiVideoPool related source code.
19298
19299 2014-12-10 20:13:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19300
19301         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19302         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19303           window: add toplevel display indirection for visualid and colormap.
19304           Add GstVaapiDisplay::get_{visual_id,colormap}() helpers to help determine
19305           the best suitable window visual id and colormap. This is an indirection in
19306           view to supporting EGL and custom/generic replacements.
19307
19308 2014-12-10 19:58:10 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19309
19310         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19311         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19312         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19313         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19314           window: add toplevel API to determine the colormap.
19315           Add GstVaapiWindowClass::get_colormap() hook to help determine the
19316           currently active colormap bound to the supplied window, or actually
19317           create it if it does not already exist yet.
19318
19319 2014-12-10 19:36:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19320
19321         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
19322         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
19323         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19324         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19325         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19326         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
19327           window: add toplevel API to determine a visual id.
19328           Add GstVaapiWindowClass::get_visual_id() function hook to help find
19329           the best suitable visual id for the supplied window. While doing so,
19330           also simplify the process by which an X11 window is created with a
19331           desired Visual, i.e. now use a visual id instead of a Visual object.
19332
19333 2014-12-10 18:12:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19334
19335         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19336         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19337         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19338         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19339         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19340         * gst-libs/gst/vaapi/gstvaapiwindow.c:
19341         * gst-libs/gst/vaapi/gstvaapiwindow.h:
19342         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
19343         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19344         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
19345         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19346         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19347           window: add generic helper to create windows.
19348           Add a new generic helper function gst_vaapi_window_new() to create
19349           a window without having the caller to check for the display type
19350           himself. i.e. internally, there is now a GstVaapiDisplayClass hook
19351           to create windows, and the actual backend implementation fills it in.
19352           Add new generic helper functions gst_vaapi_texture_new_wrapped()
19353           This is a simplification in view to supporting EGL.
19354
19355 2014-12-03 11:39:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19356
19357         * gst-libs/gst/vaapi/gstvaapidisplay.c:
19358         * gst-libs/gst/vaapi/gstvaapidisplay.h:
19359         * gst-libs/gst/vaapi/gstvaapitexture.c:
19360         * gst/vaapi/gstvaapivideometa_texture.c:
19361           display: add utility function to check for OpenGL rendering.
19362           Add gst_vaapi_display_has_opengl() helper function to help determining
19363           whether the display can support OpenGL context to be bound to it, i.e.
19364           if the class is of type GST_VAAPI_DISPLAY_TYPE_GLX.
19365
19366 2014-12-10 18:02:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19367
19368         * gst-libs/gst/vaapi/gstvaapidisplay.c:
19369         * gst-libs/gst/vaapi/gstvaapidisplay.h:
19370         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19371         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
19372         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19373         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
19374         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19375         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19376         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
19377         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19378         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
19379         * gst/vaapi/gstvaapipluginutil.c:
19380         * gst/vaapi/gstvaapivideobuffer.c:
19381         * gst/vaapi/gstvaapivideometa_texture.c:
19382           display: refine the meaning of display type.
19383           Make gst_vaapi_display_get_display_type() return the actual VA display
19384           type. Conversely, add a gst_vaapi_display_get_class_type() function to
19385           return the type of the GstVaapiDisplay instance. The former is used to
19386           identify the display server onto which the application is running, and
19387           the latter to identify the original object class.
19388
19389 2014-12-02 11:23:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19390
19391         * gst-libs/gst/vaapi/gstvaapidisplay.c:
19392         * gst-libs/gst/vaapi/gstvaapidisplay.h:
19393         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19394         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19395         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
19396         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
19397           display: cosmetics (helper macros, new internal API names).
19398           Add more helper macros to the top-level GstVaapiDisplay interfaces.
19399           Rename a few others used internally for improved consistency.
19400
19401 2014-12-01 17:08:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19402
19403         * gst-libs/gst/vaapi/gstvaapidisplay.c:
19404         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19405         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19406         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
19407         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19408         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
19409         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
19410         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
19411           display: record native display object.
19412           Record the underlying native display instance into the toplevel
19413           GstVaapiDisplay object. This is useful for fast lookups to the
19414           underlying native display, e.g. for creating an EGL display.
19415
19416 2014-12-01 16:54:32 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19417
19418         * gst-libs/gst/vaapi/gstvaapidisplay.c:
19419         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
19420         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
19421           display: use a recursive mutex for the display cache.
19422           Use a recursive mutex for the display cache so that a 3rdparty display
19423           object could be initialized during the initialization of the parent
19424           display.
19425
19426 2014-12-04 14:36:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19427
19428         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19429         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
19430         * gst-libs/gst/vaapi/gstvaapitexture.c:
19431         * gst-libs/gst/vaapi/gstvaapitexture.h:
19432         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19433         * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19434           texture: add generic helper to create textures.
19435           Add new generic helper functions gst_vaapi_texture_new_wrapped()
19436           and gst_vaapi_texture_new() to create a texture without having
19437           the caller to uselessly check for the display type himself. i.e.
19438           internally, there is now a GstVaapiDisplayClass hook to create
19439           textures, and the actual backend implementation fills it in.
19440           This is a simplification in view to supporting EGL.
19441
19442 2014-10-23 17:44:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19443
19444         * gst-libs/gst/vaapi/Makefile.am:
19445         * gst-libs/gst/vaapi/gstvaapitexture.c:
19446         * gst-libs/gst/vaapi/gstvaapitexture.h:
19447         * gst-libs/gst/vaapi/gstvaapitexture_glx.c:
19448         * gst-libs/gst/vaapi/gstvaapitexture_glx.h:
19449         * gst-libs/gst/vaapi/gstvaapitexture_priv.h:
19450         * gst/vaapi/gstvaapivideoconverter_glx.c:
19451         * gst/vaapi/gstvaapivideometa_texture.c:
19452         * tests/test-textures.c:
19453           texture: move to core libgstvaapi base library.
19454           GstVaapiTexture is a generic abstraction that could be moved to the
19455           core libgstvaapi library. While doing this, no extra dependency needs
19456           to be added. This means that a GstVaapitextureClass is now available
19457           for any specific code that needs to be added, e.g. creation of the
19458           underlying GL texture objects, or backend dependent ways to upload
19459           a surface to the texture object.
19460           Generic OpenGL data types (GLuint, GLenum) are also replaced with a
19461           plain guint.
19462           https://bugzilla.gnome.org/show_bug.cgi?id=736715
19463
19464 2014-10-23 13:11:54 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19465
19466         * configure.ac:
19467         * gst-libs/gst/vaapi/Makefile.am:
19468         * gst-libs/gst/vaapi/gstvaapicompat.h:
19469         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
19470         * gst-libs/gst/vaapi/gstvaapitexture.c:
19471           texture: drop support for VA/GLX interfaces.
19472           The VA/GLX interfaces are obsolete. They used to exist for XvBA, and
19473           ease of use, but they had other caveats to deal with. It's now better
19474           to move on to legacy mode, whereby VA/GLX interop is two be provided
19475           through (i) X11 Pixmap, and (ii) other modern means of buffer sharing.
19476           https://bugzilla.gnome.org/show_bug.cgi?id=736711
19477
19478 2014-10-23 11:56:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19479
19480         * gst-libs/gst/vaapi/gstvaapitexture.c:
19481         * gst-libs/gst/vaapi/gstvaapitexture.h:
19482         * gst/vaapi/gstvaapivideoconverter_glx.c:
19483         * gst/vaapi/gstvaapivideometa_texture.c:
19484         * tests/test-textures.c:
19485           texture: add support for cropping rectangle during transfer.
19486           The gst_vaapi_texture_put_surface() function is missing a crop_rect
19487           argument that would be used during transfer for cropping the source
19488           surface to the desired dimensions.
19489           Note: from a user point-of-view, he should create the GstVaapiTexture
19490           object with the cropped size. That's the default behaviour in software
19491           decoding pipelines that we need to cope with.
19492           This is an API/ABI change, and SONAME version needs to be bumped.
19493           https://bugzilla.gnome.org/show_bug.cgi?id=736712
19494
19495 2014-10-23 11:22:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19496
19497         * gst-libs/gst/vaapi/gstvaapitexture.c:
19498         * gst-libs/gst/vaapi/gstvaapitexture.h:
19499           texture: re-indent all GstVaapiTexture related source code.
19500
19501 2015-01-27 11:16:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19502
19503         * gst-libs/gst/vaapi/gstvaapisurface.c:
19504         * gst-libs/gst/vaapi/gstvaapisurface.h:
19505           surface: add more fine-grained allocation helper.
19506           Add new gst_vaapi_surface_new_full() helper function that allocates
19507           VA surface from a GstVideoInfo template in argument. Additional flags
19508           may include ways to
19509           - allocate linear storage (GST_VAAPI_SURFACE_ALLOC_FLAG_LINEAR_STORAGE) ;
19510           - allocate with fixed strides (GST_VAPI_SURFACE_ALLOC_FLAG_FIXED_STRIDES) ;
19511           - allocate with fixed offsets (GST_VAAPI_SURFACE_ALLOC_FLAG_FIXED_OFFSETS).
19512
19513 2014-09-15 14:57:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19514
19515         * gst-libs/gst/vaapi/gstvaapisurface.c:
19516         * gst-libs/gst/vaapi/gstvaapisurface.h:
19517         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
19518           surface: re-indent all GstVaapiSurface related source code.
19519
19520 2015-01-23 16:44:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19521
19522         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19523         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19524           surfaceproxy: add helper to create a wrapped surface object.
19525           Add new gst_vaapi_surface_proxy_new() helper to wrap a surface into
19526           a proxy. The main use case for that is to convey additional information
19527           at the proxy level that would not be suitable to the plain surface.
19528
19529 2015-01-23 16:37:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19530
19531         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
19532         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19533         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
19534           surfaceproxy: re-indent all GstVaapiSurfaceProxy related source code.
19535
19536 2015-01-27 18:02:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19537
19538         * configure.ac:
19539           libs: bump library major version.
19540
19541 2014-12-04 14:36:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19542
19543         * gst-libs/gst/vaapi/gstvaapitypes.h:
19544           libs: re-introduce a GST_VAAPI_ID_INVALID value.
19545           Re-introduce a GST_VAAPI_ID_INVALID value that represents
19546           a non-zero and invalid id. This is useful to have a value
19547           that is still invalid for cases where zero could actually
19548           be a valid value.
19549
19550 2014-12-02 16:51:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19551
19552         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19553         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19554           libs: expose GstVaapiMiniObject APIs to all backends.
19555           Make it possible to have all libgstvaapi backends (libs) access to a
19556           common GstVaapiMiniObject API and implementation. This is a minor step
19557           towards full exposure when needed, but restrict it to libgstvaapi at
19558           this time.
19559
19560 2014-12-02 14:15:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19561
19562         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
19563         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
19564         * gst-libs/gst/vaapi/gstvaapiobject.c:
19565         * gst-libs/gst/vaapi/gstvaapiobject.h:
19566         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
19567           libs: re-indent all GstVaapiObject related source code.
19568           Re-indent and provide additional minor cosmetical changes to the
19569           GstVaapiMiniObject and GstVaapiObject source files.
19570
19571 2015-01-27 16:25:21 +0200  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19572
19573         * gst/vaapi/gstvaapipluginutil.c:
19574           pluginutil: Fix clearing of subtitle overlay
19575           dvbsuboverlay signals no subtitles present by not setting
19576           GstVideoOverlayCompositionMeta on a buffer.
19577           Detect this, and remove subtitles whenever we have no overlay composition to
19578           hand.
19579           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19580
19581 2015-01-27 16:06:02 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
19582
19583         * gst/vaapi/gstvaapipostproc.c:
19584           vaapipostproc: clear state on stop
19585           Otherwise restarting may fail because the state of vaapipluginbase and
19586           vaapipostproc don't match. e.g. gst_vaapipostproc_set_caps() will skip
19587           initailization and not call gst_vaapi_plugin_base_set_caps()
19588
19589 2015-01-27 14:50:12 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
19590
19591         * gst/vaapi/gstvaapidecode.c:
19592           vaapidecode: don't print an error message for GST_FLOW_FLUSHING
19593
19594 2015-01-27 12:38:45 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19595
19596         * gst-libs/gst/vaapi/gstvaapiencoder.c:
19597           gstvaapiencoder: Fix the negotiation issue with _ENCODED format handling
19598           Don't error out for the video format GST_VIDEO_FORMAT_ENCODED with in gstvaapiencoder,
19599           since the vaaapi context creation (gstvaapicontext.c) can still use the
19600           default chroma type which is YUV420.
19601           https://bugzilla.gnome.org/show_bug.cgi?id=743567
19602           https://bugzilla.gnome.org/show_bug.cgi?id=743035
19603
19604 2015-01-21 18:31:22 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19605
19606         * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
19607         * patches/videoparsers/series.frag:
19608           h264parse: drop patches merged upstream.
19609           0003-h264parse-add-initial-support-for-MVC-NAL-units.patch
19610
19611 2015-01-21 18:26:12 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19612
19613         * ext/codecparsers:
19614           codecparsers: update to gst-vaapi-branch commit d3b5c1b
19615           8194cac: h264parse: parse SPS subset
19616           64b7f52: h264parse: expose stereo-high profile
19617           774360a: h264parse: add initial support for MVC NAL units
19618           258478f: h264parser: fix stack smashing
19619
19620 2015-01-19 11:30:12 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19621
19622         * gst/vaapi/gstvaapivideometa_texture.c:
19623           Fix compilation error if there is no GL/gl.h header file installed
19624
19625 2015-01-15 16:23:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19626
19627         * gst/vaapi/gstvaapidecode.c:
19628           vaapidecode: commit updated srcpad caps to base plugin.
19629           Make sure that the GstVaapiPluginBase instance receives the new src
19630           pad caps whenever they get updated from within the GstVaapiDecoder
19631           decode routines.
19632           This also ensures that downstream elements receive correctly sized
19633           SW decoded buffers if needed.
19634           https://bugs.tizen.org/jira/browse/TC-114
19635
19636 2015-01-15 16:19:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19637
19638         * gst/vaapi/gstvaapidecode.c:
19639           vaapidecode: always reset decoder on ::set_format().
19640           Split GstVideoDecoder::set_format() handler to first update the sink
19641           pad caps and reset the active VA decoder instance based on those, and
19642           then update the src pad caps whenever possible, e.g. when the caps
19643           specify a valid video resolution.
19644
19645 2015-01-15 16:14:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19646
19647         * gst/vaapi/gstvaapivideomemory.c:
19648           vaapivideomemory: don't crash when trying to allocate 0x0 images.
19649           In some occasions, a buffer pool is created for pre-initialization
19650           purposes regardless of whether a valid image size is available or
19651           not. However, during actual decode stage, the vaapidecode element
19652           is expected to update the srcpad caps with the new dimensions, thus
19653           also triggering a reset of the underlying bufferpool.
19654
19655 2015-01-15 00:00:16 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19656
19657         * ext/codecparsers:
19658           codecparsers: update to gst-vaapi-branch commit 191cb2f
19659           347605a: h264parse: expose compatible profiles to downstream
19660           d1ea97e: h264parse: Fix periodic SPS/PPS sending work after a seek
19661           24a3126: Revert "h264parse: expose compatible profiles to downstream"
19662           8661740: h264parse: expose compatible profiles to downstream
19663           8b7ef3f: codecparsers: fix some compiler warnings
19664
19665 2014-11-27 12:11:03 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19666
19667         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19668           encoder: h264: Fix the period between I/P frames
19669           If the key-frame period is set as one, then ip_period shuld be zero
19670           https://bugzilla.gnome.org/show_bug.cgi?id=734992
19671
19672 2014-11-27 11:21:03 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19673
19674         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19675           encoder: h264: Provide intra_idr_period value for VAEncSequenceParameterBufferH264
19676           https://bugzilla.gnome.org/show_bug.cgi?id=734993
19677
19678 2014-11-27 11:14:50 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19679
19680         * gst/vaapi/gstvaapisink.c:
19681           vaapisink: Protect the X11 API invokations with proper locking
19682           https://bugzilla.gnome.org/show_bug.cgi?id=739808
19683
19684 2014-11-27 11:13:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19685
19686         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19687           encoder: h264: fix pixel-aspect-ratio in encoded stream.
19688           Really report sample aspect ratio (SAR) as present, and make it match
19689           what we have obtained from the user as pixel-aspect-ratio (PAR). i.e.
19690           really make sure VUI parameter aspect_ratio_info_present_flag is set
19691           to TRUE and that the indication from aspect_ratio_idc is Extended_SAR.
19692           This is a leftover from git commit a12662f.
19693           https://bugzilla.gnome.org/show_bug.cgi?id=740360
19694
19695 2014-11-25 11:46:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19696
19697         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
19698           decoder: mpeg4: fix uninitialized variables.
19699           Fix gst_vaapi_decoder_mpeg4_parse() to initialize the packet type to
19700           GST_MPEG4_USER_DATA so that a parse error would result in skipping
19701           that packet. Also fix gst_vaapi_decoder_mpeg4_decode_codec_data() to
19702           initialize status to GST_VAAPI_DECODER_STATUS_SUCCESS.
19703
19704 2014-11-25 11:41:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19705
19706         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
19707           encoder: h264: fix profile limits.
19708           Fix ensure_profile_limits() to lower profile to the desired limits,
19709           only if the latter are actually known and the profile needed to be
19710           changed to fit.
19711
19712 2014-11-24 15:14:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19713
19714         * gst/vaapi/gstvaapipostproc.c:
19715           vaapipostproc: fix out caps for GLMemory.
19716           If the best downstream capsfeature turns out to be GLMemory, then make
19717           sure to propagate RGBA video format in caps to that element. This fixes
19718           the following pipeline: ... ! vaapipostproc ! glimagesink.
19719
19720 2014-11-24 14:25:33 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19721
19722         * gst/vaapi/gstvaapipostproc.c:
19723           vaapipostproc: fix check for compatible src pad capsfilters.
19724           When an explicit output video format is selected, from an src pad
19725           capsfilter, make sure that the downstream element actually supports
19726           that format. In particular, fix crash with the following pipelines:
19727           ... ! vaapipostproc ! video/x-raw,format=XXX ! xvimagesink ; where
19728           XXX is a format not supported by xvimagesink.
19729           While doing so, also reduce the set of src pad filter caps to the
19730           actual set of allowed src pad caps.
19731
19732 2014-11-24 14:10:11 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19733
19734         * gst/vaapi/gstvaapipostproc.c:
19735         * gst/vaapi/gstvaapipostproc.h:
19736         * gst/vaapi/gstvaapiuploader.c:
19737         * gst/vaapi/gstvaapiuploader.h:
19738           plugins: re-indent all video processing related source code.
19739
19740 2014-11-24 13:20:33 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19741
19742         * gst/vaapi/gstvaapivideomemory.c:
19743           plugins: further fixes to the new "current" storage tracker.
19744           The ensure_surface() and ensure_image() functions shall only relate
19745           to the underlying backing store. The actual current flags are to be
19746           updated only through ensure_{surface,image}_is_current() or very other
19747           particular cases in GstMemory hooks.
19748
19749 2014-11-21 15:43:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19750
19751         * gst/vaapi/gstvaapivideomemory.c:
19752           plugins: fix "current" video memory flags.
19753           If the surface proxy is updated into the GstVaapiVideoMemory, then
19754           it is assumed it is the most current representation of the current
19755           video frame. Likewise, make a few more arrangements to have the
19756           "current " flags set more consistently.
19757
19758 2014-11-21 15:23:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19759
19760         * gst/vaapi/gstvaapivideomemory.c:
19761         * gst/vaapi/gstvaapivideomemory.h:
19762         * gst/vaapi/gstvaapivideometa.c:
19763           plugins: ensure VA surface is current prior to using it.
19764           When interacting with SW elements, the buffers and underlying video
19765           memory could be mapped as read/write. However, we need to use those
19766           buffers again as plain VA surfaces, we have to make sure the VA image
19767           is thus committed back to VA surface memory.
19768           This fixes pipelines involving avdec_* and vaapi{postproc,sink}.
19769
19770 2013-07-12 06:34:15 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
19771
19772         * gst/vaapi/gstvaapivideomemory.c:
19773           plugins: enable memory maps for read & write.
19774           Hence vaapisink can display buffers decoded by gst-libav, or HW decoded
19775           buffers can be further processed in-place, e.g. with a textoverlay.
19776           https://bugzilla.gnome.org/show_bug.cgi?id=704078
19777           [ported to current git master branch, amended commit message]
19778           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19779
19780 2014-11-18 14:57:02 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19781
19782         * gst/vaapi/gstvaapidecode.c:
19783         * gst/vaapi/gstvaapipluginutil.c:
19784         * gst/vaapi/gstvaapipluginutil.h:
19785         * gst/vaapi/gstvaapipostproc.c:
19786           plugins: preserve framerate when updating src caps video format.
19787           In the current implementation, gst_video_info_set_format() would reset
19788           the whole GstVideoInfo structure first, prior to setting video format
19789           and size. So, coleteral information like framerate or pixel-aspect-
19790           ratio are lost.
19791           Provide and use a unique gst_video_info_change_format() for overcome
19792           this issue, i.e. only have it change the format and video size, and
19793           copy over the rest of the fields.
19794           https://bugzilla.gnome.org/show_bug.cgi?id=734665
19795
19796 2014-11-18 14:07:57 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19797
19798         * gst/vaapi/gstvaapi.c:
19799           vaapidecode: increase the rank to GST_RANK_PRIMARY + 1
19800           This is for helping decodebin to autoplug the vaapidecode element.
19801           Decodebin is selecting decoder elements only based on rank and caps.
19802           Without overriding the autoplug-* signals there is no way to autoplug
19803           HW decoders inside decodebin. An easier soulution is to raise the
19804           rank of vaapidecode, so that it gets selected first.
19805           https://bugzilla.gnome.org/show_bug.cgi?id=739332
19806
19807 2014-11-12 07:46:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19808
19809         * gst-libs/gst/vaapi/gstvaapiprofile.c:
19810         * gst/vaapi/gstvaapidecode.c:
19811           vaapidecode: only expose supported profiles when needed.
19812           JPEG and VP8 codecs do not really support the concept of "profile". So,
19813           don't try to expose any set that wouldn't be supported by jpegparse, or
19814           ivfparse for instance.
19815           https://bugzilla.gnome.org/show_bug.cgi?id=739713
19816           https://bugzilla.gnome.org/show_bug.cgi?id=739714
19817
19818 2014-11-13 15:13:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19819
19820         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19821         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
19822         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
19823         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
19824           decoder: h264: add initial support for repeat-first-field (RFF) flag.
19825           Use the SEI pic_timing() message to track and propagate down the repeat
19826           first field (RFF) flag. This is only initial support as there is one
19827           other condition that could induce the RFF flag, which is not handled
19828           yet.
19829
19830 2014-11-13 15:05:19 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19831
19832         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19833           decoder: h264: fix picture ordering count type 0 with previous MMCO5.
19834           Fix the decoding process for picture order count type 0 when the previous
19835           picture had a memory_management_control_operation = 5. In particular, fix
19836           the actual variable type for prev_pic_structure to hold the full bits of
19837           the picture structure.
19838           In practice, this used to work though, due to the underlying type used to
19839           express a gboolean.
19840
19841 2014-11-13 15:00:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19842
19843         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
19844           decoder: h264: fix detection of top-field-first (TFF) flag.
19845           Use the SEI pic_timing() message to track the pic_struct variable when
19846           present, or infer it from the regular slice header flags field_pic_flag
19847           and bottom_field_flag. This fixes temporal sequence ordering when the
19848           output pictures are to be displayed.
19849           https://bugzilla.gnome.org/show_bug.cgi?id=739291
19850
19851 2014-11-14 09:54:02 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19852
19853         * ext/codecparsers:
19854           codecparsers: update to gst-vaapi-branch commit 3d05d9f.
19855           1241840 h264: fix derivation of MaxPicNum variable
19856           3bd718e h264: fix GstH264ParserResult documentation typo
19857           b021609 h264parse: set the HEADER flag on buffers containing SPS or PPS
19858           b08e4be h264parse: don't unnecesarily set src_caps
19859
19860 2014-11-03 19:20:43 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19861
19862         * gst/vaapi/gstvaapipostproc.c:
19863           vaapipostproc: Add string representation of VPP functions to ElementFactoy Klass
19864           Added the same Klass specifications used in other upstream
19865           video postprocessing elements like videoconvert, videoscale,
19866           videobalance and deinterlace.
19867           An example use case is for this is to help the playsink
19868           to autoplug the hardware accelerated deinterlacer.
19869
19870 2014-11-03 19:19:20 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19871
19872         * gst/vaapi/gstvaapipostproc.c:
19873           vaapipostproc: Tweak the output video format setting to enable the autoplugging
19874           This is a workaround until auto-plugging is fixed when
19875           format=ENCODED + memory:VASurface caps feature are provided.
19876           Use the downstream negotiated video format as the output video format
19877           if the user didn't ask for the colorspace conversion explicitly.
19878           Usecase: This will help to connect elements like videoscale, videorate etc
19879           to vaapipostproc.
19880           https://bugzilla.gnome.org/show_bug.cgi?id=739443
19881
19882 2014-10-29 17:30:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19883
19884         * gst/vaapi/gstvaapipostproc.c:
19885         * gst/vaapi/gstvaapipostproc.h:
19886           vaapipostproc: allow user defined scaling mode.
19887           Add new "scale-method" property to expose the scaling mode to use during
19888           video processing. Note that this is only a hint, and the actual behaviour
19889           may differ from implementation (VA driver) to implementation.
19890
19891 2014-10-29 16:57:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19892
19893         * gst-libs/gst/vaapi/gstvaapifilter.c:
19894         * gst-libs/gst/vaapi/gstvaapifilter.h:
19895         * gst-libs/gst/vaapi/gstvaapiutils.c:
19896         * gst-libs/gst/vaapi/gstvaapiutils.h:
19897           filter: add initial support for high quality scaling.
19898           Add support for video scaling options in VPP pipelines. Only the
19899           DEFAULT mode is bound to exist. Others might be folded into that
19900           mode.
19901
19902 2014-10-29 16:35:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19903
19904         * gst-libs/gst/vaapi/gstvaapifilter.c:
19905         * gst-libs/gst/vaapi/gstvaapifilter.h:
19906           filter: re-indent all GstVaapiFilter related source code.
19907
19908 2014-10-29 15:45:50 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19909
19910         * ext/codecparsers:
19911           codecparsers: update to gst-vaapi-branch commit f9d3bde.
19912           2218b02 h264parse: expose parsed profile and level to downstream
19913           3dbfab4 h264parse: return flushing if we get chained while being set to READY
19914           d40fa8b h264: fix frame packing SEI parsing
19915           32d40be h264: Use proper bit_reader api while parsing buffering_period SEI
19916           b3e022e h264: initialize some fields of pic_timing structure
19917           a70661d vc1: fix expected level in sequence-layer parsing unit test
19918           6cee88d vc1: fix level values for simple/main profile
19919           356c189 vc1: add unit test for sequence-layer parsing
19920           ab9f641 vc1: take care of endianness when parsing sequence-layer
19921           8dc8e35 mpeg4: fix vlc table used for sprite trajectory
19922
19923 2014-10-29 15:46:47 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19924
19925         * gst/vaapi/gstvaapidecode.c:
19926           vaapidecode: Expose the supported profiles as caps to upstream
19927           This will allows the playbin to fallback to Software Decoder
19928           if the Hardware Decoder does not support a particular profile.
19929           https://bugzilla.gnome.org/show_bug.cgi?id=730997
19930
19931 2014-10-29 15:46:12 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19932
19933         * gst/vaapi/gstvaapiencode.c:
19934         * gst/vaapi/gstvaapiencode.h:
19935         * gst/vaapi/gstvaapiencode_h264.c:
19936           encode: Attach the codec-data to out caps only based on negotiated caps
19937           Attach the codec_data to out_caps only if downstream needed.
19938           For eg: h264 encoder doesn't need to stuff codec_data to the
19939           src caps if the negotiated caps has a stream format of byte-stream.
19940           https://bugzilla.gnome.org/show_bug.cgi?id=734902
19941
19942 2014-10-29 15:45:44 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19943
19944         * configure.ac:
19945           configure: echoing installation prefix path
19946
19947 2014-09-24 10:14:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19948
19949         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
19950           display: add support for DRM Render-Nodes.
19951           Add support for DRM Render-Nodes. This is a new feature that appeared
19952           in kernel 3.12 for experimentation purposes, but was later declared
19953           stable enough in kernel 3.15 for getting enabled by default.
19954           This allows headless usages without authentication at all, i.e. usages
19955           through plain ssh connections is possible.
19956
19957 2014-09-24 13:44:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19958
19959         * gst/vaapi/gstvaapisink.c:
19960           vaapisink: clean-ups (indentation, drop unused variables).
19961
19962 2014-09-24 13:39:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19963
19964         * configure.ac:
19965         * gst/vaapi/gstvaapisink.c:
19966           vaapisink: fix GstNavigation "key-press" / "key-release" events.
19967           Fix arguments to XkbKeycodeToKeysym() for converting an X11 keycode
19968           to a KeySym. In particular, there is no such Window argument. Also
19969           make sure to check for, and use, the correct <X11/XKBlib.h> header
19970           where that new function is defined. Otherwise, default to the older
19971           XKeycodeToKeysym() function.
19972
19973 2014-09-24 13:23:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
19974
19975         * gst/vaapi/gstvaapisink.c:
19976           vaapisink: fix GstNavigation "mouse-move" event.
19977           Really use the motion event coordinates to propagate the "mouse-move"
19978           event to upper layer, instead of those from a button event. Those are
19979           technically the same though.
19980
19981 2014-09-16 14:25:40 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
19982
19983         * gst/vaapi/gstvaapisink.c:
19984           vaapisink: implement the GstNavigation interface
19985           This is useful for things like DVD menus, where key/mouse events
19986           would need to be forwarded from the upstream sink element.
19987           https://bugzilla.gnome.org/show_bug.cgi?id=711479
19988
19989 2014-03-13 18:38:33 +0000  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19990
19991         * gst/vaapi/gstvaapipluginbase.c:
19992           vaapipostproc: fix deinterlacing from non VA memory buffers.
19993           When we copy a buffer because we're moving it into VA-API memory, we
19994           need to copy flags. Otherwise, interlaced YUV buffers from a capture
19995           source (e.g. V4L2) don't get flagged as interlaced.
19996           https://bugzilla.gnome.org/show_bug.cgi?id=726270
19997           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
19998           [reversed order of gst_buffer_copy_into() flags to match <1.0 code]
19999           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20000
20001 2014-08-22 15:22:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20002
20003         * gst/vaapi/gstvaapipostproc.c:
20004           vaapipostproc: add support for GLTextureUploadMeta output.
20005           This allows for vaapipostproc to be chained to the glimagesink element
20006           for instance.
20007           https://bugzilla.gnome.org/show_bug.cgi?id=735231
20008
20009 2014-08-22 15:22:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20010
20011         * gst/vaapi/gstvaapipluginutil.c:
20012         * gst/vaapi/gstvaapipluginutil.h:
20013         * gst/vaapi/gstvaapipostproc.c:
20014           vaapipostproc: add support for "download" capability.
20015           Allow implicit conversions to raw video formats, while still keeping
20016           VA surfaces underneath. This allows for chaining the vaapipostproc
20017           element to a software-only element that takes care of maps/unmaps.
20018           e.g. xvimagesink.
20019           https://bugzilla.gnome.org/show_bug.cgi?id=720174
20020
20021 2014-08-22 18:10:54 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20022
20023         * gst/vaapi/gstvaapipostproc.c:
20024         * gst/vaapi/gstvaapipostproc.h:
20025           vaapipostproc: use pooled vaapi video meta.
20026           Use pooled GstVaapiVideoMeta information, i.e. always allocate that on
20027           video buffer allocation. Also optimize copy of additional metadata info
20028           into the resulting video buffer: only copy the video cropping info and
20029           the source surface proxy.
20030           https://bugzilla.gnome.org/show_bug.cgi?id=720311
20031           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20032           [fixed proxy leak, fixed double free on error, optimized meta copy]
20033           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20034
20035 2014-08-22 15:17:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20036
20037         * gst/vaapi/gstvaapipostproc.c:
20038           vaapipostproc: fix passthrough mode.
20039           If no explicit output surface format is supplied try to keep the one
20040           supplied through the sink pad caps. This avoids a useless copy, even
20041           if things are kept in GPU memory.
20042           This is a performance regression from git commit dfa70b9.
20043
20044 2014-07-05 21:00:34 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20045
20046         * gst/vaapi/gstvaapipostproc.c:
20047         * gst/vaapi/gstvaapipostproc.h:
20048           vaapipostproc: fix output buffer to have a GstVaapiVideoMemory.
20049           https://bugzilla.gnome.org/show_bug.cgi?id=720311
20050           [used new infrastructure through base decide_allocation() impl]
20051           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20052
20053 2014-08-22 11:13:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20054
20055         * gst/vaapi/gstvaapipostproc.c:
20056           vaapipostproc: enable advanced deinterlacing with same format.
20057           If only advanced deinterlacing is requested, i.e. deinterlacing is
20058           the only active algorithm to apply with source and output surface
20059           formats being the same, then make sure to enable VPP processing.
20060           Otherwise, allow fallback to bob-deinterlacing with simple rendering
20061           flags alteration.
20062
20063 2014-08-21 15:04:20 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20064
20065         * gst/vaapi/gstvaapivideomemory.c:
20066           vaapivideomemory: avoid NULL pointer unref if GstVaapiImage creation failed.
20067           https://bugzilla.gnome.org/show_bug.cgi?id=735156
20068
20069 2014-08-22 13:25:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20070
20071         * gst/vaapi/gstvaapipluginbase.c:
20072         * gst/vaapi/gstvaapipluginutil.c:
20073           plugins: fix memory leaks.
20074
20075 2014-08-21 14:10:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20076
20077         * gst/vaapi/gstvaapidecode.c:
20078         * gst/vaapi/gstvaapipluginbase.c:
20079         * gst/vaapi/gstvaapipluginbase.h:
20080           plugins: factor out decide_allocation() hook.
20081           Add a default decide_allocation() hook to GstVaapiPluginBase. The caps
20082           feature argument can be used to force a bufferpool with a specific kind
20083           of memory.
20084
20085 2014-08-21 11:12:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20086
20087         * gst/vaapi/gstvaapivideobufferpool.c:
20088         * gst/vaapi/gstvaapivideobufferpool.h:
20089         * gst/vaapi/gstvaapivideomemory.c:
20090           plugins: allow bufferpool to not allocate vaapi video meta.
20091           Add GST_VAAPI_VIDEO_BUFFER_POOL_ACQUIRE_FLAG_NO_ALLOC params flag that
20092           can be used to disable early allocations of vaapi video metas on buffers,
20093           thus delagating that to the bufferpool user.
20094
20095 2014-08-21 10:45:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20096
20097         * gst/vaapi/gstvaapivideobuffer.c:
20098         * gst/vaapi/gstvaapivideobuffer.h:
20099         * gst/vaapi/gstvaapivideobufferpool.c:
20100         * gst/vaapi/gstvaapivideobufferpool.h:
20101         * gst/vaapi/gstvaapivideocontext.c:
20102         * gst/vaapi/gstvaapivideocontext.h:
20103         * gst/vaapi/gstvaapivideoconverter_glx.c:
20104         * gst/vaapi/gstvaapivideoconverter_glx.h:
20105         * gst/vaapi/gstvaapivideoconverter_x11.c:
20106         * gst/vaapi/gstvaapivideoconverter_x11.h:
20107         * gst/vaapi/gstvaapivideomemory.c:
20108         * gst/vaapi/gstvaapivideomemory.h:
20109         * gst/vaapi/gstvaapivideometa.c:
20110         * gst/vaapi/gstvaapivideometa.h:
20111         * gst/vaapi/gstvaapivideometa_texture.c:
20112         * gst/vaapi/gstvaapivideometa_texture.h:
20113           plugins: re-indent all GstVaapiVideo* related source code.
20114
20115 2014-08-22 15:12:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20116
20117         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20118           surfaceproxy: fix copy to propagate view_id.
20119           Fix gst_vaapi_surface_proxy_copy() to copy the view-id element, thus
20120           fixing random frames skipped when vaapipostproc element is used in
20121           passthrough mode. In that mode, GstMemory is copied, thus including
20122           the underlying GstVaapiVideoMeta and associated GstVaapiSurfaceProxy.
20123
20124 2014-08-20 16:38:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20125
20126         * gst/vaapi/gstvaapipostproc.c:
20127           vaapipostproc: fix detection of output surface format changes.
20128           Default to I420 format for output surfaces so that to match the usual
20129           GStreamer pipelines. Though, internally, we could still opt for NV12
20130           surface formats, i.e. default format=ENCODED is a hint for that, thus
20131           delegating the decision to the VA driver.
20132
20133 2014-08-20 10:59:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20134
20135         * gst/vaapi/gstvaapipostproc.c:
20136           vaapipostproc: fix construction of allowed sink pad caps.
20137           Fix construction of the set of caps allowed on the sink pad to filter
20138           out unsupported raw video caps with GStreamer >= 1.2.
20139
20140 2014-08-20 10:37:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20141
20142         * gst/vaapi/gstvaapipostproc.c:
20143         * gst/vaapi/gstvaapipostproc.h:
20144           vaapipostproc: improve heuristics for detecting native VA surfaces.
20145           Use the new gst_caps_has_vaapi_surface() helper function to detect
20146           whether the sink pad caps contain native VA surfaces, or not, i.e.
20147           no raw video caps.
20148           Also rename is_raw_yuv to get_va_surfaces to make the variable more
20149           explicit as we just want a way to differentiate raw video caps from
20150           VA surfaces actually.
20151
20152 2014-08-12 18:33:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20153
20154         * gst/vaapi/gstvaapipostproc.c:
20155           vaapipostproc: disable discontinuity detection code.
20156           The "discontinuity" tracking code, whereby lost frames are tentatively
20157           detected, is inoperant if the sink pad buffer timestamps are not right
20158           to begin with.
20159           This is a temporary workaround until the following bug is fixed:
20160           https://bugzilla.gnome.org/show_bug.cgi?id=734386
20161
20162 2014-08-07 14:57:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20163
20164         * gst/vaapi/gstvaapipostproc.c:
20165           vaapipostproc: fix heuristic for detecting discontinuity.
20166           In order to make the discontinuity detection code useful, we need to
20167           detect the lost frames in the history as early as the previous frame.
20168           This is because some VA implementations only support one reference
20169           frame for advanced deinterlacing.
20170           In practice, turn the condition for detecting new frame that is beyond
20171           the previous frame from field_duration*2 to field_duration*3, i.e.
20172           nothing received for the past frame and a half because of possible
20173           rounding errors when calculating the field-duration either in this
20174           element (vaapipostproc), or from the upstream element (parser element).
20175           This is a regression introduced with commit faefd62.
20176           https://bugzilla.gnome.org/show_bug.cgi?id=734135
20177
20178 2014-08-20 11:43:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20179
20180         * gst/vaapi/gstvaapipluginbase.c:
20181         * gst/vaapi/gstvaapipluginbase.h:
20182           plugins: fix detection of raw video caps.
20183           Use the new gst_caps_has_vaapi_surface() helper function to better
20184           detect raw video caps, and in particular those from RGB colorspace.
20185           https://bugzilla.gnome.org/show_bug.cgi?id=734665
20186
20187 2014-08-20 11:30:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20188
20189         * gst/vaapi/gstvaapipluginutil.c:
20190         * gst/vaapi/gstvaapipluginutil.h:
20191           plugins: add helper for detecting VA surfaces in caps.
20192           Introduce new gst_caps_has_vaapi_surface() helper function to detect
20193           whether the supplied caps has VA surfaces. With GStreamer >= 1.2, this
20194           implies a check for memory:VASurface caps features, and format=ENCODED
20195           for earlier versions of GStreamer.
20196
20197 2014-08-12 13:01:57 +0300  Sebastian Dröge <sebastian@centricular.com>
20198
20199         * gst/vaapi/gstvaapidecode.c:
20200           vaapidecode: start the decoder task again after finishing
20201           This allows the element to accept data again after draining without
20202           a hard reset or caps change happening in between.
20203           https://bugzilla.gnome.org/show_bug.cgi?id=734616
20204
20205 2014-08-12 13:00:03 +0300  Sebastian Dröge <sebastian@centricular.com>
20206
20207         * gst/vaapi/gstvaapidecode.c:
20208           vaapidecode: unlock condition variables before shutting down the element
20209           Otherwise threads might wait for them, causing the shutdown of the element
20210           to deadlock on the streaming thread.
20211           https://bugzilla.gnome.org/show_bug.cgi?id=734616
20212
20213 2014-08-11 17:15:24 +0300  Sebastian Dröge <sebastian@centricular.com>
20214
20215         * gst/vaapi/gstvaapidecode.c:
20216           vaapidecode: reset decoder_finish variable after stopping the decoder thread
20217           Otherwise the element is not usable again after draining/EOS.
20218           https://bugzilla.gnome.org/show_bug.cgi?id=734616
20219
20220 2014-08-11 17:14:53 +0300  Sebastian Dröge <sebastian@centricular.com>
20221
20222         * gst/vaapi/gstvaapidecode.c:
20223           vaapidecode: don't try flushing the decoder instance if we didn't create one yet
20224           This otherwise results in unnecessary error messages.
20225           https://bugzilla.gnome.org/show_bug.cgi?id=734616
20226
20227 2014-08-01 06:32:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20228
20229         * gst-libs/gst/vaapi/Makefile.am:
20230         * gst/vaapi/Makefile.am:
20231           build: fix with --no-undefined linker flags.
20232           https://bugzilla.gnome.org/show_bug.cgi?id=729352
20233
20234 2014-01-23 15:44:09 +0000  Changzhi Wei <changzhix.wei@intel.com>
20235
20236         * gst/vaapi/gstvaapisink.c:
20237         * gst/vaapi/gstvaapisink.h:
20238           vaapisink: add support for GstColorBalance interface.
20239           https://bugzilla.gnome.org/show_bug.cgi?id=722390
20240           [fixed channel names, simplified range factor, fixed memory leak]
20241           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20242
20243 2014-01-23 15:23:00 +0000  Changzhi Wei <changzhix.wei@intel.com>
20244
20245         * gst/vaapi/gstvaapisink.c:
20246         * gst/vaapi/gstvaapisink.h:
20247           vaapisink: add support for colorbalance adjustment.
20248           https://bugzilla.gnome.org/show_bug.cgi?id=722390
20249           [fixed and simplified tracking of colorbalance value changes]
20250           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20251
20252 2014-07-31 13:18:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20253
20254         * gst/vaapi/gstvaapisink.c:
20255           vaapisink: improve installation of properties.
20256           Simplify the creation and installation process of properties, by first
20257           accumulating them into a g_properties[] array, and next calling into
20258           g_object_class_install_properties().
20259           Also add missing docs and flags to some properties.
20260
20261 2014-07-31 10:48:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20262
20263         * gst/vaapi/gstvaapisink.c:
20264         * gst/vaapi/gstvaapisink.h:
20265           vaapisink: code clean-ups.
20266           Move code around in a more logical way. Introduce GST_VAAPISINK_CAST()
20267           helper macro and use it wherever we know the object is a GstBaseSink or
20268           any base class. Drop explicit initializers for values that have defaults
20269           set to zero.
20270
20271 2014-07-31 10:37:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20272
20273         * gst/vaapi/gstvaapisink.c:
20274         * gst/vaapi/gstvaapisink.h:
20275           vaapisink: re-indent all GstVaapiSink related source code.
20276
20277 2014-07-30 17:27:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20278
20279         * gst/vaapi/gstvaapisink.c:
20280         * gst/vaapi/gstvaapisink.h:
20281           vaapisink: introduce separate backends.
20282           Introduce new backends vtable so that to have clean separation between
20283           display dependent code and common base code. That's a "soft" separation,
20284           we don't really need dedicated objects.
20285           https://bugzilla.gnome.org/show_bug.cgi?id=722248
20286
20287 2014-07-30 16:47:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20288
20289         * gst/vaapi/gstvaapisink.c:
20290         * gst/vaapi/gstvaapisink.h:
20291           vaapisink: drop unused "synchronous" mode.
20292           Support for X11 "synchronous" mode was never implemented, and was only
20293           to be useful for debugging. Drop that altogether, that's not going to
20294           be useful in practice.
20295           https://bugzilla.gnome.org/show_bug.cgi?id=733985
20296
20297 2014-07-30 17:32:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20298
20299         * gst/vaapi/gstvaapisink.c:
20300         * gst/vaapi/gstvaapisink.h:
20301           vaapisink: drop unused variables.
20302           Drop obsolete, and now unused, video_buffer_pool and video_buffer_size
20303           variables. They got merged into the GstVaapiPluginBase object.
20304
20305 2014-07-30 16:35:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20306
20307         * gst/vaapi/gstvaapisink.c:
20308         * gst/vaapi/gstvaapisink.h:
20309           vaapisink: drop GLX rendering and fancy effects.
20310           Rendering with GLX in vaapisink is kind of useless nowadays, including
20311           OpenGL related fancy effects. Plain VA/GLX interfaces are also getting
20312           deprecated in favor of EGL, or more direct buffer sharing with actual
20313           GL textures.
20314           Should testing of interop with GLX be needed, one could still be using
20315           the modern cluttersink or glimagesink elements.
20316           https://bugzilla.gnome.org/show_bug.cgi?id=733984
20317
20318 2013-11-05 14:01:11 +0100  Holger Kaelberer <hk@getslash.de>
20319
20320         * gst/vaapi/gstvaapisink.c:
20321         * gst/vaapi/gstvaapisink.h:
20322           vaapisink: listen to window size changes on X11.
20323           Allow dynamic changes to the window, e.g. performed by the user, and
20324           make sure to refresh its contents, while preserving aspect ratio.
20325           In practice, Expose and ConfigureNotify events are tracked in X11
20326           display mode by default. This occurs in a separte event thread, and
20327           this is similar to what xvimagesink does. Any of those events will
20328           trigger a reconfiguration of the window "soft" size, subsequently
20329           the render-rect when necessary, and finally _expose() the result.
20330           The default of handle_events=true can be changed programatically via
20331           gst_x_overlay_handle_events().
20332           Thanks to Fabrice Bellet for rebasing the patch.
20333           https://bugzilla.gnome.org/show_bug.cgi?id=711478
20334           [dropped XInitThreads(), cleaned up the code a little]
20335           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20336
20337 2014-07-29 15:47:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20338
20339         * gst/vaapi/gstvaapidecode.c:
20340           vaapidecode: decode and output all pending frames on normal EOS.
20341           The gst_vaapidecode_decode_loop() function is called within a separate
20342           task to fetch and output all frames that were decoded so far. So, if
20343           the decoder_loop_status is forcibly set to EOS when _finish() is called,
20344           then we are bound to exist the task without submitting the pending
20345           frames.
20346           If the downstream element error'ed out, then the gst_pad_push() would
20347           propagate up an error and so we will get it right for cutting off
20348           _finish() early in that case.
20349           This is a regression from 6003596.
20350           https://bugzilla.gnome.org/show_bug.cgi?id=733897
20351
20352 2014-07-29 13:24:52 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20353
20354         * configure.ac:
20355           Bump version for development.
20356
20357 2014-07-29 10:31:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20358
20359         * AUTHORS:
20360           AUTHORS: updates.
20361
20362 2014-07-29 10:31:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20363
20364         * NEWS:
20365           NEWS: updates.
20366
20367 2014-07-29 16:22:01 +1000  Matthew Waters <ystreet00@gmail.com>
20368
20369         * gst/vaapi/gstvaapidecode.c:
20370           vaapidecode: properly return from decode loop on downstream errors.
20371           Fixes a hang/race on shutdown where _decode_loop() had already completed
20372           its execution and _finish() was waiting on a GCond for decode_loop()
20373           to complete.  Also fixes the possible race where _finish() is called
20374           but _decode_loop() endlessly returns before signalling completion
20375           iff the decoder instance returns GST_FLOW_OK.
20376           Found with: ... ! vaapidecode ! {glimagesink,cluttersink}
20377           https://bugzilla.gnome.org/show_bug.cgi?id=733897
20378           [factored out GST_VIDEO_DECODER_STREAM_UNLOCK() call]
20379           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20380
20381 2014-07-28 18:45:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20382
20383         * NEWS:
20384         * configure.ac:
20385           0.5.9.
20386
20387 2014-07-28 18:31:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20388
20389         * gst/vaapi/gstvaapisink.c:
20390           vaapisink: fix GstVideoOverlay::expose() implementation.
20391           Now that we always track the currently active video buffer, it is
20392           not necessary to automatically increase its reference since this is
20393           implicitly performed in ::show_frame() through the get_input_buffer()
20394           helper from GstVaapiPluginBase class.
20395           This is a regression from a26df80.
20396
20397 2014-07-28 18:00:19 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20398
20399         * gst/vaapi/gstvaapidecode.c:
20400         * gst/vaapi/gstvaapipluginutil.c:
20401           vaapidecode: simplify bufferpool configuration.
20402           Rework the logics behind the configuration of an adequate bufferpool,
20403           especially when OpenGL meta or additional capsfeatures are needed.
20404           Besides, for GStreamer >= 1.4, the first capsfeatures that gets matched,
20405           and that is not system memory, is now selected by default.
20406
20407 2014-07-28 16:43:47 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20408
20409         * gst/vaapi/gstvaapidecode.c:
20410           vaapidecode: fix auto-plugging of vaapisink element.
20411           Make sure to propagate memory:VASurface capsfeature to srcpad caps
20412           only for GStreamer >= 1.5 as the plug-in elements in GStreamer 1.4
20413           core currently miss additional patches available in 1.5-git (1.6).
20414           This is a temporary workaround.
20415
20416 2014-07-28 15:54:46 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20417
20418         * configure.ac:
20419           configure: allow builds against GStreamer git (1.5.x).
20420           https://bugzilla.gnome.org/show_bug.cgi?id=733688
20421
20422 2014-07-28 14:20:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20423
20424         * configure.ac:
20425           configure: fix build with GStreamer 1.4.0 release.
20426
20427 2014-03-04 19:40:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20428
20429         * configure.ac:
20430         * debian.upstream/Makefile.am:
20431         * debian.upstream/control.in:
20432           debian: fix packaging for new naming scheme.
20433
20434 2014-07-28 11:52:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20435
20436         * NEWS:
20437           NEWS: updates.
20438
20439 2014-07-28 11:39:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20440
20441         * configure.ac:
20442           configure: mark support for GStreamer < 1.2 as deprecated.
20443           Supporting anything thing below GStreamer 1.2 is asking for trouble
20444           for keeping up with the required facilities to make efficient pipelines.
20445           Users are invited to upgrade to the very latest GStreamer 1.2.x release,
20446           at the minimum.
20447
20448 2014-07-28 11:35:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20449
20450         * configure.ac:
20451           configure: mark support for GStreamer 0.10 as obsolete.
20452           Support for GStreamer 0.10 is obsolete. i.e. it is no longer supported
20453           and may actually be removed altogether for a future release. There is
20454           no real point to maintain a build for such an ancient GStreamer version
20455           that is not even supported upstream.
20456
20457 2014-07-28 10:25:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20458
20459         * gst/vaapi/gstvaapisink.c:
20460         * gst/vaapi/gstvaapisink.h:
20461           vaapisink: allow a specific view component to be displayed.
20462           If a multiview stream is decoded, multiple view components are submitted
20463           as is downstream. It is the responsibility of the sink element to display
20464           the required view components. By default, always select the frame buffer
20465           that matches the view-id of the very first frame to be displayed.
20466           However, introduce a "view-id" property to allow the selection of a
20467           specific view component of interest to display.
20468
20469 2014-07-28 10:09:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20470
20471         * gst/vaapi/gstvaapisink.c:
20472           vaapisink: always keep the last displayed buffer around.
20473           Always record the VA surface that is currently being rendered, no matter
20474           the fact we are using texturedblit or overlay. That's because in some
20475           occasions, we need to refresh or resize the displayed contents based on
20476           new events. e.g. user-resized window.
20477           Besides, it's simpler to track the last video buffer in GstVaapiSink than
20478           through the base sink "last-sample".
20479
20480 2014-07-25 11:13:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20481
20482         * gst/vaapi/gstvaapipluginbase.c:
20483         * gst/vaapi/gstvaapipluginbase.h:
20484         * gst/vaapi/gstvaapipluginutil.c:
20485         * gst/vaapi/gstvaapisink.c:
20486           vaapisink: add support for "display-name" property.
20487           Add a "display-name" property to vaapisink so that the end user could
20488           select the desired output. Keep "display-name" in-line with the existing
20489           "display" (GstVaapiDisplayXXX type).
20490           So, for X11 or GLX, the "display-name" is the usual display name as we
20491           know for XOpenDisplay(); for Wayland, the "display-name" is the name used
20492           for wl_display_connect(); and for DRM, the "display-name" is actually the
20493           DRI device name.
20494           https://bugzilla.gnome.org/show_bug.cgi?id=722247
20495
20496 2014-07-25 17:29:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20497
20498         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20499           window: make gst_vaapi_window_reconfigure() thread-safe.
20500           Ensure the X11 implementation for GstVaapiWindow::get_geometry() is
20501           thread-safe by default, so that upper layer users don't need to handle
20502           that explicitly.
20503
20504 2013-07-29 09:28:28 +0200  Holger Kaelberer <hk@getslash.de>
20505
20506         * gst-libs/gst/vaapi/gstvaapiwindow.c:
20507         * gst-libs/gst/vaapi/gstvaapiwindow.h:
20508           window: allow for updating size from current geometry.
20509           Add gst_vaapi_window_reconfigure() interface to force an update of
20510           the GstVaapiWindow "soft" size, based on the current geometry of the
20511           underlying native window.
20512           This can be useful for instance to synchronize the window size when
20513           the user changed it.
20514           Thanks to Fabrice Bellet for rebasing the patch.
20515           [changed interface to gst_vaapi_window_reconfigure()]
20516           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20517
20518 2014-07-25 16:53:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20519
20520         * gst-libs/gst/vaapi/gstvaapiwindow.c:
20521         * gst-libs/gst/vaapi/gstvaapiwindow.h:
20522         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
20523         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
20524         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
20525         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
20526         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
20527         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
20528         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
20529         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
20530         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
20531         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
20532           window: re-indent all GstVaapiWindow related source code.
20533
20534 2014-07-25 11:24:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20535
20536         * gst-libs/gst/vaapi/gstvaapidisplay.c:
20537         * gst-libs/gst/vaapi/gstvaapidisplay.h:
20538         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
20539           display: add interface to retrieve the display name.
20540           Add gst_vaapi_display_get_display_name() helper function to determine
20541           the name associated with the underlying native display. Note that for
20542           raw DRM backends, the display name is actually the device path.
20543
20544 2014-07-25 10:55:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20545
20546         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
20547           display: fix comparison of X11 display names.
20548           Make sure to not only compare display host names, but also the actual
20549           display number. The screen number does not need to be checked at this
20550           time.
20551
20552 2014-07-25 15:52:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20553
20554         * gst/vaapi/gstvaapidecode.c:
20555         * gst/vaapi/gstvaapivideobufferpool.c:
20556           vaapidecode: add support for VideoAlignment bufferpool option.
20557           Always add VideoAlignment bufferpool option if the downstream element
20558           expects its own pool to be used but does not offer it through a proper
20559           propose_allocation() implementation for instance, and that the ALLOCATION
20560           query does not expose the availability of the Video Meta API.
20561           This fixes propagation of video buffer stride information to Firefox.
20562
20563 2014-07-25 15:44:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20564
20565         * gst/vaapi/gstvaapivideomemory.c:
20566           vaapivideomemory: always prefer native VA surface formats.
20567           Make sure to always prefer native internal formats for the VA surfaces
20568           that get allocated. Also disable "direct-rendering" mode in this case.
20569           This is needed so that to make sure that anything that gets out of the
20570           decoder, or anything that gets into the encoder, is in native format
20571           for the hardware, and thus the driver doesn't need to perform implicit
20572           conversions in there. Interop with SW elements is still available with
20573           fast implementations of VA imaging APIs.
20574
20575 2014-07-24 11:58:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20576
20577         * gst/vaapi/gstvaapivideomemory.c:
20578           vaapivideomemory: disallow memory shares across buffers, use a copy.
20579           Forbid shares of GstMemory instances, and rather make copy of it. This
20580           effectively copies the GstMemory structure and enclosed metadata, but
20581           this does not copy the VA surface contents itself. It should though.
20582           This fixes preroll and makes sure to not download garbage for the first
20583           frame when a SW rendering sink is used.
20584
20585 2014-07-24 06:46:22 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20586
20587         * gst/vaapi/gstvaapivideomemory.c:
20588         * gst/vaapi/gstvaapivideomemory.h:
20589           vaapivideomemory: use an image pool to cache objects.
20590           Use an image pool to hold VA images to be used for downloads/uploads
20591           of contents for the associated surface.
20592           This is an optmization for size. So, instead of creating as many VA
20593           images as there are buffers (then VA surfaces) allocated, we only
20594           maintain a minimal set of live VA images, thus preserving memory
20595           resources.
20596
20597 2014-07-24 00:14:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20598
20599         * gst/vaapi/gstvaapivideomemory.c:
20600           vaapivideomemory: forbid R/W mappings if non direct-rendering mode.
20601           Disable read-write mappings if "direct-rendering" is not supported.
20602           Since the ordering of read and write operations is not specified,
20603           this would require to always download the VA surface on _map(), then
20604           commit the temporary VA image back to the VA surface on _unmap().
20605           Some SW decoding plug-in elements still use R/W mappings though.
20606           https://bugzilla.gnome.org/show_bug.cgi?id=733242
20607
20608 2014-07-23 23:49:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20609
20610         * gst/vaapi/gstvaapivideomemory.c:
20611           vaapivideomemory: minor code clean-ups.
20612           Fix error messages introduced in the previous commit for the _map()
20613           imaplementation. Also use the new get_image_data() helper function
20614           to determine the base pixels data buffer from a GstVaapiImage when
20615           updating the video info structure from it.
20616
20617 2014-07-23 18:54:13 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20618
20619         * gst/vaapi/gstvaapivideomemory.c:
20620         * gst/vaapi/gstvaapivideomemory.h:
20621           vaapivideomemory: add support for raw pixels mappings.
20622           Allow raw pixels of the whole frame to be mapped read-only. i.e. in
20623           cases where the buffer pool is allocated without VideoMeta API, thus
20624           individual planes cannot be mapped.
20625           This is initial support for Firefox >= 30.
20626           https://bugzilla.gnome.org/show_bug.cgi?id=731886
20627
20628 2014-07-03 18:41:11 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20629
20630         * gst/vaapi/gstvaapivideomemory.c:
20631           vaapivideomemory: fix determination of the surface pool format.
20632           While creating the vaapi video allocator, make sure the associated
20633           surface pool has correct format instead of defaulting to NV12 video
20634           format even though there is no direct rendering support.
20635           https://bugzilla.gnome.org/show_bug.cgi?id=732691
20636
20637 2014-07-23 18:01:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20638
20639         * gst/vaapi/gstvaapivideomemory.c:
20640           vaapivideomemory: fix association of surface to proxy.
20641           Make sure to always update the VA surface pointer whenever the proxy
20642           changes. This used to only work when the VA surface is written to, in
20643           interop with SW element ("upload" feature), and this now fixes cases
20644           when the VA surface is needed for reading, in interop with SW element
20645           ("download" feature).
20646
20647 2014-07-23 10:23:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20648
20649         * gst/vaapi/gstvaapidecode.c:
20650         * gst/vaapi/gstvaapipluginutil.c:
20651         * gst/vaapi/gstvaapivideomemory.c:
20652           plugins: expose I420 format for interop with SW elements.
20653           Always expose I420 format by default when the VA surface could be
20654           mapped for interoperability with non harware accelerated elements.
20655           However, the default behaviour remains the auto-plugging of vaapi
20656           elements, down to the sink.
20657           Side effect: "direct-rendering" mode is also disabled most of the
20658           times as plain memcpy() from uncached speculative write combining
20659           memory is not going to be efficient enough.
20660
20661 2014-07-22 18:54:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20662
20663         * gst/vaapi/gstvaapidecode.c:
20664         * gst/vaapi/gstvaapivideomemory.c:
20665           plugins: allow download capability to vaapidecode element.
20666           Fix support for VA surface download capability in vaapidecode element
20667           for GStreamer >= 1.2. This is a fix to supporting libva-vdpau-driver,
20668           but also the libva-intel-driver while performing hardware accelerated
20669           conversions from the native VA surface format (NV12) to the desired
20670           output VA image format.
20671           For instance, this fixes pipelines involving vaapidecode ! xvimagesink.
20672           https://bugzilla.gnome.org/show_bug.cgi?id=733243
20673
20674 2014-07-17 01:51:36 +0200  Fabrice Bellet <fabrice@bellet.info>
20675
20676         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
20677           decoder: mpeg4: fix picture decoder return value for skipped frames.
20678           The picture decoder should return GST_VAAPI_DECODER_STATUS_DROP_FRAME
20679           when a frame should be skipped, so the stream processing is not stalled.
20680           https://bugzilla.gnome.org/show_bug.cgi?id=733324
20681
20682 2014-07-04 15:13:32 +1000  Jan Schmidt <jan@centricular.com>
20683
20684         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
20685           decoder: mpeg2: respect any input PTS provided for a frame.
20686           The timestamp generator in gstvaapidecoder_mpeg2.c always interpolated
20687           frame timestamps within a GOP, even when it's been fed input PTS for
20688           every frame.
20689           That leads to incorrect output timestamps in some situations - for example
20690           live playback where input timestamps have been scaled based on arrival time
20691           from the network and don't exactly match the framerate.
20692           https://bugzilla.gnome.org/show_bug.cgi?id=732719
20693
20694 2014-01-22 08:20:59 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20695
20696         * gst-libs/gst/vaapi/gstvaapiobject.c:
20697           GstVaapiObject: make gst_vaapi_object_new() more robust.
20698           Forbid GstVaapiObject to be created without an associated klass spec.
20699           It is mandatory that the subclass implements an adequate .finalize()
20700           hook, so it shall provide a valid GstVaapiObjectClass.
20701           https://bugzilla.gnome.org/show_bug.cgi?id=722757
20702           [made non-NULL klass argument to gst_vaapi_object_new() a requirement]
20703           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20704
20705 2014-01-21 15:43:57 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20706
20707         * gst-libs/gst/vaapi/gstvaapiobject.c:
20708           GstVaapiObject: initialize the derived object data with init() hook.
20709           Call the subclass .init() function in gst_vaapi_object_new(), if
20710           needed. The default behaviour is to zero initialize the subclass
20711           object data, then the .init() function can be used to initialize
20712           fields to non-default values, e.g. VA object ids to VA_INVALID_ID.
20713           Also fix the gst_vaapi_object_new() description, which was merely
20714           copied from GstVaapiMiniObject.
20715           https://bugzilla.gnome.org/show_bug.cgi?id=722757
20716           [changed to always zero initialize the subclass]
20717           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20718
20719 2014-06-13 21:45:04 +0100  Lionel Landwerlin <llandwerlin@gmail.com>
20720
20721         * gst/vaapi/gstvaapidecode.c:
20722           vaapidecode: make decoder work with playbin
20723           When playbin/decodebin builds the pipeline, it puts decoders and sinks
20724           into different bins and forwards the queries from bins to bins. So in
20725           the initials steps the pipeline is built iteratively by playbin and
20726           looks like this :
20727           [filesrc]
20728           [filesrc] -> [typefind]
20729           [filesrc] -> [typefind] -> [demuxer]
20730           [filesrc] -> [typefind] -> [demuxer] -> [decoder]
20731           At this point the decoder is asked for its SRC caps and it will make a
20732           choice based on what gst_pad_peer_query_caps() returns. The problem is
20733           that the caps returns at that point includes caps features like ANY,
20734           essentially because playbin can plug in additional elements like
20735           videoscale, videoconv or deinterlace.
20736           This patch adds a another call to
20737           gst_vaapi_find_preferred_caps_feature() when the decoder decides its
20738           allocation, to make sure we asks the downstream elements when the
20739           entire pipeline has been built.
20740           https://bugzilla.gnome.org/show_bug.cgi?id=731645
20741
20742 2014-06-27 11:57:11 +0100  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20743
20744         * gst/vaapi/gstvaapipostproc.c:
20745           vaapipostproc: don't let tmp_rect go out of scope.
20746           A compiler change showed me that tmp_rect went out of scope before
20747           it was used. Move it to the beginning of the function instead.
20748           https://bugzilla.gnome.org/show_bug.cgi?id=726363
20749           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
20750           [added guards for GStreamer 0.10 builds]
20751           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20752
20753 2014-07-03 22:44:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20754
20755         * AUTHORS:
20756           AUTHORS: updates.
20757
20758 2014-07-03 22:34:35 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20759
20760         * README:
20761           README: updates.
20762           Drop references to deprecated plugins (vaapiupload, vaapidownload),
20763           mention that support for GStreamer 0.10 is deprecated, make overview
20764           more descriptive in certain aspects.
20765
20766 2014-07-03 22:21:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20767
20768         * NEWS:
20769           NEWS: updates.
20770
20771 2014-07-03 19:42:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20772
20773         * README:
20774         * configure.ac:
20775           build: mention that support for GStreamer 0.10 is deprecated.
20776
20777 2014-07-03 17:17:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20778
20779         * configure.ac:
20780         * gst/vaapi/gstvaapidecode.c:
20781           build: fix for GStreamer 0.10.
20782
20783 2014-07-03 18:01:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20784
20785         * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
20786         * patches/videoparsers/0002-h264parse-fix-build-with-older-GStreamer-1.x-stacks.patch:
20787         * patches/videoparsers/series.frag:
20788           build: fix for GStreamer 1.0.x.
20789
20790 2014-07-03 13:48:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20791
20792         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20793           decoder: h264: detect incorrectly paired fields in frames.
20794           When a DPB flush is required, e.g. at a natural and of stream or issued
20795           explicitly through an IDR, try to detect any frame left in the DPB that
20796           is interlaced but does not contain two decoded fields. In that case, mark
20797           the picture as having a single field only.
20798           This avoids a hang while decoding tv_cut.mkv.
20799
20800 2014-07-03 11:13:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20801
20802         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20803           decoder: h264: simplify the DPB output process.
20804           Simplify the dpb_output() function to exclusively rely on the frame store
20805           buffer to output, since this is now always provided. Besides, also fix
20806           cases where split fields would not be displayed.
20807           This is a regression from f48b1e0.
20808
20809 2014-07-01 17:20:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20810
20811         * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
20812         * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
20813         * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
20814         * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
20815         * patches/videoparsers/series.frag:
20816           h264parse: drop patches merged upstream.
20817           0003-h264parse-fix-and-optimize-NAL-collection-function.patch
20818           0005-h264parse-introduce-new-state-tracking-variables.patch
20819           0006-h264parse-improve-conditions-for-skipping-NAL-units.patch
20820           0007-h264parse-fix-collection-of-access-units-to-preserve.patch
20821
20822 2014-07-01 17:18:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20823
20824         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20825           decoder: h264: fix memory leak in PPS.
20826           Cope with latest changes from codecparsers/h264. It is now required
20827           to explicitly clear the GstH264PPS structure as it could contain
20828           additional allocations (slice_group_ids).
20829
20830 2014-07-01 17:13:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20831
20832         * ext/codecparsers:
20833           codecparsers: update to gst-vaapi-branch commit 2d53b69.
20834           c4ace00 h264parse: fix collection of access units to preserve config headers
20835           0f9f7c9 h264parse: improve conditions for skipping NAL units
20836           9ffb25c h264parse: introduce new state tracking variables
20837           64955d3 h264parse: fix and optimize NAL collection function
20838           13cd2a3 h264: clarifications and documentation fixes
20839           53e7dd1 h264: fix identification of EOSEQ and EOS NALs
20840           18f0de0 h264: fix memory leak in GstH264PPS
20841           fdcb54c h264: fix typo in GstH264VUIParams description
20842           fd4dae9 vp8: move up built-in range decoder private data
20843
20844 2014-06-30 19:01:35 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20845
20846         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20847         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
20848         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
20849         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
20850           decoder: propagate MVC metadata ("view-id", head of multiview set).
20851           Add new GstVaapiSurfaceProxy flag FFB, which means "first frame in
20852           bundle", and really expresses the first view component of a multi
20853           view coded frame. e.g. in H.264 MVC, the surface proxy has flag FFB
20854           set if VOIdx = 0.
20855           Likewise, new API is exposed to retrieve the associated "view-id".
20856
20857 2014-06-30 18:46:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20858
20859         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20860         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
20861           decoder: propagate "one-field" flags.
20862           Allow decoders to set the "one-field" attribute when the decoded frame
20863           genuinely has a single field, or if the second field was mis-decoded but
20864           we still want to display the first field.
20865
20866 2014-06-30 18:34:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20867
20868         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
20869           decoder: output decoded frames only once.
20870           Make sure to output the decoded picture, and push the associated
20871           GstVideoCodecFrame, only once. The frame fully represents what needs
20872           to be output, included for interlaced streams. Otherwise, the base
20873           GstVideoDecoder class would release the frame twice.
20874           Anyway, the general process is to output decoded frames only when
20875           they are complete. By complete, we mean a full frame was decoded or
20876           both fields of a frame were decoded.
20877
20878 2014-06-30 16:12:52 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20879
20880         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20881           decoder: h264: decode current picture earlier.
20882           Slightly optimize decoding process by submitting the current VA surface
20883           for decoding earlier to the hardware, and perform the reference picture
20884           marking process and DPB update process afterwards.
20885           This is a minor optimization to let the video decode engine kick in work
20886           earlier, thus improving parallel resources utilization.
20887
20888 2014-06-30 16:09:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20889
20890         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20891           decoder: h264: fix output of second field when first field is not in DPB.
20892           Fix decoding of interlaced streams where a first field (e.g. B-slice)
20893           was immediately output and the current decoded field is to be paired
20894           with that former frame, which is no longer in DPB.
20895           https://bugzilla.gnome.org/show_bug.cgi?id=701340
20896
20897 2014-06-30 11:06:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20898
20899         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20900           decoder: h264: slightly optimize the process to detect new pictures.
20901           Optimize the process to detect new pictures or start of new access
20902           units by checking if the previous NAL unit was the end of a picture,
20903           or the end of the previous access unit.
20904
20905 2014-06-13 15:42:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20906
20907         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20908           decoder: h264: handle access unit ("au") optimization.
20909           Optimize parsing when buffers are supplied with access unit alignment.
20910           This helps determining faster when the end of an access unit is reached.
20911
20912 2014-06-28 07:25:35 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20913
20914         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20915           decoder: h264: fix tracking of DPB size changes.
20916           Add support for MVC streams with multiple SPS and subset SPS headers
20917           emitted regularly, e.g. at around every I-frame. Track the maximum
20918           number of views in ensure_context() and really reset the DPB size to
20919           the expected value, always. i.e. even if it decreased. dpb_reset()
20920           only cares of ensuring the DPB allocation.
20921
20922 2014-06-27 20:44:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20923
20924         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
20925           decoder: h264: fix the DPB compaction process.
20926           Fix the compaction process when the DPB is cleared for a specific
20927           view, i.e. fix the process of filling in the holes resulting from
20928           removing frame buffers matching the current picture.
20929
20930 2014-06-27 16:38:03 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20931
20932         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20933           encoder: h264: generate new SPS only when codec config changed.
20934           It is not necessary to periodically send SPS or subset SPS headers.
20935           This is up to the upper layer (e.g. transport layer) to decide on
20936           if/how to periodically submit those. For now, only generate new SPS
20937           or subset SPS headers when the codec config changed.
20938           Note: the upper layer could readily determine the config headers
20939           (SPS/PPS) through the gst_vaapi_encoder_h264_get_codec_data() function.
20940           https://bugzilla.gnome.org/show_bug.cgi?id=732083
20941           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20942
20943 2014-06-27 18:43:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20944
20945         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20946           encoder: h264: track encoder config changes.
20947           Track and report when encoder configuration changed. For now, this covers
20948           resolution, profile/level and bitrate changes.
20949
20950 2014-06-27 13:15:13 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20951
20952         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20953           encoder: h264: add pixel-aspect-ratio to VUI parameters.
20954           Report sample aspect ratio (SAR) as present, and make it match what
20955           we have obtained from the user as pixel-aspect-ratio (PAR). i.e. the
20956           VUI parameter aspect_ratio_info_present_flag now defaults to TRUE.
20957
20958 2014-06-27 00:49:34 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20959
20960         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20961           encoder: h264: fix number of anchor and non-anchor reference pictures.
20962           Set the value of num_anchor_refs_l0, num_anchor_refs_l1, num_non_anchor_refs_l0,
20963           and num_non_anchor_refs_l1 to zero since the inter-view prediction is not yet
20964           supported.
20965
20966 2014-06-27 10:37:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20967
20968         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20969           encoder: h264: fix timing_info_present_flag value in subset SPS.
20970           When the seq_parameter_set_data() syntax structure is present in a subset
20971           sequence parameter set and vui_parameters_present_flag is equal to 1, then
20972           timing_info_present_flag shall be equal to 0 (H.7.4.2.1.1).
20973
20974 2014-06-26 14:39:52 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
20975
20976         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
20977           encoder: h264: add cpbBrNalFactor values for MVC profiles.
20978
20979 2014-06-26 14:51:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20980
20981         * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
20982           h264parse: fix detection of access unit boundaries for MVC.
20983           The gst_h264_parse_collect_nal() function is a misnomer. In reality,
20984           this function is used to determine access unit boundaries, i.e. that
20985           is the key function for alignment=au output format generation.
20986
20987 2014-06-26 14:49:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
20988
20989         * patches/videoparsers/0007-h264parse-fix-collection-of-access-units-to-preserve.patch:
20990         * patches/videoparsers/series.frag:
20991           h264parse: fix collection of access units to preserve config headers.
20992           Always use a GstAdapter when collecting access units (alignment="au")
20993           in either byte-stream or avcC format. This is required to properly
20994           preserve config headers like SPS and PPS when invalid or broken NAL
20995           units are subsequently parsed.
20996           More precisely, this fixes scenario like:
20997           <SPS> <PPS> <invalid-NAL> <slice>
20998           where we used to reset the output frame buffer when an invalid or
20999           broken NAL is parsed, i.e. SPS and PPS NAL units were lost, thus
21000           preventing the next slice unit to be decoded, should this also
21001           represent any valid data.
21002           https://bugzilla.gnome.org/show_bug.cgi?id=732203
21003
21004 2014-06-26 14:48:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21005
21006         * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21007         * patches/videoparsers/0006-h264parse-improve-conditions-for-skipping-NAL-units.patch:
21008         * patches/videoparsers/series.frag:
21009           h264parse: improve conditions for skipping NAL units.
21010           Carefully track cases when skipping broken or invalid NAL units is
21011           necessary. In particular, always allow NAL units to be processed
21012           and let that gst_h264_parse_process_nal() function decide on whether
21013           the current NAL needs to be dropped or not.
21014           This fixes parsing of streams with SEI NAL buffering_period() message
21015           inserted between SPS and PPS, or SPS-Ext NAL following a traditional
21016           SPS NAL unit, among other cases too.
21017           Practical examples from the H.264 AVC conformance suite include
21018           alphaconformanceG, CVSE2_Sony_B, CVSE3_Sony_H, CVSEFDFT3_Sony_E
21019           when parsing in stream-format=byte-stream,alignment=au mode.
21020           https://bugzilla.gnome.org/show_bug.cgi?id=732203
21021
21022 2014-06-26 14:45:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21023
21024         * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21025         * patches/videoparsers/0005-h264parse-introduce-new-state-tracking-variables.patch:
21026         * patches/videoparsers/series.frag:
21027           h264parse: introduce new state tracking variables.
21028           Improve parser state tracking by introducing new flags reflecting
21029           it: "got-sps", "got-pps" and "got-slice". This is an addition for
21030           robustness purposes.
21031           Older have_sps and have_pps variables are kept because they have
21032           a different meaning. i.e. they are used for deciding on when to
21033           submit updated caps or not, and rather mean "have new SPS/PPS to
21034           be submitted?"
21035
21036 2014-06-26 14:39:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21037
21038         * patches/videoparsers/0004-h264parse-default-to-byte-stream-nalu-format-Annex-B.patch:
21039         * patches/videoparsers/series.frag:
21040           h264parse: default to byte-stream/nalu format (Annex B).
21041           Always default to stream-format=byte-stream,alignment=nalu if avcC
21042           format was not detected. This is the natural stream format specified
21043           in the standard (Annex.B): a series of NAL units prefixed with the
21044           usual start code.
21045           https://bugzilla.gnome.org/show_bug.cgi?id=732167
21046
21047 2014-06-26 14:37:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21048
21049         * patches/videoparsers/0003-h264parse-fix-and-optimize-NAL-collection-function.patch:
21050         * patches/videoparsers/series.frag:
21051           h264parse: fix and optimize NAL collection function.
21052           Use gst_h264_parser_identify_nalu_unchecked() to identify the next
21053           NAL unit. We don't want to parse the full NAL unit, but only the
21054           header bytes and possibly the first RBSP byte for identifying the
21055           first_mb_in_slice syntax element.
21056           Also fix check for failure when returning from that function. The
21057           only success condition for that is GST_H264_PARSER_OK, so use it.
21058           https://bugzilla.gnome.org/show_bug.cgi?id=732154
21059
21060 2014-06-26 11:39:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21061
21062         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21063           encoder: h264: fix NAL unit types in packed headers.
21064           Submit Prefix NAL headers (nal_unit_type = 14) before every packed
21065           slice header (nal_unit_type = 1 or 5) only for the base view. In non
21066           base views, a Coded Slice Extension NAL header (nal_unit_type = 20)
21067           is required, with an appropriate nal_unit_header_mvc_extension() in
21068           the NAL header bytes.
21069           https://bugzilla.gnome.org/show_bug.cgi?id=732083
21070
21071 2014-06-25 22:05:52 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21072
21073         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21074           encoder: h264: add missing field in packed Subset SPS header.
21075           Write the missing num_level_values_signalled_minus1 syntax element
21076           into the packed header for subset sequence parameter set.
21077           https://bugzilla.gnome.org/show_bug.cgi?id=732083
21078
21079 2014-06-25 22:26:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21080
21081         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21082           decoder: h264: fix marking of non-reference picture into DPB.
21083           Fix search for a picture in the DPB that has a lower POC value than
21084           the current picture. The dpb_find_lowest_poc() function will return
21085           a picture with the lowest POC in DPB and that is marked as "needed
21086           for output", but an additional check against the actual POC value
21087           of the current picture is needed.
21088           This is a regression from 1c46990.
21089           https://bugzilla.gnome.org/show_bug.cgi?id=732130
21090
21091 2014-06-19 17:08:47 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21092
21093         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21094           decoder: h264: fix DPB clear when no decoding actually started.
21095           Fix dpb_clear() to clear previous frame buffers only if they actually
21096           exist to begin with. If the decoder bailed out early, e.g. when it
21097           does not support a specific profile, that array of previous frames
21098           might not be allocated beforehand.
21099
21100 2014-02-06 08:30:10 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21101
21102         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21103         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
21104         * gst/vaapi/gstvaapidecode.c:
21105           decoder: h264: add support for NALU "alignment" optimization.
21106           We can avoid scanning for start codes again if the bitstream is fed
21107           in NALU chunks. Currently, we always scan for start codes, and keep
21108           track of remaining bits in a GstAdapter, even if, in practice, we
21109           are likely receiving one GstBuffer per NAL unit. i.e. h264parse with
21110           "nal" alignment.
21111           https://bugzilla.gnome.org/show_bug.cgi?id=723284
21112           [use gst_adapter_available_fast() to determine the top buffer size]
21113           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21114
21115 2014-06-18 18:53:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21116
21117         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21118           decoder: h264: fix caps to report interlace-mode accordingly.
21119           The `vaapipostproc' element could never determine if the H.264 stream
21120           was interlaced, and thus always assumed it to be progressive. Fix the
21121           H.264 decoder to report interlace-mode accordingly, thus allowing the
21122           vaapipostproc element to automatically enable deinterlacing.
21123
21124 2014-06-19 13:35:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21125
21126         * gst/vaapi/gstvaapipostproc.c:
21127           vaapipostproc: don't crash with dynamic framerate (0/1).
21128           Avoid reaching an assert if dynamic framerates (0/1) are used. One
21129           way to solve this problem is to just stick field_duration to zero.
21130           However, this means that, in presence of interlaced streams, the
21131           very first field will never be displayed if precise presentation
21132           timestamps are honoured.
21133           https://bugzilla.gnome.org/show_bug.cgi?id=729604
21134
21135 2014-02-07 12:27:50 +0000  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21136
21137         * gst/vaapi/gstvaapipostproc.c:
21138           vaapipostproc: create filter surface pool if it does not exist yet.
21139           ensure_srcpad_buffer_pool() tries to avoid unnecessarily deleting and
21140           recreating filter_pool. Unfortunately, this also meant it didn't create
21141           it if it did not exist.
21142           Fix it to always create the buffer pool if it does not exist.
21143           https://bugzilla.gnome.org/show_bug.cgi?id=723834
21144           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21145
21146 2013-12-12 10:01:13 +0800  Zhao, Halley <halley.zhao@intel.com>
21147
21148         * gst/vaapi/gstvaapipostproc.c:
21149           vaapipostproc: reset deinterlacer state when there is a discontinuity.
21150           Reset deinterlacer state, i.e. past reference frames used for advanced
21151           deinterlacing, when there is some discontinuity detected in the course
21152           of processing source buffers.
21153           This fixes support for advanced deinterlacing when a seek occurred.
21154           https://bugzilla.gnome.org/show_bug.cgi?id=720375
21155           [fixed type of pts_diff variable, fetch previous buffer PTS from the
21156           history buffer, reduce heuristic for detecting discontinuity]
21157           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21158
21159 2014-06-18 16:16:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21160
21161         * gst/vaapi/gstvaapipostproc.c:
21162           vaapipostproc: add support for crop regions in VPP mode.
21163           Apply video cropping regions stored in GstVideoCropMeta, or in older
21164           GstVaapiSurfaceProxy representation, to VPP pipelines. In non-VPP modes,
21165           the crop meta are already propagated to the output buffers.
21166           https://bugzilla.gnome.org/show_bug.cgi?id=720730
21167
21168 2014-03-14 17:49:40 +0000  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21169
21170         * gst/vaapi/gstvaapipostproc.c:
21171           vaapipostproc: make deinterlace-mode behave as expected.
21172           deinterlace-mode didn't behave in the way you'd expect if you have
21173           past experience of the deinterlace element. There were two bugs:
21174           1. "auto" mode wouldn't deinterlace "interleaved" buffers, only "mixed".
21175           2. "force" mode wouldn't deinterlace "mixed" buffers flagged as progressive.
21176           Fix these up, and add assertions and error messages to detect cases that
21177           aren't handled.
21178           https://bugzilla.gnome.org/show_bug.cgi?id=726361
21179           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21180           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21181
21182 2014-01-15 16:36:29 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
21183
21184         * gst/vaapi/gstvaapidecode.c:
21185           vaapidecode: do not discard video info props when the format changed.
21186           gst_video_info_set_format() does not preserve video info properties. In
21187           order to keep important information in the caps such as interlace mode,
21188           framerate, pixel aspect ratio, ... we need to manually copy back those
21189           properties after setting the new video format.
21190           https://bugzilla.gnome.org/show_bug.cgi?id=722276
21191
21192 2014-02-23 01:43:39 +1100  Matthew Waters <ystreet00@gmail.com>
21193
21194         * gst/vaapi/gstvaapidecode.c:
21195           vaapidecode: plug a memory leak.
21196           It can happen that there is a pool provided that does not advertise
21197           the vappivideometa. We should unref that pool before using our own.
21198           Discovered with vaapidecode ! {glimagesink,cluttersink}
21199           https://bugzilla.gnome.org/show_bug.cgi?id=724957
21200           [fixed compilation by adding the missing semi-colon]
21201           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21202
21203 2014-06-18 13:47:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21204
21205         * gst/vaapi/gstvaapidecode.c:
21206           vaapidecode: parse source data until a frame is obtained.
21207           Parse any pending data until a complete frame is obtained. This is a
21208           memory optimization to avoid expansion of video packets stuffed into
21209           the GstAdapter, and a fix to EOS condition to detect there is actually
21210           pending data that needs to be decoded, and subsequently output.
21211           https://bugzilla.gnome.org/show_bug.cgi?id=731831
21212
21213 2014-06-05 15:32:29 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21214
21215         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21216           encoder: h264: fix multiple slices support in packed headers mode.
21217           Handle packedi slice headers and packed raw data on a per-slice basis,
21218           which is necessary for multi slice encoding.
21219
21220 2014-06-05 15:30:38 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21221
21222         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
21223         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
21224           encoder: add infrastructure for per-slice handling of packed headers.
21225           The packed slice header and packed raw data need to be paired with
21226           the submission of VAEncSliceHeaderParameterBuffer. So handle them
21227           on a per-slice basis insted of a per-picture basis.
21228           [removed useless initializer]
21229           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21230
21231 2014-03-07 17:40:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21232
21233         * gst/vaapi/gstvaapisink.c:
21234           vaapisink: fix initialization with "drm" display type.
21235           Force early initializatin of the GstVaapiDisplay so that to make sure
21236           that the sink element display object is presented first to upstream
21237           elements, as it will be correctly featuring the requested display type
21238           by the user.
21239           Otherwise, we might end up in situations where a VA/X11 display is
21240           initialized in vaapidecode, then we try VA/DRM display in vaapisink
21241           (as requested by the "display" property), but this would cause a failure
21242           because we cannot acquire a DRM display that was previously acquired
21243           through another backend (e.g. VA/X11).
21244
21245 2014-03-07 17:38:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21246
21247         * gst/vaapi/gstvaapipluginbase.c:
21248           plugins: fix initialization with foreign context.
21249           When a new display is settled through GstElement::set_context() (>= 1.2),
21250           or GstVideoContext::set_context() (<= 1.0), then we shall also update the
21251           associated display type.
21252
21253 2014-04-28 17:44:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21254
21255         * Makefile.am:
21256         * configure.ac:
21257         * ext/Makefile.am:
21258         * gst/vaapi/Makefile.am:
21259         * gst/vaapi/gstvaapiparse.c:
21260         * gst/vaapi/gstvaapiparse.h:
21261         * patches/Makefile.am:
21262         * patches/videoparsers/0001-plugins-compile-the-built-in-video-parsers-as-vaapip.patch:
21263         * patches/videoparsers/0002-h264parse-fix-build-with-GStreamer-1.2.patch:
21264         * patches/videoparsers/0003-h264parse-add-initial-support-for-MVC-NAL-units.patch:
21265         * patches/videoparsers/Makefile.am:
21266         * patches/videoparsers/series.frag:
21267           plugins: add built-in video parsers as "vaapiparse" element.
21268           The built-in video parsers elements are built into a single DSO named
21269           libgstvaapi_parse.so. The various video parsers could be accessed as
21270           vaapiparse_CODEC.
21271           For now, this only includes a modified version of h264parse so that to
21272           support H.264 MVC encoded streams.
21273
21274 2014-06-13 11:36:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21275
21276         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21277           decoder: h264: cope with new gst_h264_quant_matrix_*() interfaces.
21278           New gst_h264_quant_matrix_*_get_raster_from_zigzag() were renamed
21279           from gst_h264_video_quant_matrix_*_get_raster_from_zigzag().
21280
21281 2014-06-13 11:34:07 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21282
21283         * ext/codecparsers:
21284           codecparsers: update to gst-vaapi-branch commit d6325ac.
21285           7d8d045 h264parse: use new gst_h264_video_calculate_framerate()
21286           d2f965a h264parse: set field_pic_flag when parsing a slice header
21287           24c15b8 Import h264parse
21288           a9283e5 bytereader: Use concistant derefence method
21289           a8252c6 bytereader: Use pointer instead of index access
21290           b1bebfc Import GstBitReader and GstByteReader
21291           2f58788 h264: recognize SVC NAL units
21292           4335da5 h264: fix SPS copy code for MVC
21293           cf9b6dc h264: fix quantization matrix conversion routine names
21294           b11ce2a h264: add gst_h264_video_calculate_framerate()
21295           126dc6f add C++ guards for MPEG-4 and VP8 parsers
21296
21297 2014-06-10 18:30:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21298
21299         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21300           decoder: h264: factor out DPB pruning for MVC.
21301           Factor out the removal process of unused inter-view only reference
21302           pictures from the DPB, prior to the possible insertion of the current
21303           picture.
21304           Ideally, the compiler could still opt for generating two loops. But
21305           at least, the code is now clearer for maintenance.
21306
21307 2014-06-10 17:42:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21308
21309         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21310           decoder: h264: clean-ups.
21311           Fix GST_VAAPI_PICTURE_IS_{INTER_VIEW,ANCHOR}() definitions to use
21312           the base GST_VAAPI_PICTURE_FLAG_IS_SET() macro.
21313
21314 2014-06-10 16:07:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21315
21316         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21317           decoder: h264: improve pruning of unused MVC inter-view frames.
21318           Improve process for the removal of pictures from DPB before possible
21319           insertion of the current picture (C.4.4) for H.264 MVC inter-view only
21320           reference components. In particular, handle cases where picture to be
21321           inserted is not the last one of the access unit and if it was already
21322           output and is no longer marked as used for reference, including for
21323           decoding next view components within the same access unit.
21324
21325 2014-06-03 17:36:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21326
21327         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21328           decoder: h264: improve DPB bumping process for MVC.
21329           While invoking the DPB bumping process in presence of many views,
21330           it could be necessary to output previous pictures that are ready,
21331           in a whole. i.e. emitting all view components from the very first
21332           view order index zero to the very last one in its original access
21333           unit; and not starting from the view order index of the picture
21334           that caused the DPB bumping process to be invoked.
21335           As a reminder, the maximum number of frames in DPB for MultiView
21336           High profile with more than 2 views is not necessarily a multiple
21337           of the number of views.
21338           This fixes decoding of MVCNV-4.264.
21339
21340 2014-06-06 17:56:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21341
21342         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21343           decoder: h264: fix inter-view references array growth.
21344           Let the utility layer handle dynamic growth of the inter-view pictures
21345           array. By definition, setting a new size to the array will effectively
21346           grow the array, but would also fill in the newly created elements with
21347           empty entries (NULL), thus also increasing the reported length, which
21348           is not correct.
21349
21350 2014-06-03 17:36:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21351
21352         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21353           decoder: h264: reduce ReferenceFrames entries to the essential set.
21354           When decoding Multiview High profile streams with a large number of
21355           views, it is not possible to make the VAPictureParameterBufferH264.
21356           ReferenceFrames[] array hold the complete DPB, with all possibly
21357           active pictures to be used for inter-view prediction in the current
21358           access unit.
21359           So reduce the scope of the ReferenceFrames[] array to only include
21360           the set of reference pictures that are going to be used for decoding
21361           the current picture. Basically, this is a union of all RefPicListX[]
21362           array, for all slices constituting the decoded picture.
21363
21364 2014-06-04 19:10:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21365
21366         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21367           decoder: h264: fix MVC inter-view prediction process.
21368           The inter-view reference components and inter-view only reference
21369           components that are included in the reference picture lists shall
21370           be considered as not being marked as "used for short-term reference"
21371           or "used for long-term reference". This means that reference flags
21372           should all be removed from VAPictureH264.flags.
21373           This fixes decoding of MVCNV-2.264.
21374
21375 2014-06-04 19:03:18 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21376
21377         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21378           decoder: h264: fix detection of profile changes for MVC.
21379           If the VA driver exposes ad-hoc H.264 MVC profiles, then we have to
21380           be careful to detect profiles changes and not reset the underlying
21381           VA context erroneously. In MVC situations, we could indeed get a
21382           profile_idc change for every SPS that gets activated, alternatively
21383           (base-view -> non-base view -> base-view, etc.).
21384           An improved fix would be to characterize the exact profile to use
21385           once and for all when SPS NAL units are parsed. This would also
21386           allow for fallbacks to a base-view decoding only mode.
21387
21388 2014-06-03 14:30:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21389
21390         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21391           encoder: h264: drop extraneous definitions.
21392           Re-use definitions from the codecparser headers instead of duplicating
21393           them here again. That covers NALU definitions and slice types.
21394
21395 2014-04-01 11:26:04 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21396
21397         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21398           encoder: h264: remove unnecessary calcualtion of max_pic_order_cnt.
21399           https://bugzilla.gnome.org/show_bug.cgi?id=727418
21400
21401 2014-04-01 14:23:56 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21402
21403         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21404           encoder: h264: don't allow CABAC with Extended profile.
21405           The H.264 specification does not support CABAC entropy coding for the
21406           Extended profile.
21407           https://bugzilla.gnome.org/show_bug.cgi?id=727418
21408
21409 2014-05-07 00:12:39 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21410
21411         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21412           encoder: h264: use packed headers mode for MVC encoding.
21413           Exclusively use VA drivers that support raw packed headers for encoding.
21414           i.e. simply submit packed headers Subset SPS and Prefix NAL units. This
21415           provides for better compatibility accross the various VA drivers and HW
21416           generations since no particular API is needed beyond what readily exists.
21417
21418 2014-05-07 00:09:45 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21419
21420         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21421           encoder: h264: add support for packed slice headers.
21422           https://bugzilla.gnome.org/show_bug.cgi?id=722905
21423
21424 2014-05-07 00:09:19 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21425
21426         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21427           encoder: h264: store subset sps to generate the codec-data
21428           Store the SubsetSPS nal unit which we need for MVC specific
21429           codec_data generation.
21430
21431 2014-05-07 00:08:33 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21432
21433         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21434           encoder: h264: fix MVC pipeline hang while encoding with B-frames.
21435           Since we are encoding each view independently from each other, we
21436           need a higher number of pre-allocated surfaces to be used as the
21437           reconstructed frames. For Stereo High profile encoding, this means
21438           to effectively double the number of frames to be stored in the DPB.
21439
21440 2014-02-17 15:51:43 +0800  Li Xiaowei <xiaowei.a.li@intel.com>
21441
21442         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21443         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
21444         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
21445         * gst/vaapi/gstvaapiencode_h264.c:
21446           encoder: h264: add initial support for H.264 Stereo High profile.
21447           Add initial support for Subset SPS, Prefix NAL and Slice Extension NAL
21448           for non-base-view streams encoding, and the usual SPS, PPS and Slice
21449           NALs for base-view encoding.
21450           The H.264 Stereo High profile encoding mode will be turned on when the
21451           "num-views" parameter is set to 2. The source (raw) YUV frames will be
21452           considered as Left/Right view, alternatively.
21453           Each of the two views has its own frames reordering pool and reference
21454           frames list management system. Inter-view references are not supported
21455           yet, so the views are encoded independently from each other.
21456           Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21457           [limited to Stereo High profile per the definition of MAX_NUM_VIEWS]
21458           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21459
21460 2014-02-17 11:10:26 +0800  Li Xiaowei <xiaowei.a.li@intel.com>
21461
21462         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21463           encoder: h264: wrap pools for refs and frames reordering.
21464           Create structures to maintain the reference frames list (RefPool) and
21465           frames reordering (ReorderPool) logic.
21466           This is a prerequisite for H.264 MVC support.
21467           Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21468
21469 2014-02-14 15:33:15 +0800  Li Xiaowei <xiaowei.a.li@intel.com>
21470
21471         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
21472           encoder: h264: add provisional support for subset SPS headers.
21473           Add provisions to write subset SPS headers to the bitstream in view
21474           to supporting the H.264 MVC specification.
21475           This assumes the libva "staging" branch is in use.
21476           Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21477
21478 2013-12-18 13:47:32 +0800  Li Xiaowei <xiaowei.a.li@intel.com>
21479
21480         * gst-libs/gst/vaapi/gstvaapiprofile.c:
21481         * gst-libs/gst/vaapi/gstvaapiutils.c:
21482           utils: add H.264 MVC profiles.
21483           Add "MultiView High" and "Stereo High" definitions.
21484           Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21485           [require VA-API >= 0.35.2 for MVC profiles]
21486           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21487
21488 2014-06-02 16:25:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21489
21490         * gst-libs/gst/vaapi/gstvaapiprofile.c:
21491         * gst-libs/gst/vaapi/gstvaapiutils.c:
21492           utils: only enable VP8 profiles for newer VA-API versions.
21493           VP8 decoding API appeared in VA-API >= 0.35.0. So, disable mappings
21494           involving VP8 codec on earlier versions of the API.
21495
21496 2014-05-22 10:04:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21497
21498         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21499           decoder: h264: compute view ids only once per slice.
21500           Optimize lookups of view ids / view order indices by caching the result
21501           of the calculatiosn right into the GstVaapiParserInfoH264 struct. This
21502           terribly simplifies is_new_access_unit() and find_first_field() functions.
21503
21504 2014-05-21 17:57:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21505
21506         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21507           decoder: h264: add support for MVC interlaced streams.
21508           Fix support for MVC Stereo High profile streams with interlaced frames.
21509           Also improve the detection logic of the first field.
21510
21511 2014-05-20 18:08:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21512
21513         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21514           decoder: h264: add MVC profiles compatibility logic.
21515           Add safe fallbacks for MVC profiles:
21516           - all MultiView High profile streams with 2 views at most can be decoded
21517           with a Stereo High profile compliant decoder ;
21518           - all Stereo High profile streams with only progressive views can be
21519           decoded with a MultiView High profile compliant decoder ;
21520           - all drivers that support slice-level decoding could normally support
21521           MVC profiles when the DPB holds at most 16 frames.
21522
21523 2014-05-02 14:58:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21524
21525         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21526         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21527         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21528           decoder: h264: add initial support for MVC.
21529           https://bugzilla.gnome.org/show_bug.cgi?id=721772
21530
21531 2014-05-01 19:16:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21532
21533         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21534           decoder: h264: dynamically allocate the DPB.
21535           Dynamically allocate the Decoded Picture Buffer (DPB) and add provisions
21536           for supporting the MVC allocation requirements.
21537
21538 2014-05-01 19:33:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21539
21540         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21541           decoder: h264: fix detection of access unit boundaries.
21542           In order to have a stricter conforming implementation, we need to carefully
21543           detect access unit boundaries. Additional operations could be necessary to
21544           perform at those boundaries.
21545
21546 2013-03-13 11:44:38 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21547
21548         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21549           decoder: h264: detect the first VCL NAL unit of a picture for MVC.
21550           Detect the first VCL NAL unit of a picture for MVC, based on the
21551           view_id as per H.7.4.1.2.4. Note that we only need to detect new
21552           view components.
21553           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21554
21555 2013-10-31 19:32:55 +0800  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21556
21557         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21558           decoder: h264: properly handle Prefix NAL units.
21559           Always cache the previous NAL unit so that we could check whether
21560           there is a Prefix NAL unit immediately preceding the current slice
21561           or IDR NAL unit. In that case, the NAL unit metadata is copied into
21562           the current NAL unit. Otherwise, some default values are inferred,
21563           tentatively. e.g. view_id shall be set to 0 and inter_view_flag to 1.
21564           [infer default values for slice if previous NAL was not a Prefix]
21565           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21566
21567 2013-02-28 15:59:55 +0800  Xiaowei Li <xiaowei.a.li@intel.com>
21568
21569         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21570           decoder: h264: add support for MVC base views.
21571           Allow decoding for base views of MVC encoded streams. For now, just skip
21572           the slice extension and prefix NAL units, and skip non-base view frames.
21573           Signed-off-by: Xiaowei Li <xiaowei.a.li@intel.com>
21574           [fixed memory leak, improved check for MVC NAL units]
21575           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21576
21577 2014-05-04 14:49:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21578
21579         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21580           decoder: h264: simplify storage of decoded picture into DPB.
21581           Factor out process by which the decoded picture with the lowest POC
21582           is found, and possibly output. Likewise, the storage and marking of
21583           a reference decoded, or non-reference decoded picture, into the DPB
21584           could also be simplified as they mostly share the same operations.
21585
21586 2014-05-02 22:40:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21587
21588         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21589           decoder: h264: minor clean-ups.
21590           Make init_picture_ref_lists() more consistent with other functions
21591           related to the reference marking process by supplying the current
21592           picture as argument.
21593
21594 2014-05-20 11:36:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21595
21596         * gst-libs/gst/vaapi/gstvaapidisplay.c:
21597         * gst-libs/gst/vaapi/gstvaapidisplay.h:
21598         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21599           display: add utility function to query VA driver name.
21600           Add gst_vaapi_display_get_vendor_string() helper function to query
21601           the underlying VA driver name. The display object owns the resulting
21602           string, so it shall not be deallocated.
21603           That function is thread-safe. It could be used for debugging purposes,
21604           for instance.
21605
21606 2014-03-07 14:50:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21607
21608         * gst-libs/gst/vaapi/gstvaapidisplay.c:
21609         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
21610         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
21611         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
21612         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
21613         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
21614         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
21615           display: make cache maintenance really MT-safe.
21616           Make sure to initialize one GstVaapiDisplay at a time, even in threaded
21617           environments. This makes sure the display cache is also consistent
21618           during the whole display creation process. In the former implementation,
21619           there were risks that display cache got updated in another thread.
21620
21621 2014-05-03 15:56:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21622
21623         * gst-libs/gst/vaapi/gstvaapicontext.c:
21624           context: allow dynamic growth of VA surfaces pool.
21625           Add support for dynamic growth of the VA surfaces pool. For decoding,
21626           this implies the recreation of the underlying VA context, as per the
21627           requirement from VA-API. Besides, only increases are supported, not
21628           shrinks.
21629
21630 2014-05-03 15:47:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21631
21632         * gst-libs/gst/vaapi/gstvaapicontext.c:
21633           context: reset VA context if VA surfaces set changed.
21634           It is a requirement from VA-API specification that the VA context got
21635           from vaCreateContext(), for decoding purposes, binds the supplied set
21636           of VA surfaces. This means that if the set of VA surfaces is to be
21637           changed for the current decode session, then the VA context needs to
21638           be recreated with the new set of VA surfaces.
21639
21640 2014-05-12 19:23:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21641
21642         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21643           decoder: h264: fix assignment of LongTermFrameIdx.
21644           Complement fix committed as e95a42e.
21645           The H.264 AVC standard has to say: if the field is part of a reference
21646           frame or a complementary reference field pair, and the other field of
21647           the same reference frame or complementary reference field pair is also
21648           marked as "used for long-term reference", the reference frame or
21649           complementary reference field pair is also marked as "used for long-term
21650           reference" and assigned LongTermFrameIdx equal to long_term_frame_idx.
21651           This fixes decoding of MR9_BT_B in strict mode.
21652           https://bugs.freedesktop.org/show_bug.cgi?id=64624
21653           https://bugzilla.gnome.org/show_bug.cgi?id=724518
21654
21655 2014-05-10 06:23:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21656
21657         * gst-libs/gst/vaapi/gstvaapicontext.c:
21658         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21659         * gst-libs/gst/vaapi/gstvaapiutils.c:
21660         * gst-libs/gst/vaapi/gstvaapiutils.h:
21661           decoder: h264: properly support grayscale formats.
21662           Request the correct chroma format for decoding grayscale streams.
21663           i.e. make lookups of the VA chroma format more generic, thus possibly
21664           supporting more formats in the future.
21665           This means that, if a VA driver doesn't support grayscale formats,
21666           it is now going to fail. We cannot safely assume that maybe grayscale
21667           was implemented on top of some YUV 4:2:0 with the chroma components
21668           all set to 0x80.
21669
21670 2014-02-06 11:14:09 +0000  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21671
21672         * gst-libs/gst/vaapi/gstvaapifilter.c:
21673         * gst-libs/gst/vaapi/gstvaapifilter.h:
21674         * tests/test-filter.c:
21675           build: fix source file modes.
21676           A few source files are marked executable in error - fix them
21677           https://bugzilla.gnome.org/show_bug.cgi?id=723748
21678           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
21679
21680 2014-04-29 13:22:47 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
21681
21682         * configure.ac:
21683         * gst-libs/gst/vaapi/Makefile.am:
21684         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21685         * gst/vaapi/gstvaapidecode.c:
21686           build: fix conditional compilation of VP8 decoder.
21687           https://bugzilla.gnome.org/show_bug.cgi?id=729170
21688           [added check for VASliceParameterBufferBase fields]
21689           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21690
21691 2014-04-27 08:55:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21692
21693         * gst-libs/gst/codecparsers/Makefile.am:
21694           build: fix make dist for codecparsers.
21695
21696 2014-04-28 09:42:13 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21697
21698         * ext/codecparsers:
21699           codecparsers: update to gst-vaapi-branch commit eaa3f7e.
21700           h264: fix parsing of slice groups for map type = 2
21701
21702 2014-04-26 22:35:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21703
21704         * ext/codecparsers:
21705           codecparsers: update to gst-vaapi branch commit f44edfc.
21706           h264: fix derivation of default scaling lists
21707
21708 2013-05-24 19:00:54 +0800  Cong Zhong <congx.zhong@intel.com>
21709
21710         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21711           decoder: h264: fix long-term reference picture marking process.
21712           Fix reference picture marking process with memory_management_control_op
21713           set to 3 and 6, i.e. assign LongTermFrameIdx to a short-term reference
21714           picture, or the current picture.
21715           This fixes decoding of FRExt_MMCO4_Sony_B.
21716           https://bugs.freedesktop.org/show_bug.cgi?id=64624
21717           https://bugzilla.gnome.org/show_bug.cgi?id=724518
21718           [squashed, edited to use GST_VAAPI_PICTURE_IS_COMPLETE() macro]
21719           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21720
21721 2014-04-26 20:21:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21722
21723         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21724           decoder: h264: fix initialization of RefPicLists for multiple slices.
21725           The initialization of reference picture lists (8.2.4.2) applies to all
21726           slices. So, the RefPicList0/1 lists need to be constructed prior to
21727           each slice submission to the HW decoder.
21728           This fixes decoding of video sequences where frames are encoded with
21729           multiple slices of different types, e.g. 4 slices in this order I, P,
21730           I, and P. More precisely, CABAST3_Sony_E and CABASTBR3_Sony_B.
21731           https://bugzilla.gnome.org/show_bug.cgi?id=724518
21732
21733 2013-06-04 15:01:46 +0800  Zhong Cong <congx.zhong@intel.com>
21734
21735         * ext/codecparsers:
21736         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21737           decoder: h264: skip SPS extension and auxiliary slice NALs.
21738           When NAL units of type 13 (SPS extension) or type 19 (auxiliary slice)
21739           are present in a video, decoders shall perform the (optional) decoding
21740           process specified for these NAL units or shall ignore them (7.4.1).
21741           Implement option 2 (skip) for now, as alpha composition is not
21742           supported yet during the decoding process.
21743           This fixes decoding of the primary coded video in alphaconformanceG.
21744           https://bugzilla.gnome.org/show_bug.cgi?id=703928
21745           https://bugzilla.gnome.org/show_bug.cgi?id=728869
21746           https://bugzilla.gnome.org/show_bug.cgi?id=724518
21747           [skip NAL units earlier, i.e. at parsing time]
21748           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21749
21750 2013-03-07 11:32:20 +0800  Li Xiaowei <xiaowei.a.li@intel.com>
21751
21752         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21753           decoder: h264: fix slice data bit offset with MVC NAL units.
21754           When MVC slice NAL units (coded slice extension and prefix NAL) are
21755           present, the number of NAL header bytes is 3, not 1 as usual.
21756           Signed-off-by: Li Xiaowei <xiaowei.a.li@intel.com>
21757           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21758
21759 2014-04-25 19:11:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21760
21761         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21762           decoder: h264: fix activation of picture and sequence parameters.
21763           At the time the first VCL NAL unit of a primary coded picture is found,
21764           and if that NAL unit was parsed to be an SPS or PPS, then the entries
21765           in the parser may have been overriden. This means that, when the picture
21766           is to be decoded, slice_hdr->pps could point to an invalid (the next)
21767           PPS entry.
21768           So, one way to solve this problem is to not use the parser PPS and
21769           SPS info but rather maintain our own activation chain in the decoder.
21770           https://bugzilla.gnome.org/show_bug.cgi?id=724519
21771           https://bugzilla.gnome.org/show_bug.cgi?id=724518
21772
21773 2014-04-25 16:24:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21774
21775         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21776           decoder: h264: retain SEI messages until the end of frame.
21777           Retain the SEI messages that were parsed from the access unit until we
21778           have completely decoded the current frame. This is done so that we can
21779           peek at that data whenever necessary during decoding. e.g. for exposing
21780           3D stereoscopic information at a later stage.
21781
21782 2014-04-25 14:23:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21783
21784         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21785           decoder: h264: add support for grayscale encoded clips.
21786           Fix support for grayscale encoded video clips, and possibly others if
21787           the underlying driver supports the non-YUV 4:2:0 formats. i.e. defer
21788           the decision that a surface with the desired chroma format is not
21789           supported to the actual VA driver implementation.
21790           https://bugzilla.gnome.org/show_bug.cgi?id=728144
21791
21792 2014-04-25 14:16:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21793
21794         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21795         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
21796         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
21797         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
21798         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
21799         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21800           decoder: default to YUV 4:2:0 VA surfaces.
21801           Cope with context changes to support non-YUV 4:2:0 VA surfaces. Still,
21802           make sure all codecs use YUV 4:2:0 output format for now, by default.
21803
21804 2014-04-25 13:57:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21805
21806         * gst-libs/gst/vaapi/gstvaapidecoder.c:
21807         * gst-libs/gst/vaapi/gstvaapidecoder.h:
21808         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
21809           decoder: re-indent GstVaapiDecoder base object.
21810
21811 2014-04-25 13:47:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21812
21813         * gst-libs/gst/vaapi/gstvaapiencoder.c:
21814           encoder: derive chroma type from video format.
21815           Cope with previous VA context change to derive the correct surface chroma
21816           type from the input video format.
21817
21818 2014-04-25 13:45:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21819
21820         * gst-libs/gst/vaapi/gstvaapicontext.c:
21821         * gst-libs/gst/vaapi/gstvaapicontext.h:
21822           context: add support for non-YUV 4:2:0 formats.
21823           Don't force allocation of VA surfaces in YUV 4:2:0 format. Rather, allow
21824           for the upper layer to specify the desired chroma type. If the chroma
21825           type field is not set (or yields zero), then YUV 4:2:0 format is used
21826           by default.
21827
21828 2014-04-22 19:53:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21829
21830         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21831           vp8: fix per-segment deblocking filter level in relative mode.
21832           Fix possible bug when a per-segment deblocking filter level value
21833           needs to be set in non-absolute mode, i.e. when the loop filter update
21834           value is negative in delta mode.
21835           Also clamp the resulting filter level value to 0..63 range.
21836
21837 2014-04-22 17:25:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21838
21839         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21840           vp8: fix check for disabling the loop filter (again).
21841           Improve condition to disable the loop filter. The previous heuristic
21842           used to check all filter levels, for all segments. It turns out that
21843           only the base filter_level value defined in the frame header needs
21844           to be checked.
21845           This fixes 00-comprehensive-013.
21846
21847 2014-04-21 18:02:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21848
21849         * gst-libs/gst/codecparsers/Makefile.am:
21850         * gst/vaapi/Makefile.am:
21851           build: fix make dist with certain conditionals not met.
21852           Fix generation of source tarballs when certain conditionals are not
21853           met. e.g. always include all buildable codecparsers sources in the
21854           distribution tarball, fix plug-in element sources set to include X11
21855           and encoder bits.
21856
21857 2014-04-21 17:34:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21858
21859         * ext/Makefile.am:
21860           build: add missing files for GStreamer 0.10.
21861           Add missing GstVideoEncoder implementation files to fix build with ancient
21862           GStreamer 0.10 stack.
21863           https://bugzilla.gnome.org/show_bug.cgi?id=723964
21864
21865 2014-04-19 10:17:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21866
21867         * ext/Makefile.am:
21868           build: add missing files for VP8 bitstream parser.
21869           Fix make dist for building the VP8 bitstream parser.
21870
21871 2014-04-21 17:49:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21872
21873         * configure.ac:
21874         * ext/libvpx/Makefile.am:
21875         * gst-libs/gst/codecparsers/Makefile.am:
21876           vp8: allow compilation without the built-in libvpx.
21877           The built-in libvpx serves multiple purposes, among which the most
21878           important ones could be: track the most up-to-date, and optimized,
21879           range decoder; allow for future hybrid implementations (non-VLD);
21880           and have a completely independent range decoder implementation.
21881
21882 2014-04-21 17:28:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21883
21884         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21885           vp8: propagate PTS from demux frame.
21886           gst_adapter_prev_pts() is forbidden within libgstvaapi. Besides, the demuxer
21887           or parser would already have determined the PTS from a previous stage.
21888
21889 2014-04-19 07:49:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21890
21891         * Makefile.am:
21892         * debian.upstream/libgstvaapi.install.in:
21893         * ext/libvpx/Makefile.am:
21894         * ext/libvpx/sources.frag:
21895         * gst-libs/gst/codecparsers/Makefile.am:
21896           vp8: fix compilation with built-in libvpx.
21897           Apply correct patch from fd.o #722760 to fix several issues: update the
21898           license terms to LGPLv2.1+, fix dependencies to built-in libvpx and fix
21899           make dist.
21900
21901 2014-02-13 21:17:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21902
21903         * .gitmodules:
21904         * autogen.sh:
21905         * configure.ac:
21906         * ext/Makefile.am:
21907         * ext/libvpx/Makefile.am:
21908         * ext/libvpx/gstlibvpx.c:
21909         * ext/libvpx/gstlibvpx.h:
21910         * ext/libvpx/libgstcodecparsers_vpx.vers:
21911         * ext/libvpx/sources.frag:
21912         * ext/libvpx/upstream:
21913         * gst-libs/gst/codecparsers/Makefile.am:
21914         * gst-libs/gst/codecparsers/gstvaapilibvpx.c:
21915           vp8: use range decoder from libvpx.
21916           Add libvpx submodule that tracks the upstream version 1.3.0. This is
21917           needed to build a libgstcodecparsers_vpx.so library with all symbols
21918           placed into the GSTREAMER namespace.
21919
21920 2014-04-04 19:17:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21921
21922         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21923           vp8: fix check for disabling the loop filter.
21924
21925 2013-12-27 07:18:24 +0800  Zhao, Halley <halley.zhao@intel.com>
21926
21927         * configure.ac:
21928         * ext/Makefile.am:
21929         * gst-libs/gst/codecparsers/Makefile.am:
21930         * gst-libs/gst/vaapi/Makefile.am:
21931         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
21932         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
21933         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
21934         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
21935         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.c:
21936         * gst-libs/gst/vaapi/gstvaapidecoder_vp8.h:
21937         * gst-libs/gst/vaapi/gstvaapiprofile.c:
21938         * gst-libs/gst/vaapi/gstvaapiprofile.h:
21939         * gst/vaapi/gstvaapidecode.c:
21940           Add initial VP8 decoder.
21941           https://bugzilla.gnome.org/show_bug.cgi?id=722761
21942           [complete overhaul, fixed support for resolution changes]
21943           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21944
21945 2014-03-21 15:15:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21946
21947         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21948           decoder: h264: cope with new gst_h264_parser_parse_sei() interface.
21949           The gst_h264_parse_parse_sei() function now returns an array of SEI
21950           messages, instead of a single SEI message. Reason: it is allowed to
21951           have several SEI messages packed into a single SEI NAL unit, instead
21952           of multiple NAL units.
21953
21954 2014-04-18 19:36:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21955
21956         * ext/codecparsers:
21957           codecparsers: update to gst-vaapi-branch commit a454f86.
21958           b2eb5f6 vp8: rename dboolhuff symbols
21959           b74a881 vp8: add GStreamer native utilities
21960           2940ac6 add VP8 bitstream parser
21961
21962 2014-04-18 19:16:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21963
21964         * ext/codecparsers:
21965           codecparsers: update to gst-vaapi-branch commit d459bc5.
21966           d459bc5 h264: set framerate even for interlaced videos
21967           c78b82c h264: add support for Recovery Point SEI message
21968           7693bac h264: add support for Frame Packing Arrangement SEI message
21969           31fafa7 h264: add support for Stereo Video Information SEI message
21970           8b113a6 h264: parse seq_parameter_set_mvc_extension()
21971           040f9b8 h264: parse MVC syntax elements
21972           cc18ef3 h264: add nal_reader_skip_long() helper
21973           7e76a48 h264: fix slice_header() parsing for MVC
21974           caf46d8 h264: add gst_h264_parse_nalu_header() helper
21975           f75074e h264: add gst_h264_parse_sps_data() helper
21976           798c397 h264: clean-up gst_h264_parser_parse_sei_message()
21977           4e36737 h264: fix skipping of unsupported SEI messages
21978           5300766 h264: fix SEI buffering_period() parsing
21979
21980 2014-03-21 15:09:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21981
21982         * ext/codecparsers:
21983         * gst-libs/gst/codecparsers/Makefile.am:
21984           codecparsers: update to gst-vaapi-branch commit 8fadf40.
21985           8fadf40 h264: Fix multiple SEI messages in one SEI RBSP parsing.
21986           644825f h265: remove trailling 0x00 bytes as the spec doesn't allow them
21987           95f9f0f h264: remove trailling 0x00 bytes as the spec doesn't allow them
21988           766007b h265: Initialize pointer correctly that is never assigned but freed in error cases
21989           8ec5816 h265: Fix segfault when parsing HRD parameter
21990           5b1730f h265: Fix segfault when parsing VPS
21991           983b7f7 h265: prevent to overrun chroma_weight_l0_flag
21992           7ba641d h265: Fix debug output
21993           d9f9f9b h264: not all startcodes should have 3-byte 0 prefix
21994
21995 2014-02-04 18:35:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
21996
21997         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
21998           decoder: h264: fix robustness patch for bytestream format.
21999           Fix parser and decoder state to sync at the right locations. This is
22000           because we could reset the parser state, while the decoder state was
22001           not copied yet, e.g. when parsing several NAL units from multiple frames
22002           whereas the current frame was not decoded yet.
22003           This is a regression brought in by commit 6fe5496.
22004
22005 2014-02-18 06:56:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22006
22007         * configure.ac:
22008         * pkgconfig/Makefile.am:
22009         * pkgconfig/gstreamer-vaapi-drm.pc.in:
22010         * pkgconfig/gstreamer-vaapi-glx.pc.in:
22011         * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22012         * pkgconfig/gstreamer-vaapi-x11.pc.in:
22013           build: fix pkgconfig file names (again).
22014           It turns out it is more convenient to have only pkgconfig files named
22015           after the installed GStreamer API version (1.0) instead of using all
22016           possible subsequent names from that (1.0, 1.2, 1.4). i.e. they conflict
22017           altogether anyway, so align pkgconfig file names to that.
22018
22019 2014-02-07 09:43:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22020
22021         * debian.upstream/libgstvaapi-dev.install.in:
22022         * gst-libs/gst/vaapi/Makefile.am:
22023         * pkgconfig/gstreamer-vaapi.pc.in:
22024           build: fix packaging for GStreamer 1.2.
22025           Fix gstreamer-vaapi includedir for GStreamer 1.2 setups. i.e. use
22026           the pkgconfig version (1.0) instead of the intended API version (1.2).
22027           libgstvaapi1.0-dev and libgstvaapi1.2-dev packages will now conflict,
22028           as would core GStreamer 1.0 and GStreamer 1.2 dev packages anyway.
22029
22030 2014-01-24 11:27:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22031
22032         * configure.ac:
22033           Bump version for development.
22034
22035 2014-01-24 10:55:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22036
22037         * debian.upstream/control.in:
22038           debian: fix trailing whitespace in description.
22039
22040 2014-01-23 23:24:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22041
22042         * debian.upstream/control.in:
22043         * debian.upstream/copyright:
22044           debian: fix package description.
22045           Try to improve package description for the compiled plug-in elements
22046           available in there. e.g. only display vaapidownload and vaapiupload
22047           for GStreamer 0.10 builds, display vaapiencode_* elements when VA
22048           encoding is enabled, etc.
22049           Also increase the copyright notice date.
22050
22051 2014-01-23 22:47:19 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22052
22053         * gst-libs/gst/vaapi/gstvaapidecoder.c:
22054           build: fix warnings on 64-bit platforms.
22055
22056 2014-01-23 22:44:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22057
22058         * gst-libs/gst/vaapi/gstvaapicontext.c:
22059         * gst-libs/gst/vaapi/gstvaapiutils.c:
22060           build: fix for older versions of VA-API (< 0.34.0).
22061           Fix build with older versions of VA-API (< 0.34.0), or versions without
22062           good enough headers for encoding support for instance.
22063
22064 2014-01-23 19:36:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22065
22066         * NEWS:
22067         * configure.ac:
22068           0.5.8.
22069
22070 2014-01-23 19:32:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22071
22072         * README:
22073           README: updates.
22074           VA-API up to 0.34.0 is actually supported. Mention new video encoding
22075           support. Update copyright years, list of supported Intel HD Graphics
22076           hardware.
22077
22078 2014-01-23 19:18:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22079
22080         * NEWS:
22081           NEWS: updates.
22082
22083 2014-01-20 14:16:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22084
22085         * tests/test-filter.c:
22086           tests: test-filter: fix "deinterlace" option parse.
22087           Default to GST_VAAPI_DEINTERLACE_METHOD_NONE if no "deinterlace" option
22088           string was provided, i.e. if it remained set to NULL.
22089
22090 2014-01-23 18:41:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22091
22092         * gst-libs/gst/vaapi/Makefile.am:
22093         * gst-libs/gst/vaapi/gstvaapicontext.c:
22094         * gst-libs/gst/vaapi/gstvaapicontext.h:
22095         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22096         * gst-libs/gst/vaapi/gstvaapiutils_core.c:
22097         * gst-libs/gst/vaapi/gstvaapiutils_core.h:
22098           libs: factor out usages of vaGetConfigAttributes().
22099           Add gst_vaapi_get_config_attribute() helper function that takes a
22100           GstVaapiDisplay and the rest of the arguments with VA types. The aim
22101           is to have thread-safe VA helpers by default.
22102
22103 2014-01-23 17:41:02 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22104
22105         * gst-libs/gst/vaapi/gstvaapiutils.c:
22106         * gst-libs/gst/vaapi/gstvaapiutils.h:
22107         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
22108         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22109         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22110         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22111         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22112         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22113         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22114         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
22115         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22116           libs: re-indent all source code related to VA utilities.
22117
22118 2014-01-23 17:06:08 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22119
22120         * gst-libs/gst/vaapi/libgstvaapi_priv_check.h:
22121           libs: add missing file (libgstvaapi_priv_check.h).
22122
22123 2014-01-23 15:13:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22124
22125         * gst-libs/gst/vaapi/gstvaapicontext.c:
22126         * gst-libs/gst/vaapi/gstvaapicontext.h:
22127         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22128         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22129         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22130         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22131           encoder: notify the encoder of the submitted packed headers.
22132           Make sure to configure the encoder with the set of packed headers we
22133           intend to generate and submit. i.e. make selection of packed headers
22134           to submit more robust.
22135
22136 2014-01-23 15:10:11 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22137
22138         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22139         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22140         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22141         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22142           encoder: fix and factor out check for supported rate-control modes.
22143           Cache the first compatible GstVaapiProfile found if the encoder is not
22144           configured yet. Next, factor out the code to check for the supported
22145           rate-control modes by moving out vaGetConfigAttributes() to a separate
22146           function, while also making sure that the attribute type is actually
22147           supported by the encoder.
22148           Also fix the default set of supported rate control modes to not the
22149           "none" variant. It's totally useless to expose it at this point.
22150
22151 2014-01-23 14:01:33 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22152
22153         * gst-libs/gst/vaapi/gstvaapicontext.c:
22154         * gst-libs/gst/vaapi/gstvaapicontext.h:
22155         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22156           context: move rate-control mode to encoder specific config.
22157           Move usage-specific config out of the common GstVaapiContextInfo.
22158           Create a specialized config for encoding and move rate-control mode
22159           to there.
22160
22161 2014-01-23 13:30:41 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22162
22163         * gst-libs/gst/vaapi/gstvaapicontext.c:
22164         * gst-libs/gst/vaapi/gstvaapicontext.h:
22165         * gst-libs/gst/vaapi/gstvaapidecoder.c:
22166         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22167           context: introduce concept of usage.
22168           Introduce GstVaapiContextUsage so that to explicitly determine the
22169           usage of a VA context. This is useful in view to simplifying the
22170           creation of VA context for VPP too.
22171
22172 2014-01-23 11:44:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22173
22174         * gst-libs/gst/vaapi/gstvaapicontext.c:
22175           context: fix get_attribute() value result.
22176           Unknown attributes, or attributes that are not supported for the given
22177           profile/entrypoint pair have a return value of VA_ATTRIB_NOT_SUPPORTED.
22178           So, return failure in this case.
22179
22180 2014-01-23 10:59:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22181
22182         * gst-libs/gst/vaapi/Makefile.am:
22183         * gst-libs/gst/vaapi/gstvaapicontext.c:
22184         * gst-libs/gst/vaapi/gstvaapicontext.h:
22185         * gst-libs/gst/vaapi/gstvaapicontext_overlay.c:
22186         * gst-libs/gst/vaapi/gstvaapicontext_overlay.h:
22187         * gst-libs/gst/vaapi/gstvaapisurface.c:
22188           context: move overlay composition to separate files.
22189           Move GstVideoOverlayComposition handling to separate source files.
22190           This helps keeing GstVaapiContext core implementation to the bare
22191           minimal, i.e. simpy helpers to create a VA context and handle pool
22192           of associated VA surfaces.
22193
22194 2014-01-23 09:41:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22195
22196         * gst-libs/gst/vaapi/gstvaapicontext.c:
22197         * gst-libs/gst/vaapi/gstvaapicontext.h:
22198         * gst-libs/gst/vaapi/gstvaapidecoder.c:
22199         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22200           context: clean-ups. Strip down APIs.
22201           Improve documentation and debug messages. Clean-up APIs, i.e. strip
22202           them down to the minimal set of interfaces. They are private, so no
22203           need expose getters for instance.
22204
22205 2014-01-23 09:27:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22206
22207         * gst-libs/gst/vaapi/gstvaapicontext.c:
22208         * gst-libs/gst/vaapi/gstvaapicontext.h:
22209           context: re-indent all GstVaapiContext related source code.
22210
22211 2014-01-23 10:20:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22212
22213         * gst-libs/gst/vaapi/Makefile.am:
22214         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
22215         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
22216         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
22217         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
22218         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
22219         * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
22220         * gst-libs/gst/vaapi/gstvaapiutils.h:
22221         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
22222         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22223         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22224         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
22225         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
22226           libs: check that private headers remain private.
22227           Make sure that libgstvaapi private headers remain internally used to
22228           build libgstvaapi libraries only. All header dependencies were reviewed
22229           and checks for IN_LIBGSTVAAPI definition were added accordingly.
22230           Also rename GST_VAAPI_CORE definition to IN_LIBGSTVAAPI_CORE to keep
22231           consistency.
22232
22233 2014-01-22 19:04:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22234
22235         * configure.ac:
22236           Bump library major version.
22237           Bump the library major version due to API/ABI changes that occurred in
22238           the imaging API. In particular, GstVaapiDisplay interfaces no longer
22239           expose any GstCaps but provide GArray based ones e.g. to determine the
22240           set of supported decode/encode profiles.
22241
22242 2014-01-22 18:54:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22243
22244         * gst-libs/gst/vaapi/glibcompat.h:
22245         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
22246         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
22247         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22248         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22249         * gst-libs/gst/vaapi/gstvaapicontext.c:
22250         * gst-libs/gst/vaapi/gstvaapicontext.h:
22251         * gst-libs/gst/vaapi/gstvaapidecoder.c:
22252         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
22253         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
22254         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
22255         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22256         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22257         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22258         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22259         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22260         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22261         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22262         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22263         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22264         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22265         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22266         * gst-libs/gst/vaapi/gstvaapifilter.c:
22267         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
22268         * gst-libs/gst/vaapi/gstvaapisurface.c:
22269         * gst-libs/gst/vaapi/gstvaapisurface.h:
22270         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22271         * gst-libs/gst/vaapi/gstvaapitypes.h:
22272         * gst-libs/gst/vaapi/gstvaapiutils.c:
22273         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22274         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22275         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22276         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
22277         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
22278         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
22279         * gst-libs/gst/vaapi/gstvaapivalue.c:
22280         * gst-libs/gst/vaapi/gstvaapivalue.h:
22281         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
22282         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
22283         * gst/vaapi/gstvaapidecode.c:
22284         * gst/vaapi/gstvaapiencode.c:
22285         * gst/vaapi/gstvaapiencode.h:
22286         * gst/vaapi/gstvaapiencode_h264.c:
22287         * gst/vaapi/gstvaapiencode_h264.h:
22288         * gst/vaapi/gstvaapiencode_mpeg2.c:
22289         * gst/vaapi/gstvaapiencode_mpeg2.h:
22290         * gst/vaapi/gstvaapipluginbase.c:
22291         * gst/vaapi/gstvaapipluginutil.c:
22292         * gst/vaapi/gstvaapipluginutil.h:
22293         * gst/vaapi/gstvaapipostproc.c:
22294         * gst/vaapi/gstvaapipostproc.h:
22295         * gst/vaapi/gstvaapisink.c:
22296         * gst/vaapi/gstvaapisink.h:
22297         * gst/vaapi/gstvaapivideometa_texture.c:
22298         * tests/simple-decoder.c:
22299           legal: update copyright notice dates.
22300
22301 2014-01-22 18:49:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22302
22303         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22304         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22305         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22306         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22307         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22308         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22309         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22310         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22311         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22312         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22313         * gst/vaapi/gstvaapiencode.c:
22314         * gst/vaapi/gstvaapiencode.h:
22315         * gst/vaapi/gstvaapiencode_h264.c:
22316         * gst/vaapi/gstvaapiencode_h264.h:
22317         * gst/vaapi/gstvaapiencode_mpeg2.c:
22318         * gst/vaapi/gstvaapiencode_mpeg2.h:
22319           legal: add per-file authorship information.
22320
22321 2014-01-22 18:11:26 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22322
22323         * gst-libs/gst/vaapi/gstvaapidecoder.c:
22324         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
22325           decoder: fix video codec frame number in standalone mode.
22326           Set a valid GstVideoCodecFrame.system_frame_number when decoding a
22327           stream in standalone mode. While we are at it, improve the debugging
22328           messages to also include that frame number.
22329
22330 2014-01-17 16:56:53 +0800  Wind Yuan <feng.yuan@intel.com>
22331
22332         * gst-libs/gst/vaapi/gstvaapidecoder.c:
22333         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
22334           decoder: fix crash on invalid pointer for GST_DEBUG().
22335           When decoding failed, or that the frame was dropped, the associated
22336           surface proxy is not guaranteed to be present. Thus, the GST_DEBUG()
22337           message needs to check whether the proxy is actually present or not.
22338           https://bugzilla.gnome.org/show_bug.cgi?id=722403
22339           [fixed gst_vaapi_surface_proxy_get_surface_id() to return VA_INVALID_ID]
22340           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22341
22342 2014-01-22 17:07:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22343
22344         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22345           encoder: h264: disable NAL HRD parameters for now.
22346           Don't emit NAL HRD parameters for now in the SPS headers because the
22347           SEI buffering_period() and picture_timing() messages are not handled
22348           yet. Some additional changes are necessary to get it right.
22349           https://bugzilla.gnome.org/show_bug.cgi?id=722734
22350
22351 2014-01-21 19:04:41 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22352
22353         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22354         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22355         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22356         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
22357           encoder: h264: fix default CPB buffer size.
22358           Fix default CPB buffer size to something more reasonable (1500 ms)
22359           and that still fits the level limits. This is a non configurable
22360           property for now. The initial CPB removal delay is also fixed to
22361           750 ms.
22362           https://bugzilla.gnome.org/show_bug.cgi?id=722087
22363
22364 2014-01-22 14:43:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22365
22366         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22367           encoder: h264: fix bitrate encoding for HRD conformance.
22368           Round down the calculated, or supplied, bitrate (kbps) into a multiple
22369           of the HRD bitrate scale factor. Use a bitrate scale factor of 64 so
22370           that to have less losses in precision. Likewise, don't round up because
22371           that could be a strict constraint imposed by the user.
22372
22373 2014-01-22 11:25:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22374
22375         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22376           encoder: h264: fix level lookup constraints wrt. bitrate.
22377           Fix the level calculation involving bitrate limits. Since we are
22378           targetting NAL HRD conformance, the check against MaxBR from the
22379           Table A-1 limits shall involve cpbBrNalFactor depending on the
22380           active profile.
22381
22382 2014-01-21 18:01:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22383
22384         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22385           encoder: h264: submit sequence parameter only once.
22386           Submit sequence parameter buffers only once, or when the bitstream
22387           was reconfigured in a way that requires such. Always submit packed
22388           sequence parameter buffers at I-frame period, if the VA driver needs
22389           those.
22390           https://bugzilla.gnome.org/show_bug.cgi?id=722737
22391
22392 2014-01-21 18:35:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22393
22394         * gst-libs/gst/vaapi/gstvaapicontext.c:
22395         * gst-libs/gst/vaapi/gstvaapicontext.h:
22396         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22397         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22398         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22399           encoder: h264: only submit packed headers when required.
22400           Make sure to submit the packed headers only if the underlying VA driver
22401           requires those. Currently, only handle packed sequence and picture
22402           headers.
22403           https://bugzilla.gnome.org/show_bug.cgi?id=722737
22404
22405 2014-01-21 17:35:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22406
22407         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22408           encoder: h264: fix ip_period value in sequence parameter.
22409           The VAEncSequenceParameterBuffer.ip_period value reprents the distance
22410           between the I-frame and the next P-frame. So, this also accounts for
22411           any additional B-frame in the middle of it.
22412           This fixes rate control heuristics for certain VA drivers.
22413           https://bugzilla.gnome.org/show_bug.cgi?id=722735
22414
22415 2014-01-21 17:04:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22416
22417         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22418           encoder: h264: fix level when bitrate is automatically computed.
22419           Fix level characterisation when the bitrate is automatically computed
22420           from the active coding tools. i.e. ensure the bitrate once the profile
22421           is completely characterized but before the level calculation process.
22422
22423 2014-01-21 16:05:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22424
22425         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22426           encoder: h264: clean-ups.
22427           Document and rename a few functions here and there. Drop code that
22428           caps num_bframes variable in reset_properties() since they shall
22429           have been checked beforehand, during properties initialization.
22430
22431 2014-01-21 15:28:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22432
22433         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22434           encoder: h264: clean-up bitwriter related utilities.
22435           Clean-up GstBitWriter related utility functions and simplify notations.
22436           While we are at it, also make bitstream writing more robust should an
22437           overflow occur. We could later optimize for writing headers capped to
22438           their maximum possible size by using the _unchecked() helper variants.
22439
22440 2014-01-21 15:23:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22441
22442         * gst-libs/gst/vaapi/Makefile.am:
22443         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22444         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22445           encoder: h264: completely remove private headers.
22446           Drop private header since it was originally used to expose internals
22447           to the plugin element. The proper interface is now the properties API,
22448           thus rendering private headers totally obsolete.
22449
22450 2014-01-15 15:54:32 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22451
22452         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22453           encoder: h264: fix PPS header packing with profile < high.
22454           Fix PPS header packing when profile is below High since 8x8 transform
22455           mode and scaling lists are High Profile features.
22456
22457 2014-01-15 15:46:19 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22458
22459         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22460           encoder: h264: always emit VUI parameters for framerate.
22461           Always emit VUI parameters for timing_info, which includes framerate
22462           information.
22463
22464 2014-01-15 15:10:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22465
22466         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22467           encoder: h264: really fix frame cropping rectangle calculation.
22468           Make frame cropping rectangle calculation future proof, i.e. exactly
22469           follow the specification (7-18) to (7-21), and subsampling definitions
22470           from Table 6-1.
22471           https://bugzilla.gnome.org/show_bug.cgi?id=722089
22472           https://bugzilla.gnome.org/show_bug.cgi?id=722238
22473
22474 2014-01-15 12:09:14 +0100  Holger Kaelberer <hk@getslash.de>
22475
22476         * gst/vaapi/gstvaapisink.c:
22477         * gst/vaapi/gstvaapisink.h:
22478           vaapisink: set csc render flags from sinkpad caps.
22479           This maps GstVideoColorimetry information in vaapisink's sinkpad caps
22480           to GST_VAAPI_COLOR_STANDARD_* flags, if per-buffer information was not
22481           available.
22482           https://bugzilla.gnome.org/show_bug.cgi?id=722255
22483           [factored out code, added SMPTE240M, handle per-buffer flags]
22484           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22485
22486 2012-03-28 15:05:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22487
22488         * gst-libs/gst/vaapi/gstvaapisurface.h:
22489         * gst-libs/gst/vaapi/gstvaapiutils.c:
22490         * gst/vaapi/gstvaapipostproc.c:
22491           surface: rework render flags.
22492           Pack render flags per category and provide more flags into the color
22493           standard category. In particular, cover for SMPTE-240M.
22494
22495 2013-12-13 04:14:41 +0800  Zhao, Halley <halley.zhao@intel.com>
22496
22497         * gst-libs/gst/vaapi/gstvaapifilter.c:
22498         * gst/vaapi/gstvaapipostproc.c:
22499         * gst/vaapi/gstvaapipostproc.h:
22500           vaapipostproc: add support for colorbalance filters.
22501           Add support for hue, saturation, brightness and constrat adjustments.
22502           Also fix cap info local copy to match the really expected cap subtype
22503           of interest.
22504           https://bugzilla.gnome.org/show_bug.cgi?id=720376
22505           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22506
22507 2013-12-12 08:38:12 +0800  Zhao, Halley <halley.zhao@intel.com>
22508
22509         * gst/vaapi/gstvaapipostproc.c:
22510           vaapipostproc: fix support for "sharpen" filter.
22511           Fix copy/paste error when submitting the "sharpen" value to the
22512           GstVaapiFilter instance.
22513           https://bugzilla.gnome.org/show_bug.cgi?id=720375
22514           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22515
22516 2013-12-20 12:05:42 +0000  Lionel Landwerlin <llandwerlin@gmail.com>
22517
22518         * configure.ac:
22519         * pkgconfig/gstreamer-vaapi-drm.pc.in:
22520         * pkgconfig/gstreamer-vaapi-glx.pc.in:
22521         * pkgconfig/gstreamer-vaapi-wayland.pc.in:
22522         * pkgconfig/gstreamer-vaapi-x11.pc.in:
22523         * pkgconfig/gstreamer-vaapi.pc.in:
22524           pkgconfig: plugin dir should use PKG version not API version.
22525           Fix the pluginsdir and includedir variables in the generated pkgconfig
22526           (.pc) files. The location needs to be built with the PKG version in
22527           mind instead of the API version.
22528           While we are at it, also fix the PKG version for GStreamer >= 1.3.
22529           https://bugzilla.gnome.org/show_bug.cgi?id=720820
22530           [additional fixes for includedir and pkg requirements]
22531           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22532
22533 2014-01-15 10:05:45 +0100  Holger Kaelberer <hk@getslash.de>
22534
22535         * gst/vaapi/gstvaapisink.c:
22536           vaapisink: fix display initialization in GstVideoOverlay implementation.
22537           When gst_vaapisink_video_overlay_set_window_handle() is called early,
22538           before the pipeline has been set to PLAYING, the display has not yet
22539           been initialized and _PLUGIN_BASE_DISPLAY_TYPE() is not yet
22540           up-to-date. For this reason the foreign XID is not attached.
22541           Now _ensure_display() is called earlier.
22542           https://bugzilla.gnome.org/show_bug.cgi?id=722244
22543           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22544
22545 2013-10-09 13:47:54 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
22546
22547         * gst/vaapi/gstvaapisink.c:
22548           vaapisink: expose the raw video formats in static caps template.
22549           Expose all raw video formats in the static caps template since the
22550           vaapisink is supporting raw data. We will get the exact set of formats
22551           supported by the driver dynamically through the _get_caps() routine.
22552           https://bugzilla.gnome.org/show_bug.cgi?id=703271
22553           https://bugzilla.gnome.org/show_bug.cgi?id=720737
22554           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22555
22556 2013-12-11 18:08:26 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
22557
22558         * gst/vaapi/gstvaapidecode.c:
22559           vaapidecode: query downstream caps features like GLTextureUploadMeta.
22560           Fix vaapidecode to correctly report caps features downstream, when
22561           a custom pipeline is built manually.
22562           https://bugzilla.gnome.org/show_bug.cgi?id=719372
22563           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22564
22565 2013-12-17 15:27:10 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
22566
22567         * gst/vaapi/gstvaapidecode.c:
22568           vaapidecode: add system memory caps to template caps.
22569           Since vaapidecode provides buffer that can be mapped as regular memory,
22570           those caps should be added to the template caps. That only applies to
22571           GStreamer >= 1.2.
22572           https://bugzilla.gnome.org/show_bug.cgi?id=720608
22573           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22574
22575 2013-12-17 10:26:03 +0800  Wind Yuan <feng.yuan@intel.com>
22576
22577         * gst/vaapi/gstvaapidecode.c:
22578           vaapidecode: fix hang on SIGINT.
22579           vaapidecode hangs when pipeline is stopped without any EOS, e.g. when
22580           <Ctrl>+C is pressed, thus causing the srcpad task to keep running and
22581           locked. This fixes a deadlock on state change from PAUSED to READY.
22582           https://bugzilla.gnome.org/show_bug.cgi?id=720584
22583           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22584
22585 2013-12-17 04:23:42 -0500  Wind Yuan <feng.yuan@intel.com>
22586
22587         * gst/vaapi/gstvaapiencode.c:
22588           vaapiencode: fix possible hang on SIGINT.
22589           vaapiencode might hang when the pipeline is stopped without any EOS,
22590           e.g. when <Ctrl>+C is pressed, thus causing the srcpad task to keep
22591           running and locked. This fixes a possible deadlock on state change
22592           from PAUSED to READY.
22593           https://bugzilla.gnome.org/show_bug.cgi?id=720584
22594           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22595
22596 2014-01-14 16:33:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22597
22598         * gst/vaapi/gstvaapiencode.c:
22599           vaapiencode: fix typo in error message.
22600           Fix incomplete error message in gst_vaapiencode_push_frame().
22601
22602 2014-01-14 19:08:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22603
22604         * gst/vaapi/gstvaapipluginutil.c:
22605         * gst/vaapi/gstvaapipluginutil.h:
22606           plugins: add helpers to create video caps with features.
22607           Add gst_vaapi_video_format_new_template_caps_with_features() helper
22608           function to add the supplied caps feature string on GStreamer >= 1.2.
22609           Add gst_vaapi_find_preferred_caps_feature() helper function to discover
22610           the "best" caps feature to use for the supplied pad. In practice, we
22611           will always favor memory:VASurface first, then meta:GLTextureUploadMeta,
22612           and finally the system memory caps.
22613           https://bugzilla.gnome.org/show_bug.cgi?id=719372
22614
22615 2014-01-09 11:54:11 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
22616
22617         * gst/vaapi/gstvaapivideometa_texture.c:
22618           plugins: don't apply overlay composition in GLTextureUpload function.
22619           The GLTextureUpload function is not in charge of doing the overlay
22620           composition if any.
22621           https://bugzilla.gnome.org/show_bug.cgi?id=721859
22622           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22623
22624 2014-01-14 13:47:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22625
22626         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22627           encoder: re-order submission of VA objects.
22628           Change the submission order of VA objects so that to make that process
22629           more logical. i.e. submit sequence parameter first, if any; next the
22630           packed headers associated to sequece, picture or slices; and finally
22631           the actual picture and associated slices.
22632
22633 2014-01-14 12:01:11 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22634
22635         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22636         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22637         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22638         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22639         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
22640           encoder: clean-up objects.
22641           Various clean-ups to improve consistency and readability: rename some
22642           variables, drop unused macro definitions, drop initialization of vars
22643           that are zero-initialized from the base class, drop un-necessary casts,
22644           allocate GPtrArrays with a destroy function.
22645
22646 2014-01-13 13:41:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22647
22648         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22649           encoder: h264: fix frame cropping rectangle calculation.
22650           Fix frame cropping rectangle calculation to handle horizontal resolutions
22651           that don't match a multiple of 16 pixels, but also the vertical resolution
22652           that was incorrectly computed for progressive sequences too.
22653           https://bugzilla.gnome.org/show_bug.cgi?id=722089
22654
22655 2014-01-13 11:49:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22656
22657         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22658           encoder: h264: improve automatic bitrate calculation.
22659           For non "Constant-QP" modes, we could provide more reasonable heuristics
22660           for the target bitrate. In general, 48 bits per macroblock with all the
22661           useful coding tools enable looks safe enough. Then, this rate is raised
22662           by +10% to +15% for each coding tool that is disabled.
22663           https://bugzilla.gnome.org/show_bug.cgi?id=719699
22664
22665 2014-01-13 11:11:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22666
22667         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22668           encoder: h264: support "high-compression" tuning option.
22669           Add support for "high-compression" tuning option. First, determine the
22670           largest supported profile by the hardware. Next, check any target limit
22671           set by the user. Then, enable each individual coding tool based on the
22672           resulting profile_idc value to use.
22673           https://bugzilla.gnome.org/show_bug.cgi?id=719696
22674
22675 2014-01-12 22:24:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22676
22677         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22678         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22679         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22680         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
22681         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
22682         * gst/vaapi/gstvaapiencode_h264.c:
22683           encoder: h264: allow target decoder constraints.
22684           Allow user to precise the largest profile to use for encoding due
22685           to target decoder constraints. For instance, if CABAC entropy coding
22686           mode is requested by "constrained-baseline" profile only is desired,
22687           then an error is returned during codec configuration.
22688           Also make sure that the suitable profile we derived actually matches
22689           what the HW can cope with.
22690           https://bugzilla.gnome.org/show_bug.cgi?id=719694
22691
22692 2014-01-12 22:14:11 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22693
22694         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22695           encoder: h264: refine size of coded buffer.
22696           Refine the heuristic to determine the maximum size of a coded buffer
22697           to account for the exact number of slices. set_context_info() is the
22698           last step during codec reconfiguration, no additional change is done
22699           afterwards, so re-using the num_slices field here is fine.
22700           https://bugzilla.gnome.org/show_bug.cgi?id=719953
22701
22702 2013-12-13 17:36:08 +0800  Wind Yuan <feng.yuan@intel.com>
22703
22704         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22705         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22706         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22707           encoder: h264: expose more coding tools.
22708           Add new H.264 coding tools to improve compression:
22709           - "cabac": enable CABAC entropy coding (default: FALSE);
22710           - "dct8x8": enable spatial transform 8x8 (default: FALSE).
22711           https://bugzilla.gnome.org/show_bug.cgi?id=719693
22712           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22713
22714 2014-01-10 18:18:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22715
22716         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22717         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22718         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22719           encoder: h264: derive profile and level from active coding tools.
22720           Automatically derive the minimum profile and level to be used for
22721           encoding, based on the activated coding tools. The encoder will
22722           be trying to generate a bitstream that has the best chances to be
22723           decoded on most platforms by default.
22724           Also change the default profile to "constrained-baseline" so that
22725           to ensure maximum compatibility when the stream is decoded.
22726           https://bugzilla.gnome.org/show_bug.cgi?id=719691
22727
22728 2014-01-10 17:02:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22729
22730         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22731         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22732         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22733           encoder: h264: fix hardware profile lookup.
22734           Fix lookup for a suitable HW profile, as to be used by the underlying
22735           hardware, based on heuristics that lead to characterize the SW profile,
22736           i.e. the one used by the SW level encoding logic.
22737           Also fix constraint_set0_flag (A.2.1) and constraint_set1_flag (A.2.2)
22738           as they should respectively match the baseline and main profile.
22739           https://bugzilla.gnome.org/show_bug.cgi?id=719827
22740
22741 2014-01-10 14:46:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22742
22743         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22744         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22745         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22746           encoder: h264: support only the byte-stream format.
22747           The libgstvaapi core encoders are meant to support raw bitstreams only.
22748           Henceforth, we are always producing a stream in "byte-stream" format.
22749           However, the "codec-data" buffer which holds SPS and PPS headers is
22750           always available. The "lengthSizeMinusOne" field is always set to 3
22751           so that in-place "byte-stream" format to "avc" format conversion could
22752           be performed.
22753
22754 2014-01-10 14:05:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22755
22756         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22757         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22758         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22759         * gst/vaapi/gstvaapiencode_h264.c:
22760           encoder: h264: clean-ups.
22761           Various clean-ups to improve consistency and readability: rename some
22762           variables, drop unused macro definitions, drop initialization of vars
22763           that are zero-initialized from the base class, drop un-necessary casts.
22764
22765 2014-01-13 17:11:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22766
22767         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22768           encoder: mpeg2: fix hardware profile lookup.
22769           Fix lookup for a suitable HW profile, as to be used by the underlying
22770           hardware, based on heuristics that lead to characterize the SW profile,
22771           i.e. the one used by the SW level encoding logic.
22772
22773 2014-01-13 16:56:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22774
22775         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22776         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22777           encoder: mpeg2: derive profile and level from active coding tools.
22778           Automatically derive the minimum profile and level to be used for
22779           encoding, based on the activated coding tools. Improve lookup for
22780           the best suitable level with the new MPEG-2 helper functions.
22781           Also change the default profile to "simple" so that to ensure maximum
22782           compatibility when the stream is decoded.
22783           https://bugzilla.gnome.org/show_bug.cgi?id=719703
22784
22785 2014-01-13 14:41:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22786
22787         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22788         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22789         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22790           encoder: mpeg2: clean-ups.
22791           Various clean-ups to improve consistency and readability: drop unused
22792           macro definitions, drop initialization of vars that are zero-initialized
22793           from the base class, drop un-necessary casts.
22794
22795 2014-01-13 10:48:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22796
22797         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22798         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22799         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22800         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22801         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22802           encoder: add tuning options API.
22803           Add encoder "tune" option to override the default behaviour that is to
22804           favor maximum decoder compatibility at the expense of lower compression
22805           ratios.
22806           Expected tuning options to be developed are:
22807           - "high-compression": improve compression, target best-in-class decoders;
22808           - "low-latency": tune for low-latency decoding;
22809           - "low-power": tune for encoding in low power / resources conditions.
22810
22811 2014-01-12 23:17:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22812
22813         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22814         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22815           encoder: fix bitrate units to match kbps.
22816           Bitrate is expressed in kilobits per second (kbps). So, this exactly
22817           means in multiple of 1000 bits, not 1024 bits.
22818           https://bugzilla.gnome.org/show_bug.cgi?id=722086
22819
22820 2014-01-12 21:57:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22821
22822         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22823         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
22824         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22825           encoder: clean-ups.
22826           Drop obsolete and unused macros. Add a few doc comments. Slightly
22827           improve indentation of a few leftovers.
22828
22829 2014-01-12 18:52:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22830
22831         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22832         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22833         * gst-libs/gst/vaapi/gstvaapivalue.c:
22834         * gst-libs/gst/vaapi/gstvaapivalue.h:
22835           encoder: filter out the supported set of rate-control properties.
22836           Only expose the exact static set of supported rate-control properties
22837           to the upper layer. For instance, if the GstVaapiEncoderXXX class does
22838           only support CQP rate control, then only add it the the exposed enum
22839           type.
22840           Add helper macros and functions to build a GType for an enum subset.
22841
22842 2014-01-10 13:23:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22843
22844         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22845         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22846         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22847         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22848         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22849         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22850         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22851         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22852         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22853           encoder: add keyframe period API.
22854           Add gst_vaapi_encoder_set_keyframe_period() interface to allow the
22855           user control the maximum distance between two keyframes. This new
22856           property can only be set prior to gst_vaapi_encoder_set_codec_state().
22857           A value of zero for "keyframe-period" gets it re-evaluated to the
22858           actual framerate during encoder reconfiguration.
22859
22860 2014-01-10 12:01:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22861
22862         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22863         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22864         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22865         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22866           encoder: improve codec reconfiguration.
22867           Improve codec reconfiguration to be performed only through a single
22868           function. That is, remove the _set_context_info() hook as subclass
22869           should not alter the parent GstVaapiContextInfo itself. Besides, the
22870           VA context is constructed only at the final stages of reconfigure().
22871
22872 2014-01-10 11:30:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22873
22874         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.c:
22875         * gst-libs/gst/vaapi/gstvaapicodedbufferpool.h:
22876         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22877           encoder: fix possible memory leak of coded buffer pools.
22878           Fix gst_vaapi_encoder_reconfigure_internal() to re-/allocate the coded
22879           buffer pool only if the coded buffer size actually changed.
22880
22881 2014-01-10 10:54:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22882
22883         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22884         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22885         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22886         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22887         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22888         * gst/vaapi/gstvaapiencode.c:
22889         * gst/vaapi/gstvaapiencode.h:
22890           encoder: add video codec-state API.
22891           Add interface to communicate the encoder resolution and related info
22892           like framerate, interlaced vs. progressive, etc. This new interface
22893           supersedes gst_vaapi_encoder_set_format() and doesn't use any GstCaps
22894           but rather use GstVideoCodecState.
22895           Note that gst_vaapi_encoder_set_codec_state() is also a synchronization
22896           point for codec config. This means that the encoder is reconfigured
22897           there to match the latest properties.
22898
22899 2014-01-13 17:18:42 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22900
22901         * gst/vaapi/gstvaapiencode.c:
22902           vaapiencode: don't crash on NULL encoder on _finish().
22903           Don't try to destroy an encoder, in GstVideoEncoder::finish() handler,
22904           if it was not created in the first place. Return "not-negotiated" error
22905           since this means we did not even reach GstVideoEncoder::set_format(),
22906           where the encoder could have been created.
22907           This fixes a crash when the vaapiencode_* plug-in elements get deallocated
22908           and that we failed to negotiate either pad.
22909           https://bugzilla.gnome.org/show_bug.cgi?id=719704
22910
22911 2014-01-09 18:20:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22912
22913         * gst/vaapi/gstvaapiencode.c:
22914         * gst/vaapi/gstvaapiencode.h:
22915         * gst/vaapi/gstvaapiencode_h264.c:
22916           vaapiencode: use more GstVaapiPluginBase facilities.
22917           Avoid duplication of pad references or query functions since they are
22918           provided through the GstVaapiPluginBase object.
22919
22920 2014-01-09 18:10:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22921
22922         * gst/vaapi/gstvaapiencode.c:
22923         * gst/vaapi/gstvaapiencode.h:
22924         * gst/vaapi/gstvaapiencode_h264.c:
22925         * gst/vaapi/gstvaapiencode_h264.h:
22926         * gst/vaapi/gstvaapiencode_mpeg2.c:
22927           vaapiencode: fix negotiation process of output caps.
22928           The specified caps in gst_video_encoder_set_output_state() function
22929           arguments should not contain any resolution, pixel-aspect-ratio,
22930           framerate, codec-data et al. Those rather should be set through the
22931           returned GstVideoCodecState. This means that output caps creation
22932           could be delayed until before gst_video_encoder_finish_frame() is
22933           called.
22934           This greatly simplifies the GstVideoEncoder::set_format() callback
22935           by the way.
22936
22937 2014-01-08 18:56:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22938
22939         * gst/vaapi/gstvaapiencode.c:
22940           vaapiencode: make GstVaapiEncode an abstract type.
22941           Make base GstVaapiEncode class an abstract type so that we cannot
22942           create an instance from it without going through any of the codec
22943           specific derived class.
22944
22945 2014-01-09 10:09:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22946
22947         * gst/vaapi/gstvaapiencode.c:
22948         * gst/vaapi/gstvaapiencode.h:
22949         * gst/vaapi/gstvaapiencode_h264.c:
22950         * gst/vaapi/gstvaapiencode_mpeg2.c:
22951           vaapiencode: rename a few member functions.
22952           Rename a few member functions to make them more consistent:
22953           - alloc_encoder(): now reduced to allocate the encoder object only;
22954           - alloc_buffer(): allocate buffer from srcpad, and copy bitstream.
22955
22956 2014-01-08 18:36:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22957
22958         * gst/vaapi/gstvaapiencode.c:
22959         * gst/vaapi/gstvaapiencode.h:
22960         * gst/vaapi/gstvaapiencode_h264.c:
22961         * gst/vaapi/gstvaapiencode_h264.h:
22962         * gst/vaapi/gstvaapiencode_mpeg2.c:
22963           vaapiencode: update for new properties API.
22964           Update MPEG-2 and H.264 encode elements to cope with the new core
22965           libgstvaapi properties API. i.e. all configurable properties are now
22966           directly handled at the GstVaapiEncoder level.
22967           Besides, this also makes sure to not use or modify the GstVaapiEncoder
22968           private definitions directly. Private data need to remain private.
22969           https://bugzilla.gnome.org/show_bug.cgi?id=719529
22970
22971 2014-01-06 17:46:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22972
22973         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22974         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22975         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22976         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
22977         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22978         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
22979         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22980           encoder: add properties API.
22981           Add interface to communicate configurable properties to the encoder.
22982           This covers both the common ones (rate-control, bitrate), and the
22983           codec specific properties.
22984           https://bugzilla.gnome.org/show_bug.cgi?id=719529
22985
22986 2014-01-06 18:01:33 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
22987
22988         * gst-libs/gst/vaapi/gstvaapiencoder.c:
22989         * gst-libs/gst/vaapi/gstvaapiencoder.h:
22990         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
22991         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
22992         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
22993         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
22994         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
22995         * gst/vaapi/gstvaapiencode.c:
22996         * gst/vaapi/gstvaapiencode_h264.c:
22997         * gst/vaapi/gstvaapiencode_mpeg2.c:
22998           encoder: add bitrate API.
22999           Add gst_vaapi_encoder_set_bitrate() interface to allow the user control
23000           the bitrate for encoding. Currently, changing this parameter is only
23001           valid before the first frame is encoded. Should the value be modified
23002           afterwards, then GST_VAAPI_ENCODER_STATUS_ERROR_OPERATION_FAILED is
23003           returned.
23004           https://bugzilla.gnome.org/show_bug.cgi?id=719529
23005
23006 2014-01-06 15:10:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23007
23008         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23009         * gst-libs/gst/vaapi/gstvaapiencoder.h:
23010         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23011         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23012         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23013         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23014         * gst-libs/gst/vaapi/gstvaapitypes.h:
23015         * gst/vaapi/gstvaapiencode.c:
23016         * gst/vaapi/gstvaapiencode.h:
23017         * gst/vaapi/gstvaapiencode_h264.c:
23018         * gst/vaapi/gstvaapiencode_mpeg2.c:
23019           encoder: add rate control API.
23020           Add gst_vaapi_encoder_set_rate_control() interface to request a new
23021           rate control mode for encoding. Changing the rate control mode is
23022           only valid prior to encoding the very first frame. Afterwards, an
23023           error ("operation-failed") is issued.
23024           https://bugzilla.gnome.org/show_bug.cgi?id=719529
23025
23026 2014-01-03 16:57:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23027
23028         * gst/vaapi/gstvaapiencode.c:
23029         * gst/vaapi/gstvaapiencode_h264.c:
23030         * gst/vaapi/gstvaapiencode_mpeg2.c:
23031           vaapiencode: fix indentation.
23032
23033 2014-01-03 16:57:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23034
23035         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23036         * gst-libs/gst/vaapi/gstvaapiencoder.h:
23037         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23038         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23039         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23040         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23041         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23042         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23043         * gst/vaapi/gstvaapiencode.h:
23044           encoder: fix indentation.
23045
23046 2014-01-13 16:20:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23047
23048         * gst-libs/gst/vaapi/Makefile.am:
23049         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.c:
23050         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2.h:
23051         * gst-libs/gst/vaapi/gstvaapiutils_mpeg2_priv.h:
23052           utils: add new MPEG-2 helper functions.
23053           Add various helper functions to convert profile, level, chroma formats
23054           from gstreamer-vaapi world and the MPEG-2 specification world.
23055
23056 2014-01-10 19:49:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23057
23058         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23059           utils: h264: don't use fatal asserts.
23060           Replace g_assert() with a g_debug() so that to not make the program
23061           abort when an unsupported value is supplied.
23062
23063 2014-01-10 19:37:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23064
23065         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23066         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23067           utils: h264: add helpers for profile and level string mappings.
23068           Add profile and level helper functions to convert to/from strings.
23069
23070 2014-01-10 18:27:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23071
23072         * gst-libs/gst/vaapi/Makefile.am:
23073         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23074         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23075         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23076         * gst-libs/gst/vaapi/gstvaapiutils_h264_priv.h:
23077           utils: h264: expose levels in public header.
23078           Instal <gst/vaapi/gstvaapiutils_h264.h> header but only expose the
23079           H.264 levels in there. The additional helper functions are meant
23080           to be private for now.
23081
23082 2014-01-09 09:27:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23083
23084         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23085         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23086         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23087         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23088           codec: add helper macros to maintain object refcount.
23089           Add gst_vaapi_mini_object_{ref,unref,replace}() helper macros so that
23090           to avoid explicit casts to GstVaapiMiniObject in all caller sites.
23091
23092 2014-01-09 09:30:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23093
23094         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
23095         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
23096           codec: re-indent decoder objects.
23097
23098 2014-01-09 09:10:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23099
23100         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
23101         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
23102           codec: re-indent base codec objects.
23103
23104 2014-01-03 12:49:05 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
23105
23106         * gst/vaapi/gstvaapipluginbase.c:
23107           plugins: do not free debug category in finalize method.
23108           Fixes a crash when multiple vaapidecode elements are finalized since
23109           the debug category is created once in the class init method.
23110           This is a regression from git commit 7e58d60.
23111           https://bugzilla.gnome.org/show_bug.cgi?id=721390
23112           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23113
23114 2014-01-02 11:35:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23115
23116         * gst-libs/gst/vaapi/glibcompat.h:
23117         * tests/simple-decoder.c:
23118           tests: simple-decoder: don't use deprecated g_thread_create().
23119           Use g_thread_try_new() instead of the deprecated g_thread_create()
23120           function. Provide compatibility glue for any GLib version < 2.31.2.
23121
23122 2014-01-02 11:17:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23123
23124         * gst-libs/gst/vaapi/gstvaapidecoder.c:
23125         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
23126         * gst-libs/gst/vaapi/gstvaapisurface.c:
23127         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
23128         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
23129         * gst/vaapi/gstvaapiencode.c:
23130           Fix printf()-like formats.
23131           Fix formts for various GST_DEBUG et al. invocations. More precisely,
23132           make size_t arguments use the %zu format specifier accordingly; force
23133           XID formats to be a 32-bit unsigned integer; and fix the format used
23134           for gst_vaapi_create_surface_with_format() error cases since we have
23135           been using strings nowadays.
23136
23137 2013-12-21 07:38:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23138
23139         * gst-libs/gst/vaapi/video-format.c:
23140         * gst-libs/gst/vaapi/video-format.h:
23141           utils: format: drop unused helper functions.
23142           The following helper functions are no longer used, thus are removed:
23143           - gst_vaapi_video_format_from_structure()
23144           - gst_vaapi_video_format_from_caps()
23145           - gst_vaapi_video_format_to_caps()
23146
23147 2013-12-21 07:29:50 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23148
23149         * gst-libs/gst/vaapi/video-format.c:
23150         * gst-libs/gst/vaapi/video-format.h:
23151           utils: re-indent GstVideoFormat related helpers.
23152
23153 2013-12-21 08:27:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23154
23155         * gst/vaapi/gstvaapidownload.c:
23156           download: use GstVideoInfo facilities to build output caps.
23157           Use standard GstVideoInfo related functions to build the output caps,
23158           thus directly preserving additional fields as needed, instead of
23159           manually copying them over through gst_vaapi_append_surface_caps().
23160           Also ensure that the input caps are fixated first.
23161
23162 2013-12-21 10:41:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23163
23164         * gst/vaapi/gstvaapidownload.c:
23165         * gst/vaapi/gstvaapipluginutil.c:
23166         * gst/vaapi/gstvaapipluginutil.h:
23167         * gst/vaapi/gstvaapiuploader.c:
23168           plugins: factor out construction of template caps.
23169           Add new helper functions to build video template caps.
23170           - gst_vaapi_video_format_new_template_caps():
23171           create GstCaps with size, frame rate and PAR to full range
23172           - gst_vaapi_video_format_new_template_caps_from_list():
23173           try to create a "simplified" list from the supplied formats
23174
23175 2013-12-21 06:41:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23176
23177         * gst/vaapi/gstvaapipluginutil.c:
23178         * gst/vaapi/gstvaapipluginutil.h:
23179         * gst/vaapi/gstvaapipostproc.c:
23180           plugins: factor out construction of GValue from GstVideoFormat.
23181           Add new helper functions to build GValues from GstVideoFormat:
23182           - gst_vaapi_value_set_format():
23183           build a GValue from the supplied video format
23184           - gst_vaapi_value_set_format_list():
23185           build a GValue list from the supplied array of video formats
23186
23187 2013-12-21 06:22:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23188
23189         * gst/vaapi/gstvaapipluginutil.c:
23190         * gst/vaapi/gstvaapipluginutil.h:
23191         * gst/vaapi/gstvaapivideocontext.c:
23192         * gst/vaapi/gstvaapivideocontext.h:
23193           plugins: re-indent common and video context creation utils.
23194
23195 2013-12-20 15:31:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23196
23197         * gst-libs/gst/vaapi/gstvaapidisplay.c:
23198         * gst-libs/gst/vaapi/gstvaapidisplay.h:
23199         * gst/vaapi/gstvaapidecode.c:
23200         * tests/test-display.c:
23201           display: don't use GstCaps for decode or encode profiles list.
23202           Replace gst_vaapi_display_get_{decode,encode}_caps() APIs with more
23203           more convenient APIs that return an array of GstVaapiProfile instead
23204           of GstCaps: gst_vaapi_display_get_{decode,encode}_profiles().
23205
23206 2013-12-20 15:15:05 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23207
23208         * gst-libs/gst/vaapi/gstvaapidisplay.c:
23209         * gst-libs/gst/vaapi/gstvaapidisplay.h:
23210         * gst/vaapi/gstvaapidownload.c:
23211         * gst/vaapi/gstvaapiuploader.c:
23212         * tests/test-display.c:
23213           display: don't use GstCaps for image or subpicture formats list.
23214           Replace gst_vaapi_display_get_{image,subpicture}_caps() APIs, that
23215           returned GstCaps, with more convenient APIs that return an array of
23216           GstVideoFormat: gst_vaapi_display_get_{image,subpicture}_formats().
23217
23218 2013-12-20 14:01:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23219
23220         * gst-libs/gst/vaapi/gstvaapidisplay.c:
23221         * gst-libs/gst/vaapi/gstvaapidisplay.h:
23222         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23223           display: allocate queried resources on-demand.
23224           Allocate the set of decoders or encoders on-demand, when they are
23225           queried. Likewise for VA display attributes, image and subpicture
23226           formats.
23227
23228 2013-12-20 13:27:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23229
23230         * gst-libs/gst/vaapi/gstvaapidisplay.c:
23231         * gst-libs/gst/vaapi/gstvaapidisplay.h:
23232         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
23233         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
23234         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
23235         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
23236         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
23237         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
23238         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
23239         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
23240         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
23241         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
23242         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
23243         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
23244         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
23245         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
23246         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
23247           display: re-indent all GstVaapiDisplay related source code.
23248
23249 2013-12-20 16:04:19 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23250
23251         * gst-libs/gst/vaapi/gstvaapiprofile.c:
23252         * gst-libs/gst/vaapi/gstvaapiprofile.h:
23253           utils: add helper functions to get codec or profile name.
23254
23255 2013-12-20 17:08:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23256
23257         * gst/vaapi/gstvaapipostproc.c:
23258         * gst/vaapi/gstvaapipostproc.h:
23259         * gst/vaapi/gstvaapiuploader.c:
23260           plugins: fix permissions for certain files.
23261           Drop the execute bit for gstvaapiuploader.c and gstvaapipostproc.[ch]
23262           files.
23263
23264 2013-12-12 17:01:29 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
23265
23266         * gst/vaapi/gstvaapivideometa_texture.c:
23267           plugins: implement GLTextureUploadMeta user data copy.
23268           Makes the copies of a buffer reference their own GLTextureUploadMeta
23269           user data and prevent the original buffer accessing already freed
23270           memory if its copies has been released and freed.
23271           https://bugzilla.gnome.org/show_bug.cgi?id=720336
23272           [Propagate the original meta texture to the copy too]
23273           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23274
23275 2013-12-17 18:52:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23276
23277         * gst/vaapi/gstvaapiencode.c:
23278         * gst/vaapi/gstvaapiencode.h:
23279         * gst/vaapi/gstvaapipluginbase.c:
23280         * gst/vaapi/gstvaapipluginbase.h:
23281         * gst/vaapi/gstvaapipostproc.c:
23282         * gst/vaapi/gstvaapipostproc.h:
23283         * gst/vaapi/gstvaapisink.c:
23284         * gst/vaapi/gstvaapisink.h:
23285           plugins: factor out support for raw YUV buffers on sink pads.
23286           Factor out propose_allocation() hooks, creation of video buffer pool
23287           for the sink pad, conversion from raw YUV buffers to VA surface backed
23288           buffers. Update vaapidecode, vaapiencode and vaapipostproc to cope
23289           with the new GstVaapiPluginBase abilities.
23290
23291 2013-12-17 18:46:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23292
23293         * gst-libs/gst/vaapi/gstcompat.h:
23294         * gst/vaapi/gstvaapidecode.c:
23295         * gst/vaapi/gstvaapidecode.h:
23296         * gst/vaapi/gstvaapidownload.c:
23297         * gst/vaapi/gstvaapipluginbase.c:
23298         * gst/vaapi/gstvaapipluginbase.h:
23299         * gst/vaapi/gstvaapipostproc.c:
23300         * gst/vaapi/gstvaapipostproc.h:
23301         * gst/vaapi/gstvaapisink.c:
23302         * gst/vaapi/gstvaapiupload.c:
23303           plugins: factor out pad caps.
23304
23305 2013-12-13 16:03:08 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23306
23307         * gst/vaapi/gstvaapidecode.c:
23308         * gst/vaapi/gstvaapidownload.c:
23309         * gst/vaapi/gstvaapiencode.c:
23310         * gst/vaapi/gstvaapipluginbase.c:
23311         * gst/vaapi/gstvaapipostproc.c:
23312         * gst/vaapi/gstvaapisink.c:
23313         * gst/vaapi/gstvaapiupload.c:
23314           plugins: factor out video context sharing code.
23315
23316 2013-12-13 13:24:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23317
23318         * gst/vaapi/gstvaapidecode.c:
23319         * gst/vaapi/gstvaapidownload.c:
23320         * gst/vaapi/gstvaapiencode.c:
23321         * gst/vaapi/gstvaapipluginbase.c:
23322         * gst/vaapi/gstvaapipluginbase.h:
23323         * gst/vaapi/gstvaapipostproc.c:
23324         * gst/vaapi/gstvaapisink.c:
23325         * gst/vaapi/gstvaapiupload.c:
23326           plugins: factor out GstImplementsInterface.
23327
23328 2013-12-13 12:00:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23329
23330         * gst-libs/gst/vaapi/gstvaapidisplay.c:
23331         * gst-libs/gst/vaapi/gstvaapidisplay.h:
23332         * gst/vaapi/gstvaapipluginbase.c:
23333         * gst/vaapi/gstvaapipluginutil.c:
23334           plugins: check type of display obtained from neighbours.
23335           Fix display creation code to check that any display obtained from a
23336           neighbour actually has the type we expect. Note: if display type is
23337           set to "any", we can then accept any VA display type.
23338
23339 2013-12-13 11:52:47 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23340
23341         * gst/vaapi/gstvaapidecode.c:
23342         * gst/vaapi/gstvaapidownload.c:
23343         * gst/vaapi/gstvaapiencode.c:
23344         * gst/vaapi/gstvaapipluginbase.c:
23345         * gst/vaapi/gstvaapipluginbase.h:
23346         * gst/vaapi/gstvaapipluginutil.c:
23347         * gst/vaapi/gstvaapipluginutil.h:
23348         * gst/vaapi/gstvaapipostproc.c:
23349         * gst/vaapi/gstvaapisink.c:
23350         * gst/vaapi/gstvaapisink.h:
23351         * gst/vaapi/gstvaapiupload.c:
23352           plugins: factor out display creation process.
23353           Move common VA display creation code to GstVaapiPluginBase, with the
23354           default display type remaining "any". Also add a "display-changed"
23355           hook so that subclasses could perform additional tasks when/if the
23356           VA display changed, due to a new display type request for instance.
23357           All plug-ins are updated to cope with the new internal APIs.
23358
23359 2013-12-13 10:24:26 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23360
23361         * gst/vaapi/Makefile.am:
23362         * gst/vaapi/gstvaapidecode.c:
23363         * gst/vaapi/gstvaapidecode.h:
23364         * gst/vaapi/gstvaapidownload.c:
23365         * gst/vaapi/gstvaapidownload.h:
23366         * gst/vaapi/gstvaapiencode.c:
23367         * gst/vaapi/gstvaapiencode.h:
23368         * gst/vaapi/gstvaapipluginbase.c:
23369         * gst/vaapi/gstvaapipluginbase.h:
23370         * gst/vaapi/gstvaapipostproc.c:
23371         * gst/vaapi/gstvaapipostproc.h:
23372         * gst/vaapi/gstvaapisink.c:
23373         * gst/vaapi/gstvaapisink.h:
23374         * gst/vaapi/gstvaapiupload.c:
23375         * gst/vaapi/gstvaapiupload.h:
23376           plugins: add new base object, store display in there.
23377           Introduce a new GstVaapiPluginBase object that will contain all common
23378           data structures and perform all common tasks. First step is to have a
23379           single place to hold VA displays.
23380           While we are at it, also make sure to store and subsequently release
23381           the appropriate debug category for the subclasses.
23382
23383 2013-12-11 14:04:27 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23384
23385         * gst-libs/gst/vaapi/gstvaapiobject.h:
23386         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
23387         * gst/vaapi/gstvaapivideometa_texture.c:
23388         * gst/vaapi/gstvaapivideometa_texture.h:
23389           plugins: fix GLTextureUploadMeta to work with different texture ids.
23390           The GLTextureUploadMeta implementation assumed that for each upload()
23391           sequence, the supplied texture id is always the same as the one that
23392           was previously cached into the underlying GstVaapiTexture. Cope with
23393           any texture id change the expense to recreate the underlying VA/GLX
23394           resources.
23395           https://bugzilla.gnome.org/show_bug.cgi?id=719643
23396
23397 2013-12-11 13:25:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23398
23399         * gst/vaapi/gstvaapidecode.c:
23400         * gst/vaapi/gstvaapivideobufferpool.c:
23401         * gst/vaapi/gstvaapivideometa_texture.c:
23402           plugins: allow builds without GLX enabled for GStreamer 1.2.
23403           Don't try to build GLTextureUploadMeta related code if GLX is not
23404           enabled during GStreamer >= 1.2 builds.
23405
23406 2013-11-20 17:20:07 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
23407
23408         * gst/vaapi/gstvaapidecode.c:
23409         * gst/vaapi/gstvaapivideobufferpool.c:
23410         * gst/vaapi/gstvaapivideobufferpool.h:
23411         * gst/vaapi/gstvaapivideometa_texture.c:
23412         * gst/vaapi/gstvaapivideometa_texture.h:
23413           plugins: request GLTextureUpload meta on buffers in the buffer pool.
23414           Requesting the GLTextureUpload meta on buffers in the bufferpool
23415           prevents such metas from being de-allocated when buffers are released
23416           in the sink.
23417           This is particulary useful in terms of performance when using the
23418           GLTextureUploadMeta API since the GstVaapiTexture associated with
23419           the target texture is stored in the meta.
23420           https://bugzilla.gnome.org/show_bug.cgi?id=712558
23421           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23422
23423 2013-12-11 10:51:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23424
23425         * gst/vaapi/gstvaapivideometa_texture.c:
23426           plugins: robustify GstVideoGLTextureUploadMeta implementation.
23427           Make GstVideoGLTextureUploadMeta::upload() implementation more robust
23428           when the GstVaapiTexture associated with the supplied texture id could
23429           not be created.
23430
23431 2013-12-10 16:14:27 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23432
23433         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23434           h264: improve robustness when packets are missing.
23435           Improve robustness when some expected packets where not received yet
23436           or that were not correctly decoded. For example, don't try to decode
23437           a picture if there was no valid frame headers parsed so far.
23438           https://bugs.freedesktop.org/show_bug.cgi?id=57902
23439
23440 2013-12-10 14:20:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23441
23442         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23443           decoder: h264: fix decoding of BA3_SVA_C.264.
23444           Conformance test Base_Ext_Main_profiles/BA3_SVA_C.264 complys with
23445           extended profile specifications. However, the SPS header has the
23446           constraint_set1_flag syntax element set to 1. This means that, if
23447           a Main profile compliant decoder is available, then it should be
23448           able to decode this stream.
23449           This changes makes it possible to fall-back from Extended profile
23450           to Main profile if constraint_set1_flag is set to 1.
23451           https://bugzilla.gnome.org/show_bug.cgi?id=720190
23452
23453 2013-12-10 11:13:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23454
23455         * gst-libs/gst/vaapi/gstvaapiprofile.h:
23456         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23457           utils: h264: add more profiles.
23458           Add extended profile (A.2.3), high 4:2:2 profile (A.2.6), high 4:2:2
23459           profiles (A.2.7, A.2.10), scalable profiles (G.10.1.1, G.10.1.2) and
23460           multiview profiles (H.10.1.1, H.10.1.2).
23461           Document "Constrained Baseline" and "High 10" profiles.
23462
23463 2013-12-10 15:21:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23464
23465         * ext/codecparsers:
23466           codecparsers: update to gst-vaapi-branch commit e7d0e18.
23467           e7d0e18 h264: complete set of NAL unit types
23468
23469 2013-12-06 15:08:26 +0800  Wind Yuan <feng.yuan@intel.com>
23470
23471         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23472         * gst-libs/gst/vaapi/gstvaapiprofile.c:
23473           decoder: h264: add support for constrained baseline profile.
23474           Recognize streams marked as conforming to the "Constrained Baseline
23475           Profile". If VA driver supports that as is, fine. Otherwise, fallback
23476           to baseline, main or high profile.
23477           Constrained Baseline Profile conveys coding tools that are common
23478           to baseline profile and main profile.
23479           https://bugzilla.gnome.org/show_bug.cgi?id=719947
23480           [Added fallbacks to main and high profiles]
23481           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23482
23483 2013-12-09 12:46:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23484
23485         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23486           decoder: h264: fix decoding of scaling lists.
23487           The GStreamer codecparser layer now parses the scaling lists in zigzag
23488           scan order, as expected, so that to match the original bitstream layout
23489           and specification. However, further convert the scaling lists into
23490           raster scan order to fit the existing practice in most VA drivers.
23491           https://bugzilla.gnome.org/show_bug.cgi?id=706406
23492
23493 2013-12-09 12:07:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23494
23495         * ext/codecparsers:
23496           codecparsers: update to gst-vaapi-branch commit 177c73b.
23497           a7e3255 add H.265 (HEVC) bitstream parser
23498           177c73b h264: fix picture level scaling lists derivation (rule B)
23499           14733f1 h264: fix parsing of VCL HRD parameters
23500           59a0b47 h264: store quantization matrices in zig-zag order
23501           ffb6e26 h264: add helpers to convert quantization matrices
23502           c78a504 mpeg2: also initialize debug category in parse_sequence_header()
23503           719d1b0 mpeg2: turn internal consistency check into a g_assert()
23504           5241d8e all: remove some unused functions
23505           18eb312 all: fix for GST_DISABLE_GST_DEBUG
23506           963c04a all: make warnings more meaningful
23507
23508 2013-12-06 19:05:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23509
23510         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
23511         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23512         * gst-libs/gst/vaapi/gstvaapiutils_h264.h:
23513           utils: add helpers for H.264 levels.
23514           - gst_vaapi_utils_h264_get_level():
23515           Returns GstVaapiLevelH264 from H.264 level_idc value
23516           - gst_vaapi_utils_h264_get_level_idc():
23517           Returns H.264 level_idc value from GstVaapiLevelH264
23518           - gst_vaapi_utils_h264_get_level_limits():
23519           Returns level limits as specified in Table A-1 of the H.264 standard
23520           - gst_vaapi_utils_h264_get_level_limits_table():
23521           Returns the Table A-1 specification
23522
23523 2013-12-06 17:34:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23524
23525         * gst-libs/gst/vaapi/gstvaapiprofile.c:
23526         * gst-libs/gst/vaapi/gstvaapiprofile.h:
23527         * gst-libs/gst/vaapi/gstvaapiutils_h264.c:
23528           utils: add new H.264 profiles.
23529           Add "Constrained Baseline Profile" and "High 10 Profile" definitions
23530           and helper functiions.
23531
23532 2013-12-06 17:21:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23533
23534           utils: add new H.264 helper functions.
23535           * Profiles:
23536           - gst_vaapi_utils_h264_get_profile():
23537           Returns GstVaapiProfile from H.264 profile_idc value
23538           - gst_vaapi_utils_h264_get_profile_idc():
23539           Returns H.264 profile_idc value from GstVaapiProfile
23540           * Chroma formats:
23541           - gst_vaapi_utils_h264_get_chroma_type():
23542           Returns GstVaapiChromaType from H.264 chroma_format_idc value
23543           - gst_vaapi_utils_h264_get_chroma_format_idc():
23544           Returns H.264 chroma_format_idc value from GstVaapiChromaType
23545
23546 2013-12-03 11:05:17 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
23547
23548         * gst-libs/gst/base/Makefile.am:
23549         * gst-libs/gst/vaapi/Makefile.am:
23550           Fix missing files in distribution tarball.
23551           https://bugzilla.gnome.org/show_bug.cgi?id=719776
23552           [Additional fixes and clean-ups]
23553           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23554
23555 2013-12-05 18:13:54 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23556
23557         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23558         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23559           encoder: fix computation of max coded buffer size (again).
23560           The previous fix was only valid to express the maximum size of the
23561           macroblock layer, i.e. without any headers. Now, also account for
23562           the slice headers and top picture header, but also any other header
23563           we might stuff into the VA coded buffer, e.g. sequence headers.
23564
23565 2013-12-04 19:10:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23566
23567         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23568         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23569         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23570           encoder: fix computation of max coded buffer size.
23571           Fix coded buffer size for each codec. A generic issue was that the
23572           number of macroblocks was incorrectly computed. The second issue was
23573           specific to MPEG-2 were the max number of bits per macroblock, and
23574           as defined by the standard, was incorrectly mapped to the (lower)
23575           H.264 requirement. i.e. 4608 bits vs. 3200 bits limit.
23576
23577 2013-12-04 18:48:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23578
23579         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23580         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23581         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23582         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23583           encoder: simplify VA context initialization process.
23584           Change get_context_info() into a set_context_info() function that
23585           initializes common defaults into the base class, thus allowing the
23586           subclasses to specialize the context info further on.
23587           The set_context_info() hook is also the location where additional
23588           context specific data could be initialized. At this point, we are
23589           guaranteed to have valid video resolution size and framerate. i.e.
23590           gst_vaapi_encoder_set_format() was called beforehand.
23591
23592 2013-11-26 14:38:23 +0800  Wind Yuan <feng.yuan@intel.com>
23593
23594         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23595           encoder: fix mpeg2 compilation error.
23596           https://bugzilla.gnome.org/show_bug.cgi?id=719746
23597           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23598
23599 2013-12-04 17:55:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23600
23601         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23602         * gst-libs/gst/vaapi/gstvaapiencoder.h:
23603         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23604         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23605         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23606         * gst/vaapi/gstvaapiencode.c:
23607           encoder: clean-ups and document public APIs.
23608           Clean public APIs up so that to better align with the decoder APIs.
23609           Most importantly, gst_vaapi_encoder_get_buffer() is changed to only
23610           return the VA coded buffer proxy. Also provide useful documentation
23611           for the public APIs.
23612
23613 2013-12-04 17:05:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23614
23615         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23616         * gst-libs/gst/vaapi/gstvaapiencoder.h:
23617         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23618           encoder: avoid extra allocations of GstVaapiEncoderSyncPic objects.
23619           Kill GstVaapiEncoderSyncPic objects that are internally and temporarily
23620           allocated. Rather, associate a GstVaapiEncPicture to a coded buffer
23621           through GstVaapiCodedBufferProxy user-data facility.
23622           Besides, use a GAsyncQueue to maintain a thread-safe queue object of
23623           coded buffers.
23624           Partial fix for the following report:
23625           https://bugzilla.gnome.org/show_bug.cgi?id=719530
23626
23627 2013-12-03 17:04:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23628
23629         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23630         * gst-libs/gst/vaapi/gstvaapiencoder.h:
23631         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23632         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23633         * gst/vaapi/gstvaapiencode.c:
23634           encoder: refactor status codes.
23635           Drop obsolete or unused status codes. Align some status codes with the
23636           decoder counterparts.
23637
23638 2013-12-04 11:54:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23639
23640         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23641         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23642         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23643         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23644         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23645         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
23646           encoder: fix subclassing process.
23647           Fix the GstVaapiEncoderClass parent class type. Make sure to validate
23648           subclass hooks as early as possible, i.e. in gst_vaapi_encoder_init(),
23649           thus avoiding useless run-time checks. Also simplify the subclass
23650           initialization process to be less error prone.
23651
23652 2013-12-03 16:11:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23653
23654           encoder: rework GstVaapiCodedBuffer and related proxy.
23655           Refactor the GstVaapiCodedBuffer APIs so that to more clearly separate
23656           public and private interfaces. Besides, the map/unmap APIs should not
23657           be exposed as is but appropriate accessors should be provided instead.
23658           * GstVaapiCodedBuffer: VA coded buffer abstraction
23659           - gst_vaapi_coded_buffer_get_size(): get coded buffer size.
23660           - gst_vaapi_coded_buffer_copy_into(): copy coded buffer into GstBuffer
23661           * GstVaapiCodedBufferPool: pool of VA coded buffer objects
23662           - gst_vaapi_coded_buffer_pool_new(): create a pool of coded buffers of
23663           the specified max size, and bound to the supplied encoder
23664           * GstVaapiCodedBufferProxy: pool-allocated VA coded buffer object proxy
23665           - gst_vaapi_coded_buffer_proxy_new_from_pool(): create coded buf from pool
23666           - gst_vaapi_coded_buffer_proxy_get_buffer(): get underlying coded buffer
23667           - gst_vaapi_coded_buffer_proxy_get_buffer_size(): get coded buffer size
23668           Rationale: more optimized transfer functions might be provided in the
23669           future, thus rendering the map/unmap mechanism obsolete or sub-optimal.
23670           https://bugzilla.gnome.org/show_bug.cgi?id=719775
23671
23672 2013-11-29 14:02:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23673
23674         * gst/vaapi/gstvaapidecode.c:
23675         * gst/vaapi/gstvaapiencode.c:
23676         * gst/vaapi/gstvaapipostproc.c:
23677         * gst/vaapi/gstvaapisink.c:
23678           plugins: fix reference leaks of VA display objects.
23679           Fix GstElement::set_context() implementation for all plug-in elements
23680           to avoid leaking an extra reference to the VA display, thus preventing
23681           correct cleanup of VA resources in GStreamer 1.2 builds.
23682
23683 2013-11-29 13:56:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23684
23685         * gst/vaapi/gstvaapipluginutil.c:
23686         * gst/vaapi/gstvaapivideocontext.c:
23687           plugins: simplify gst_vaapi_ensure_display().
23688           Return earlier if the creation of a VA display failed. Likewise, simplify
23689           gst_vaapi_video_context_propagate() now that we are guaranteed to have a
23690           valid VA display.
23691
23692 2013-11-28 19:08:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23693
23694         * gst/vaapi/gstvaapivideomemory.c:
23695           plugins: fix memory leaks through GstVideoMeta maps.
23696           When GstVideoMeta maps were used, the supporting functions incorrectly
23697           used gst_buffer_get_memory() instead of gst_buffer_peek_memory(), thus
23698           always increasing the associated GstMemory reference count and giving
23699           zero chance to actually release that, and subsequently the VA display.
23700
23701 2013-11-28 14:15:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23702
23703         * gst-libs/gst/vaapi/gstvaapifilter.c:
23704         * gst/vaapi/gstvaapiencode_h264.c:
23705         * gst/vaapi/gstvaapiencode_mpeg2.c:
23706         * gst/vaapi/gstvaapipostproc.c:
23707         * gst/vaapi/gstvaapisink.c:
23708         * gst/vaapi/gstvaapiuploader.c:
23709           plugins: use G_PARAM_STATIC_STRINGS.
23710           This avoids a few string copies during initialization.
23711
23712 2013-11-28 17:28:11 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23713
23714         * gst/vaapi/gstvaapivideometa.c:
23715           plugins: simplify VA video meta to only reference surface proxies.
23716           Simplify GstVaapiVideoMeta to only hold a surface proxy, which is
23717           now allocated from a surface pool. This also means that the local
23718           reference to the VA surface is also gone, as it could be extracted
23719           from the associated surface proxy.
23720
23721 2013-11-28 16:51:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23722
23723         * gst/vaapi/gstvaapivideobuffer.c:
23724         * gst/vaapi/gstvaapivideobuffer.h:
23725         * gst/vaapi/gstvaapivideometa.c:
23726         * gst/vaapi/gstvaapivideometa.h:
23727           plugins: drop obsolete functions.
23728           Drop the following functions that are not longer used:
23729           - gst_vaapi_video_buffer_new_with_surface()
23730           - gst_vaapi_video_meta_new_with_surface()
23731           - gst_vaapi_video_meta_set_surface()
23732           - gst_vaapi_video_meta_set_surface_from_pool()
23733
23734 2013-11-28 16:37:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23735
23736         * gst/vaapi/gstvaapivideometa.c:
23737           plugins: allow VA video meta to be allocated from surface proxy pools.
23738           Fix gst_vaapi_video_meta_new_from_pool() to allocate VA surface proxies
23739           from surface pools instead of plain VA surfaces. This is to simplify
23740           allocations now that surface proxies are created from a surface pool.
23741
23742 2013-11-28 17:25:05 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23743
23744         * docs/reference/libs/libs-sections.txt:
23745         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
23746         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
23747         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
23748           surfaceproxy: add copy function.
23749           Add gst_vaapi_surface_proxy_copy() function that creates a new surface
23750           proxy with the same information from the parent proxy, except that the
23751           user-defined destroy notify function is not copied over.
23752           The underlying VA surface is pushed back to the video pool only when
23753           the last reference to the parent surface proxy is released.
23754
23755 2013-11-28 15:56:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23756
23757         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23758         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23759         * gst/vaapi/gstvaapiencode.c:
23760           vaapiencode: optimize _handle_frame() to avoid extra allocation.
23761           Optimize gst_vaapiencode_handle_frame() to avoid extra memory allocation,
23762           and in particular the GstVaapiEncObjUserData object. i.e. directly use
23763           the VA surface proxy from the source buffer. This also makes the user
23764           data attached to the GstVideoCodecFrame more consistent between both
23765           the decoder and encoder plug-in elements.
23766
23767 2013-11-28 15:14:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23768
23769         * gst/vaapi/gstvaapiencode.c:
23770           vaapiencode: fix memory leaks in _push_frame() on error.
23771           Simplify gst_vaapiencode_push_frame(), while also removing the call
23772           to gst_video_encoder_negotiate() since this is implicit in _finish()
23773           if caps changed. Also fixed memory leaks that occured on error.
23774
23775 2013-11-28 13:57:54 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23776
23777         * gst/vaapi/gstvaapiencode.c:
23778         * gst/vaapi/gstvaapiencode.h:
23779         * gst/vaapi/gstvaapiencode_h264.c:
23780         * gst/vaapi/gstvaapiencode_h264.h:
23781         * gst/vaapi/gstvaapiencode_mpeg2.c:
23782           vaapiencode: additional clean-ups.
23783           Constify pointers wherever possible. Drop unused variables, and use
23784           consistent variable names. Fix gst_vaapiencode_h264_allocate_buffer()
23785           to correctly report errors, especially when in-place conversion from
23786           bytestream to avcC format failed.
23787
23788 2013-11-28 13:26:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23789
23790         * gst/vaapi/gstvaapiencode.c:
23791         * gst/vaapi/gstvaapiencode.h:
23792         * gst/vaapi/gstvaapiencode_h264.c:
23793         * gst/vaapi/gstvaapiencode_h264.h:
23794         * gst/vaapi/gstvaapiencode_mpeg2.c:
23795         * gst/vaapi/gstvaapiencode_mpeg2.h:
23796           vaapiencode: move common properties to base class.
23797           Move "rate-control" mode and "bitrate" properties to the GstVaapiEncode
23798           base class. The actual range of supported rate control modes is currently
23799           implemented as a plug-in element hook. This ought to be determined from
23800           the GstVaapiEncoder object instead, i.e. from libgstvaapi.
23801
23802 2013-11-28 10:54:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23803
23804         * gst/vaapi/gstvaapiencode_h264.c:
23805         * gst/vaapi/gstvaapiencode_mpeg2.c:
23806           vaapiencode: fix plugin description and debug name.
23807           Align the plug-in debug category to its actual name. i.e. enable debug
23808           logs through vaapiencode_<CODEC> where <CODEC> is mpeg2, h264, etc. Fix
23809           the plug-in element description to make it more consistent with other
23810           VA-API plug-ins.
23811
23812 2013-11-27 16:27:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23813
23814         * configure.ac:
23815         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23816         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23817         * gst-libs/gst/video/Makefile.am:
23818         * gst/vaapi/gstvaapiencode.c:
23819         * gst/vaapi/gstvaapiencode.h:
23820         * gst/vaapi/gstvaapiencode_h264.c:
23821         * gst/vaapi/gstvaapiencode_mpeg2.c:
23822           vaapiencode: add initial support for GStreamer 0.10.
23823
23824 2013-11-27 16:25:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23825
23826         * gst-libs/gst/vaapi/gstcompat.h:
23827           libs: add more GstBuffer compat glue for GStreamer 0.10.
23828           Add gst_buffer_new_allocate() and gst_buffer_fill() implementations.
23829           Fix gst_buffer_new_wrapped_full() implementation to handle the destroy
23830           notify function.
23831
23832 2013-11-27 15:56:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23833
23834         * configure.ac:
23835         * gst-libs/gst/video/Makefile.am:
23836           libs: always use built-in videoutils for GStreamer 0.10.
23837           GStreamer 0.10.36 is the latest and ultimate version to be released
23838           from the GStreamer 0.10 branch. i.e. no further releases are to be
23839           made. So, we can safely enable the built-in videoutils replacement
23840           now that they are in sync with the 0.10 branch.
23841
23842 2013-11-27 15:47:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23843
23844         * ext/videoutils:
23845           videoutils: update to master commit d4a15a5.
23846           d4a15a5 video: fix compiler warning in header with C++11 / clang-3.1
23847           86096cc videodecoder: minor cosmetic changes to align a bit more with master
23848           b4b8b52 videodecoder: allow parse function to not use all data on adapter
23849           2145495 videodecoder: warn if frame list gets long
23850           36c3753 videodecoder: Also use the object lock to protect the output_state
23851           518c93d videodecoder: fix seeking again
23852           185fb63 video: Correct usage of the base class stream lock
23853           170e944 videodecoder: Expose _negotiate function
23854
23855 2013-11-26 12:06:07 +0000  Matthieu Bouron <matthieu.bouron@collabora.com>
23856
23857         * configure.ac:
23858         * gst-libs/gst/vaapi/Makefile.am:
23859         * tests/Makefile.am:
23860           Fix build with GStreamer >= 1.3.
23861           http://bugzilla.gnome.org/show_bug.cgi?id=715183
23862           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23863
23864 2013-11-26 17:56:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23865
23866         * configure.ac:
23867           configure: disable encoders with GStreamer 0.10.
23868           Don't try to build video encoders for GStreamer 0.10. Support code is
23869           not there yet, and probably will never for such an ancient version.
23870
23871 2013-11-26 17:26:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23872
23873         * gst/vaapi/gstvaapiencode.c:
23874           vaapiencode: fix error handling while allocating output buffers.
23875           Fix default GstVideoEncoder::allocate_buffer() implementation to properly
23876           unmap the coded buffer prior to returning an error.
23877
23878 2013-11-26 17:11:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23879
23880         * gst/vaapi/gstvaapiencode.c:
23881           vaapiencode: fix error handling in _finish() hook.
23882           Fix GstVideoEncoder::finish() implementation to really return possible
23883           errors instead of GST_FLOW_OK. That is, fix check for timeout status.
23884
23885 2013-11-26 16:34:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23886
23887         * gst/vaapi/gstvaapiencode.c:
23888         * gst/vaapi/gstvaapiencode.h:
23889         * gst/vaapi/gstvaapiencode_h264.c:
23890         * gst/vaapi/gstvaapiencode_h264.h:
23891         * gst/vaapi/gstvaapiencode_mpeg2.c:
23892         * gst/vaapi/gstvaapiencode_mpeg2.h:
23893           vaapiencode: minor clean-ups.
23894           Add a GST_VAAPIENCODE_CAST() helper to avoid run-time checks against
23895           the GObject type system. We are guaranteed to only deal with the same
23896           plug-in element object.
23897
23898 2013-11-26 15:31:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23899
23900         * gst/vaapi/gstvaapiencode.c:
23901         * gst/vaapi/gstvaapiencode_h264.c:
23902         * gst/vaapi/gstvaapiencode_mpeg2.c:
23903           vaapiencode: fix support for raw YUV sink buffers.
23904           Allow vaapiencode plug-in elements to encode from raw YUV buffers.
23905           The most efficient way to do so is to let the vaapiencode elements
23906           allocate a buffer pool, and subsequently buffers from it. This means
23907           that upstream elements are expected to honour downstream pools.
23908           If upstream elements insist on providing their own allocated buffers
23909           to the vaapiencode elements, then it possibly would be more efficient
23910           to insert a vaapipostproc element before the vaapiencode element.
23911           This is because vaapipostproc currently has better support than other
23912           elements for "foreign" raw YUV buffers.
23913
23914 2013-11-26 15:12:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23915
23916         * gst/vaapi/gstvaapiencode.c:
23917           vaapiencode: fix support for GStreamer 1.2.
23918
23919 2013-11-07 17:42:21 +0800  Wind Yuan <feng.yuan@intel.com>
23920
23921         * gst/vaapi/gstvaapiencode.c:
23922         * gst/vaapi/gstvaapiencode_h264.c:
23923         * gst/vaapi/gstvaapiencode_mpeg2.c:
23924           vaapiencode: initial port to GStreamer 1.2.
23925           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23926
23927 2013-11-20 16:21:32 +0800  XuGuangxin <guangxin.xu@intel.com>
23928
23929         * gst/vaapi/Makefile.am:
23930         * gst/vaapi/gstvaapi.c:
23931         * gst/vaapi/gstvaapiencode_mpeg2.c:
23932         * gst/vaapi/gstvaapiencode_mpeg2.h:
23933           plugins: add mpeg2 encoder element.
23934           Add GstVaapiEncodeMPEG2 element object. The actual plug-in element
23935           is called "vaapiencode_mpeg2".
23936           Valid properties:
23937           - rate-control: rate control mode (default: cqp - constant QP)
23938           - bitrate: desired bitrate in kbps (default: auto-calculated)
23939           - key-period: maximal distance between two key frames (default: 30)
23940           - max-bframes: number of B-frames between I and P (default: 2)
23941           - quantizer: constant quantizer (default: 8)
23942           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23943
23944 2013-07-29 16:02:56 +0800  Wind Yuan <feng.yuan@intel.com>
23945
23946         * gst/vaapi/Makefile.am:
23947         * gst/vaapi/gstvaapi.c:
23948         * gst/vaapi/gstvaapiencode_h264.c:
23949         * gst/vaapi/gstvaapiencode_h264.h:
23950           plugins: add h264 encoder element.
23951           Add GstVaapiEncodeH264 element object. The actual plug-in element
23952           is called "vaapiencode_h264".
23953           Valid properties:
23954           - rate-control: rate control mode (default: none)
23955           - bitrate: desired bitrate in kbps (default: auto-calculated)
23956           - key-period: maximal distance between two key frames (default: 30)
23957           - num-slices: number of slices per frame (default: 1)
23958           - max-bframes: number of B-frames between I and P (default: 0)
23959           - min-qp: minimal quantizer (default: 1)
23960           - init-qp: initial quantizer (default: 26)
23961           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23962
23963 2013-07-29 13:44:48 +0800  Wind Yuan <feng.yuan@intel.com>
23964
23965         * gst/vaapi/Makefile.am:
23966         * gst/vaapi/gstvaapiencode.c:
23967         * gst/vaapi/gstvaapiencode.h:
23968           plugins: add base encoder element.
23969           vaapiencode element is based on GstVideoEncoder APIs.
23970           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23971
23972 2013-11-20 16:20:15 +0800  XuGuangxin <guangxin.xu@intel.com>
23973
23974         * gst-libs/gst/vaapi/Makefile.am:
23975         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.c:
23976         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2.h:
23977         * gst-libs/gst/vaapi/gstvaapiencoder_mpeg2_priv.h:
23978           encoder: add mpeg2 encoder.
23979           Add initial support for MPEG-2 encoding. I/P/B frames are supported.
23980           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23981
23982 2013-07-29 15:46:11 +0800  Wind Yuan <feng.yuan@intel.com>
23983
23984         * gst-libs/gst/vaapi/Makefile.am:
23985         * gst-libs/gst/vaapi/gstvaapiencoder_h264.c:
23986         * gst-libs/gst/vaapi/gstvaapiencoder_h264.h:
23987         * gst-libs/gst/vaapi/gstvaapiencoder_h264_priv.h:
23988           encoder: add h264 encoder.
23989           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
23990
23991 2013-07-29 13:34:06 +0800  Wind Yuan <feng.yuan@intel.com>
23992
23993         * configure.ac:
23994         * gst-libs/gst/vaapi/Makefile.am:
23995         * gst-libs/gst/vaapi/gstvaapiencoder.c:
23996         * gst-libs/gst/vaapi/gstvaapiencoder.h:
23997         * gst-libs/gst/vaapi/gstvaapiencoder_objects.c:
23998         * gst-libs/gst/vaapi/gstvaapiencoder_objects.h:
23999         * gst-libs/gst/vaapi/gstvaapiencoder_priv.h:
24000           Add initial infrastructure for video encoding.
24001           Add initial API for video encoding: only basic interfaces and small
24002           encoder objects are implemented so far.
24003           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24004
24005 2013-07-29 15:41:23 +0800  Wind Yuan <feng.yuan@intel.com>
24006
24007         * configure.ac:
24008         * gst-libs/gst/Makefile.am:
24009         * gst-libs/gst/base/Makefile.am:
24010         * gst-libs/gst/base/gstbitwriter.c:
24011         * gst-libs/gst/base/gstbitwriter.h:
24012         * gst-libs/gst/vaapi/Makefile.am:
24013           libs: add generic bitstream writer.
24014           GstBitWriter provides a bit writer that can write any number of bits
24015           to a pre-allocated memory buffer. Helper functions are also provided
24016           to write any number of bits from 8, 16, 32 and 64 bit variables.
24017           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24018
24019 2013-07-12 22:07:59 +0800  Wind Yuan <feng.yuan@intel.com>
24020
24021         * gst-libs/gst/vaapi/gstvaapicontext.c:
24022         * gst-libs/gst/vaapi/gstvaapicontext.h:
24023           libs: add support for rate-control to GstVaapiContext.
24024           Extend GstVaapiContextInfo structure to hold the desired rate control
24025           mode for encoding purposes. For decoding purposes, this field is not
24026           used and it is initialized to GST_VAAPI_RATECONTROL_NONE.
24027           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24028
24029 2013-07-12 21:33:32 +0800  Wind Yuan <feng.yuan@intel.com>
24030
24031         * gst-libs/gst/vaapi/gstvaapitypes.h:
24032         * gst-libs/gst/vaapi/gstvaapiutils.c:
24033         * gst-libs/gst/vaapi/gstvaapiutils.h:
24034         * gst-libs/gst/vaapi/gstvaapivalue.c:
24035         * gst-libs/gst/vaapi/gstvaapivalue.h:
24036           libs: add rate-control attributes.
24037           Add GstVaapiRateControl types and GType values in view to supporting
24038           rate controls for encoding. This is meant to be used for instance in
24039           GstVaapiContext.
24040           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24041
24042 2013-11-22 11:56:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24043
24044         * configure.ac:
24045           Bump version for development.
24046
24047 2013-11-22 11:28:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24048
24049         * gst/vaapi/Makefile.am:
24050           build: fix for Wayland headers not in standard include dirs.
24051           Fix build when Wayland headers don't live in plain system include dirs
24052           like /usr/include but rather in /usr/include/wayland for instance.
24053           Original patch written by Dominique Leuenberger <dimstar@opensuse.org>
24054           https://bugzilla.gnome.org/show_bug.cgi?id=712282
24055
24056 2013-11-14 10:58:37 +0000  Ross Burton <ross.burton@intel.com>
24057
24058         * gst-libs/gst/vaapi/Makefile.am:
24059           build: link libgstvaapi-wayland against videoutils.
24060           This library is using symbols that don't exist in GStreamer 0.10 so
24061           it needs to link to built-in implementation (libgstvaapi-videoutils).
24062           https://bugzilla.gnome.org/show_bug.cgi?id=712282
24063           Signed-off-by: Ross Burton <ross.burton@intel.com>
24064           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24065
24066 2013-11-22 11:15:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24067
24068         * gst-libs/gst/vaapi/gstvaapifilter.c:
24069         * gst/vaapi/gstvaapipostproc.c:
24070           vaapostproc: fix memory leaks.
24071           Destroy VPP output surface pool on exit. Also avoid a possible crash
24072           in double-free situation caused by insufficiently reference counted
24073           array of formats returned during initialization.
24074
24075 2013-11-22 10:19:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24076
24077         * gst/vaapi/gstvaapipostproc.c:
24078         * gst/vaapi/gstvaapipostproc.h:
24079           vaapipostproc: fix and optimize advanced deinterlacing mode.
24080           Fix advanced deinterlacing modes with VPP to track only up to 2 past
24081           reference buffers. This used to be 3 past reference buffers but this
24082           doesn't fit with the existing decode pipeline that only has 4 extra
24083           scratch surfaces.
24084           Also optimize references tracking to be only enabled when needed, i.e.
24085           when advanced deinterlacing mode is used. This means that we don't
24086           need to track past references for basic bob or weave deinterlacing.
24087
24088 2013-11-22 10:04:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24089
24090         * gst/vaapi/gstvaapipostproc.c:
24091           vaapipostproc: fix "mixed" mode deinterlacing.
24092           In "mixed" interlaced streams, the buffer contains additional flags that
24093           specify whether the frame contained herein is interlaced or not. This means
24094           that we can alternatively get progressive or interlaced frames. Make sure
24095           to disable deinterlacing at the VPP level when the source buffer is no longer
24096           interlaced.
24097
24098 2013-11-22 09:49:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24099
24100         * gst/vaapi/gstvaapipostproc.c:
24101           vaapipostproc: fix memory leaks with advanced deinterlacing.
24102           Fix memory leaks with advanced deinterlacing, i.e. when we keep track
24103           of past buffers. Completely reset the deinterlace state, thus destroying
24104           any buffer currently held, on _start(), _stop() and _destroy().
24105
24106 2013-11-22 06:59:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24107
24108         * README:
24109           README: updates.
24110           - GStreamer 1.2 APIs are supported ;
24111           - Video Processing (VA/VPP) features.
24112
24113 2013-11-22 06:45:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24114
24115         * README:
24116           README: update for GStreamer >= 1.0.x and VPP features.
24117
24118 2013-11-22 06:37:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24119
24120         * gst-libs/gst/vaapi/glibcompat.h:
24121         * gst-libs/gst/vaapi/gstvaapicontext.h:
24122         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24123         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24124         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24125         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24126         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24127         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24128         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24129         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24130         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24131         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24132         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24133         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24134         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24135         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24136         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24137         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24138         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24139         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24140         * gst-libs/gst/vaapi/gstvaapiimage.c:
24141         * gst-libs/gst/vaapi/gstvaapiimage.h:
24142         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24143         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24144         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24145         * gst-libs/gst/vaapi/gstvaapiobject.c:
24146         * gst-libs/gst/vaapi/gstvaapiobject.h:
24147         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24148         * gst-libs/gst/vaapi/gstvaapiprofile.c:
24149         * gst-libs/gst/vaapi/gstvaapisurface.h:
24150         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24151         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24152         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24153         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24154         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24155         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24156         * gst-libs/gst/vaapi/gstvaapitexture.c:
24157         * gst-libs/gst/vaapi/gstvaapitexture.h:
24158         * gst-libs/gst/vaapi/gstvaapitypes.h:
24159         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24160         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24161         * gst-libs/gst/vaapi/gstvaapivalue.c:
24162         * gst-libs/gst/vaapi/gstvaapivalue.h:
24163         * gst-libs/gst/vaapi/gstvaapivideopool.c:
24164         * gst-libs/gst/vaapi/gstvaapivideopool.h:
24165         * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24166         * gst-libs/gst/vaapi/gstvaapiwindow.c:
24167         * gst-libs/gst/vaapi/gstvaapiwindow.h:
24168         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24169         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24170         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24171         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24172         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24173         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24174         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24175         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24176         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24177         * gst/vaapi/gstvaapi.c:
24178         * gst/vaapi/gstvaapidecode.h:
24179         * gst/vaapi/gstvaapidownload.h:
24180         * gst/vaapi/gstvaapipluginutil.c:
24181         * gst/vaapi/gstvaapipluginutil.h:
24182         * gst/vaapi/gstvaapipostproc.h:
24183         * gst/vaapi/gstvaapisink.h:
24184         * gst/vaapi/gstvaapivideoconverter_glx.h:
24185         * tests/image.c:
24186         * tests/image.h:
24187         * tests/output.h:
24188         * tests/test-display.c:
24189         * tests/test-jpeg.c:
24190         * tests/test-jpeg.h:
24191         * tests/test-mpeg4.c:
24192         * tests/test-mpeg4.h:
24193         * tests/test-surfaces.c:
24194         * tests/test-windows.c:
24195           legal: update copyright notice dates.
24196
24197 2013-11-22 05:57:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24198
24199         * gst-libs/gst/vaapi/glibcompat.h:
24200         * gst-libs/gst/vaapi/gstcompat.h:
24201         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
24202         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
24203         * gst-libs/gst/vaapi/gstvaapicompat.h:
24204         * gst-libs/gst/vaapi/gstvaapicontext.c:
24205         * gst-libs/gst/vaapi/gstvaapicontext.h:
24206         * gst-libs/gst/vaapi/gstvaapidebug.h:
24207         * gst-libs/gst/vaapi/gstvaapidecoder.c:
24208         * gst-libs/gst/vaapi/gstvaapidecoder.h:
24209         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
24210         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
24211         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
24212         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
24213         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24214         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
24215         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
24216         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
24217         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
24218         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
24219         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24220         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24221         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24222         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
24223         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
24224         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
24225         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
24226         * gst-libs/gst/vaapi/gstvaapidisplay.c:
24227         * gst-libs/gst/vaapi/gstvaapidisplay.h:
24228         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
24229         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
24230         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
24231         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
24232         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
24233         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
24234         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
24235         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
24236         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
24237         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
24238         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
24239         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
24240         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
24241         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
24242         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
24243         * gst-libs/gst/vaapi/gstvaapifilter.c:
24244         * gst-libs/gst/vaapi/gstvaapifilter.h:
24245         * gst-libs/gst/vaapi/gstvaapiimage.c:
24246         * gst-libs/gst/vaapi/gstvaapiimage.h:
24247         * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
24248         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
24249         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
24250         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
24251         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
24252         * gst-libs/gst/vaapi/gstvaapiobject.c:
24253         * gst-libs/gst/vaapi/gstvaapiobject.h:
24254         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
24255         * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
24256         * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
24257         * gst-libs/gst/vaapi/gstvaapipixmap.c:
24258         * gst-libs/gst/vaapi/gstvaapipixmap.h:
24259         * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
24260         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
24261         * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
24262         * gst-libs/gst/vaapi/gstvaapiprofile.c:
24263         * gst-libs/gst/vaapi/gstvaapiprofile.h:
24264         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
24265         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
24266         * gst-libs/gst/vaapi/gstvaapisurface.c:
24267         * gst-libs/gst/vaapi/gstvaapisurface.h:
24268         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
24269         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
24270         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
24271         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24272         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
24273         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
24274         * gst-libs/gst/vaapi/gstvaapitexture.c:
24275         * gst-libs/gst/vaapi/gstvaapitexture.h:
24276         * gst-libs/gst/vaapi/gstvaapitypes.h:
24277         * gst-libs/gst/vaapi/gstvaapiutils.c:
24278         * gst-libs/gst/vaapi/gstvaapiutils.h:
24279         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
24280         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
24281         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
24282         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
24283         * gst-libs/gst/vaapi/gstvaapivalue.c:
24284         * gst-libs/gst/vaapi/gstvaapivalue.h:
24285         * gst-libs/gst/vaapi/gstvaapivideopool.c:
24286         * gst-libs/gst/vaapi/gstvaapivideopool.h:
24287         * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24288         * gst-libs/gst/vaapi/gstvaapiwindow.c:
24289         * gst-libs/gst/vaapi/gstvaapiwindow.h:
24290         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
24291         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
24292         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
24293         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
24294         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
24295         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
24296         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
24297         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
24298         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
24299         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
24300         * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
24301         * gst-libs/gst/vaapi/sysdeps.h:
24302         * gst-libs/gst/vaapi/video-format.c:
24303         * gst-libs/gst/vaapi/video-format.h:
24304         * gst/vaapi/gstvaapi.c:
24305         * gst/vaapi/gstvaapidecode.c:
24306         * gst/vaapi/gstvaapidecode.h:
24307         * gst/vaapi/gstvaapidownload.c:
24308         * gst/vaapi/gstvaapidownload.h:
24309         * gst/vaapi/gstvaapipluginutil.c:
24310         * gst/vaapi/gstvaapipluginutil.h:
24311         * gst/vaapi/gstvaapipostproc.c:
24312         * gst/vaapi/gstvaapipostproc.h:
24313         * gst/vaapi/gstvaapisink.c:
24314         * gst/vaapi/gstvaapisink.h:
24315         * gst/vaapi/gstvaapiupload.c:
24316         * gst/vaapi/gstvaapiupload.h:
24317         * gst/vaapi/gstvaapiuploader.c:
24318         * gst/vaapi/gstvaapiuploader.h:
24319         * gst/vaapi/gstvaapivideobuffer.c:
24320         * gst/vaapi/gstvaapivideobuffer.h:
24321         * gst/vaapi/gstvaapivideobufferpool.c:
24322         * gst/vaapi/gstvaapivideobufferpool.h:
24323         * gst/vaapi/gstvaapivideocontext.c:
24324         * gst/vaapi/gstvaapivideocontext.h:
24325         * gst/vaapi/gstvaapivideoconverter_glx.c:
24326         * gst/vaapi/gstvaapivideoconverter_glx.h:
24327         * gst/vaapi/gstvaapivideoconverter_x11.c:
24328         * gst/vaapi/gstvaapivideoconverter_x11.h:
24329         * gst/vaapi/gstvaapivideomemory.c:
24330         * gst/vaapi/gstvaapivideomemory.h:
24331         * gst/vaapi/gstvaapivideometa.c:
24332         * gst/vaapi/gstvaapivideometa.h:
24333         * gst/vaapi/gstvaapivideometa_texture.c:
24334         * gst/vaapi/gstvaapivideometa_texture.h:
24335         * tests/codec.c:
24336         * tests/codec.h:
24337         * tests/decoder.c:
24338         * tests/decoder.h:
24339         * tests/image.c:
24340         * tests/image.h:
24341         * tests/output.c:
24342         * tests/output.h:
24343         * tests/simple-decoder.c:
24344         * tests/test-decode.c:
24345         * tests/test-decode.h:
24346         * tests/test-display.c:
24347         * tests/test-filter.c:
24348         * tests/test-h264.c:
24349         * tests/test-h264.h:
24350         * tests/test-jpeg.c:
24351         * tests/test-jpeg.h:
24352         * tests/test-mpeg2.c:
24353         * tests/test-mpeg2.h:
24354         * tests/test-mpeg4.c:
24355         * tests/test-mpeg4.h:
24356         * tests/test-surfaces.c:
24357         * tests/test-textures.c:
24358         * tests/test-vc1.c:
24359         * tests/test-vc1.h:
24360         * tests/test-windows.c:
24361           legal: add per-file authorship information.
24362           Credit original authors on a per-file basis as we cannot expect people
24363           to know all country-specific rules, or bother browsing through the git
24364           history.
24365
24366 2013-11-21 23:52:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24367
24368         * NEWS:
24369         * configure.ac:
24370           0.5.7.
24371
24372 2013-11-21 23:51:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24373
24374         * NEWS:
24375           NEWS: updates.
24376
24377 2013-11-21 23:17:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24378
24379         * gst-libs/gst/vaapi/gstvaapidecoder.h:
24380           decoder: don't include obsolete headers.
24381           The <gst/vaapi/gstvaapicontext.h> header was removed from the public
24382           set of APIs. So, don't make public headers (gstvaapidecoder.h) depend
24383           on private files.
24384
24385 2013-11-18 16:20:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24386
24387         * gst/vaapi/Makefile.am:
24388         * gst/vaapi/gstvaapi.c:
24389         * gst/vaapi/gstvaapipostproc.c:
24390           vaapipostproc: add initial support for GStreamer 1.2.
24391           Port vaapipostproc element to GStreamer 1.2. Support is quite minimal
24392           right now so that to cope with auto-plugging issues/regressions. e.g.
24393           this happens when the correct set of expected caps are being exposed.
24394           This means that, currently, the proposed caps are not fully accurate.
24395
24396 2013-11-01 10:22:17 +0800  Halley Zhao <halley.zhao@intel.com>
24397
24398         * gst/vaapi/gstvaapipostproc.c:
24399         * gst/vaapi/gstvaapipostproc.h:
24400           vaapipostproc: add support for denoise and sharpen filters.
24401           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24402
24403 2013-11-21 19:52:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24404
24405         * gst/vaapi/gstvaapipostproc.c:
24406         * gst/vaapi/gstvaapipostproc.h:
24407           vaapipostproc: add support for advanced deinterlacing.
24408           Add initial support for advanced deinterlacing. The history buffer
24409           size is arbitrarily set to 3 references for now.
24410
24411 2013-11-21 22:32:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24412
24413         * gst/vaapi/gstvaapipostproc.c:
24414           vaapipostproc: fix deinterlacing with VPP.
24415           Fix basic deinterlacing flags provided to gst_vaapi_set_deinterlacing()
24416           for the first field. Render flags were supplied instead of the actual
24417           deinterlacing flags (deint_flags).
24418
24419 2013-11-21 15:08:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24420
24421         * gst/vaapi/gstvaapipostproc.c:
24422           vaapipostproc: fix transform caps.
24423           Fix GstBaseTransform::transform_caps() implementation to always return
24424           the complete set of allowed sink pad caps (unfixated) even if the src
24425           pad caps we are getting are fixated. Rationale: there are just so many
24426           possible combinations, and it was wrong to provide a unique set anyway.
24427           As a side effect, this greatly simplifies the ability to derive src pad
24428           caps from fixated sink pad caps.
24429
24430 2013-11-01 10:31:13 +0800  Halley Zhao <halley.zhao@intel.com>
24431
24432         * docs/reference/libs/libs-sections.txt:
24433         * gst-libs/gst/vaapi/gstvaapifilter.c:
24434         * gst-libs/gst/vaapi/gstvaapifilter.h:
24435           filter: add helper to specify references for deinterlacing.
24436           Add gst_vaapi_fitler_set_deinterlacing_references() API to submit the
24437           list of surfaces used for forward or backward reference in advanced
24438           deinterlacing mode, e.g. Motion-Adaptive, Motion-Compensated.
24439           The list of surfaces used as deinterlacing references shall be live
24440           until the next call to gst_vaapi_filter_process().
24441           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24442
24443 2013-11-21 18:44:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24444
24445         * gst-libs/gst/vaapi/gstvaapifilter.c:
24446         * gst-libs/gst/vaapi/gstvaapifilter.h:
24447         * gst-libs/gst/vaapi/gstvaapiutils.c:
24448         * gst/vaapi/gstvaapipostproc.c:
24449         * tests/test-filter.c:
24450           filter: fix semantics of deinterlacing flags.
24451           Fix deinterlacing flags to make more sense. The TFF (top-field-first)
24452           flag is meant to specify the organization of reference frames used in
24453           advanced deinterlacing modes. Introduce the more explicit flag TOPFIELD
24454           to specify that the top-field of the supplied input surface is to be
24455           used for deinterlacing. Conversely, if not set, this means that the
24456           bottom field of the supplied input surface will be used instead.
24457
24458 2013-11-21 17:20:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24459
24460         * docs/reference/libs/libs-sections.txt:
24461         * gst-libs/gst/vaapi/gstvaapifilter.c:
24462         * gst-libs/gst/vaapi/gstvaapifilter.h:
24463           filter: add helpers to check for supported/active operation.
24464           Add a couple of helper functions:
24465           - gst_vaapi_filter_has_operation(): checks whether the VA driver
24466           advertises support for the supplied operation ;
24467           - gst_vaapi_filter_use_operation(): checks whether the supplied
24468           operation was already enabled to its non-default value.
24469
24470 2013-11-20 15:10:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24471
24472         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24473           libs: fix GstVaapiSurfaceProxy destroy notify call site.
24474           The user-defined destroy notify function is meant to be called only when
24475           the surface proxy was fully released, i.e. once it actually released the
24476           VA surface back to the underlying pool.
24477
24478 2013-08-29 13:44:22 +0800  XuGuangxin <guangxin.xu@intel.com>
24479
24480         * gst-libs/gst/vaapi/gstvaapivideopool.c:
24481         * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
24482           libs: make GstVaapiVideoPool thread-safe.
24483           https://bugzilla.gnome.org/show_bug.cgi?id=707108
24484           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24485
24486 2013-08-29 14:04:06 +0800  XuGuangxin <guangxin.xu@intel.com>
24487
24488         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24489         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
24490           libs: robustify decoder objects and surface proxy initialization.
24491           Fix GstVaapiPicture, GstVaapiSlice and GstVaapiSurfaceProxy initialization
24492           sequences to have the expected default values set beforehand in case of an
24493           error raising up further during creation. i.e. make it possible to cleanly
24494           destroy those partially initialized objects.
24495           https://bugzilla.gnome.org/show_bug.cgi?id=707108
24496           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24497
24498 2013-11-21 11:01:41 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24499
24500         * gst/vaapi/gstvaapidecode.c:
24501           vaapidecode: fix decoder flush.
24502           There are situations where gst_video_decoder_flush() is called, and
24503           this subsequently produces a gst_video_decoder_reset() that kills the
24504           currently active GstVideoCodecFrame. This means that it no longer
24505           exists by the time we reach GstVideoDecoder::finish() callback, thus
24506           possibly resulting in a crash if we assumed spare data was still
24507           available for decode (current_frame_size > 0).
24508           Try to honour GstVideoDecoder::reset() behaviour from GStreamer 1.0
24509           that means a flush, thus performing the actual operations there like
24510           calling gst_video_decoder_have_frame() if pending data is available.
24511
24512 2013-11-20 19:21:05 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24513
24514         * gst/vaapi/gstvaapidecode.c:
24515         * gst/vaapi/gstvaapidecode.h:
24516           vaapidecode: fix dead-locks with decoder task.
24517           Review all interactions between the main video decoder stream thread
24518           and the decode task to derive a correct sequence of operations for
24519           decoding. Also avoid extra atomic operations that become implicit under
24520           the GstVideoDecoder stream lock.
24521
24522 2013-08-29 14:12:10 +0800  XuGuangxin <guangxin.xu@intel.com>
24523
24524         * gst/vaapi/gstvaapidecode.c:
24525           vaapidecode: fix hard reset for seek cases.
24526           Fix hard reset for seek cases by flushing the GstVaapiDecoder queue
24527           and completely purge any decoded output frame that may come out from
24528           it. At this stage, the GstVaapiDecoder shall be in a complete clean
24529           state to start decoding over new buffers.
24530           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24531
24532 2013-08-29 14:12:10 +0800  XuGuangxin <guangxin.xu@intel.com>
24533
24534         * gst/vaapi/gstvaapidecode.c:
24535         * gst/vaapi/gstvaapidecode.h:
24536           vaapidecode: drop decode timeout, always wait for a free surface.
24537           vaapidecode used to wait up to one second past the expected time of
24538           presentation for the last decoded frame. This is not realistic in
24539           practice when it comes to video pause/resume. Changed behaviour to
24540           unconditionnally wait for a free VA surface prior to continuing the
24541           decoding. The decode task will continue pushing the output frames to
24542           the downstream element while also reporting errors at the same time
24543           to the main thread.
24544           https://bugzilla.gnome.org/show_bug.cgi?id=707108
24545           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24546
24547 2013-11-20 10:56:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24548
24549         * gst/vaapi/gstvaapidecode.c:
24550           vaapidecode: fix srcpad caps for GStreamer 1.2.
24551           The srcpad caps exposed for GStreamer 1.2 were missing any useful info
24552           like framerate, pixel-aspect-ratio, interlace-mode et al. Not to mention
24553           that it relied on possibly un-initialized data. Fix srcpad caps to be
24554           initialized from a sanitized copy of GstVideoDecoder output state caps.
24555           Note: the correct way to expose the srcpad caps triggers an additional
24556           issue in core GStreamer auto-plugging capabilities as the correct caps
24557           to be exposed should be format=ENCODED with memory:VASurface caps feature
24558           at the minimum. In some situations, we could determine the underlying
24559           VA surface format, but this is not always possible. e.g. cases where it
24560           is not allowed to expose the underlying VA surface data, or when the
24561           VA driver implementation cannot actually provide such information.
24562
24563 2013-11-20 10:45:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24564
24565         * gst/vaapi/gstvaapidecode.c:
24566         * gst/vaapi/gstvaapisink.c:
24567           plugins: streamline VA formats exposed in caps to a realistic set.
24568           Currently, the decoder only supports YUV 4:2:0 output. So, expose the
24569           output formats for GStreamer 1.2 in caps to a realistic subset. This
24570           means NV12, I420 or YV12 but also ENCODED if we cannot determine the
24571           underlying VA surface format, or if it is actually not allowed to get
24572           access to the surface contents.
24573
24574 2013-11-20 10:37:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24575
24576         * gst/vaapi/gstvaapidecode.c:
24577         * gst/vaapi/gstvaapisink.c:
24578           plugins: expose the expected format for GstVideoGLTextureUploadMeta.
24579           Fix vaapidecode srcpad caps to only expose RGBA video format for the
24580           meta:GstVideoGLTextureUploadMeta feature. That's only what is supported
24581           so far. Besides, drop this meta from the vaapisink sinkpad caps since
24582           we really don't support that for rendering.
24583           https://bugzilla.gnome.org/show_bug.cgi?id=711828
24584
24585 2013-11-18 18:25:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24586
24587         * configure.ac:
24588           configure: automatically detect GStreamer API version.
24589           Automatically detect GStreamer API version. The --with-gstreamer-api
24590           configure option now defaults to "autodetect" and configure then tries
24591           to derive the GStreamer API version from the highest version based on
24592           what pkg-config --modversion would report.
24593           https://bugzilla.gnome.org/show_bug.cgi?id=711657
24594
24595 2013-11-01 13:43:11 +0800  Wind Yuan <feng.yuan@intel.com>
24596
24597         * gst/vaapi/gstvaapipostproc.c:
24598           vaapipostproc: fix support for raw YUV data upload on GStreamer 1.0.
24599           Fix raw YUV data uploaded as in the following pipeline:
24600           $ gst-launch-1.0 filesrc video.yuv ! videoparse ! vaapipostproc ! vaapisink
24601           The main reason why it failed was that the videoparse element simply
24602           allocates GstBuffer with raw data chunk'ed off the sink pad without
24603           any prior knowledge of the actual frame info. i.e. it basically just
24604           calls gst_adapter_take_buffer().
24605           We could avoid the extra copy performed in vaapipostproc if the videoparse
24606           element was aware of the downstream pool and bothers copying line by
24607           line, for each plane. This means that, for a single frame per buffer,
24608           the optimizatin will be to allocate the video buffer downstream, map
24609           it, and copy each line that is coming through until we need to fills
24610           in the successive planes.
24611           Still, optimized raw YUV uploads already worked with the following:
24612           $ gst-launch-1.0 videotestsrc ! vaapipostproc ! vaapisink
24613           https://bugzilla.gnome.org/show_bug.cgi?id=711250
24614           [clean-ups, fixed error cases to unmap and unref outbuf]
24615           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24616
24617 2013-11-16 07:02:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24618
24619         * gst/vaapi/gstvaapipostproc.c:
24620           vaapipostproc: try to downgrade deinterlace-method when needed.
24621           If the currently selected deinterlacing method is not supported by the
24622           underlying hardware, then try to downgrade the method to a supported one.
24623           At the minimum, basic bob-deinterlacing shall always be supported.
24624
24625 2013-11-15 19:04:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24626
24627         * gst/vaapi/gstvaapipostproc.c:
24628           vaapipostproc: add initial support for deinterlacing with VPP.
24629           Allow basic bob-deinterlacing to work when VPP is enabled. Currently,
24630           this only covers bob-deinterlacing when the output pixel format is
24631           explicitly set.
24632
24633 2013-11-15 17:14:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24634
24635         * gst/vaapi/gstvaapipostproc.c:
24636           vaapipostproc: fix build on 64-bit platforms with GStreamer 0.10.
24637           The size argument for GstBaseTransform::transform_size() hook is a
24638           guint in GStreamer 0.10 APIs but a gsize in GStreamer >= 1.0.X APIs.
24639
24640 2013-10-18 18:08:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24641
24642         * gst/vaapi/gstvaapipostproc.c:
24643         * gst/vaapi/gstvaapipostproc.h:
24644           vaapipostproc: add initial support for scaling.
24645           Add initial support for basic scaling with size specified through the
24646           "width" and "height" properties. If either user-provided dimension is
24647           zero and "force-aspect-ratio" is set to true (the default), then the
24648           other dimension is scaled to preserve the aspect ratio.
24649
24650 2013-10-18 18:08:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24651
24652         * gst/vaapi/gstvaapipostproc.c:
24653         * gst/vaapi/gstvaapipostproc.h:
24654           vaapipostproc: add initial support for color conversion.
24655           If VPP is available, we always try to implicitly convert the source
24656           buffer to the "native" surface format for the underlying accelerator.
24657           This means that no optimization is performed yet to propagate raw YUV
24658           buffers to the downstream element as is, if VPP is available. i.e. it
24659           will always cause a color conversion.
24660
24661 2013-10-16 11:23:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24662
24663         * gst/vaapi/gstvaapipostproc.c:
24664           vaapipostproc: fix bug when user disabled deinterlacing.
24665           Fix pipeline error / hang when the user disabled deinterlacing through
24666           the deinterlace-mode=disabled property setting.
24667
24668 2013-10-16 11:20:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24669
24670         * gst/vaapi/gstvaapipostproc.c:
24671         * gst/vaapi/gstvaapipostproc.h:
24672           vaapipostproc: factor out operations to be applied into flags.
24673           Even if we only support deinterlacing for now, use flags to specify
24674           which filters are to be applied to each frame we receive in transform().
24675           This is preparatory work for integrating new filters.
24676
24677 2013-10-04 15:37:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24678
24679         * gst/vaapi/gstvaapipostproc.c:
24680         * gst/vaapi/gstvaapipostproc.h:
24681           vaapipostproc: add support for raw YUV video source buffers.
24682           Allow video processing from raw YUV buffers coming from the sink pad,
24683           while still producing a VA surface for the downstream elements.
24684
24685 2013-10-04 16:00:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24686
24687         * gst/vaapi/gstvaapipluginutil.c:
24688         * gst/vaapi/gstvaapipluginutil.h:
24689         * gst/vaapi/gstvaapipostproc.c:
24690           vaapipostproc: add support for "mixed" interlace mode.
24691           Add support for "mixed" interlace-mode, whereby the video frame buffer
24692           shall be deinterlaced only if its flags mention that's actually an
24693           interlaced frame buffer.
24694
24695 2013-10-03 19:04:07 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24696
24697         * gst-libs/gst/vaapi/gstcompat.h:
24698         * gst/vaapi/gstvaapipostproc.c:
24699         * gst/vaapi/gstvaapipostproc.h:
24700         * gst/vaapi/gstvaapivideobuffer.c:
24701         * gst/vaapi/gstvaapivideobuffer.h:
24702           vaapipostproc: rework plug-in element.
24703           Rewrite the vaapipostproc plug-in element so that it derives from
24704           GstBaseTransform, thus simplifying the caps negotiation process.
24705
24706 2013-10-09 17:25:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24707
24708         * gst/vaapi/gstvaapivideobufferpool.c:
24709         * gst/vaapi/gstvaapivideomemory.c:
24710         * gst/vaapi/gstvaapivideomemory.h:
24711           plugins: fix and optimize check for buffer pool allocator params.
24712           Reset the buffer pool allocator only if the config caps changed in a
24713           sensible way: format or resolution change. i.e. don't bother with
24714           other caps like colorimetry et al. as this doesn't affect the way to
24715           allocate VA surfaces or images.
24716
24717 2013-10-09 10:33:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24718
24719         * gst/vaapi/gstvaapivideomemory.c:
24720           plugins: enable memory maps for read & write with direct-rendering.
24721           Enable read and write mappings only if direct-rendering is supported.
24722           Otherwise, this means that we may need to download data from the VA
24723           surface first for correctness, even if the VA surface doesn't need to
24724           be read at all. i.e. sometimes, READWRITE mappings are meant for
24725           surfaces that are written to first, and read afterwards for further
24726           processing.
24727           https://bugzilla.gnome.org/show_bug.cgi?id=704078
24728
24729 2013-10-09 10:06:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24730
24731         * gst/vaapi/gstvaapivideomemory.c:
24732           plugins: fix check for direct-rendering support.
24733           Fix check for direct-rendering if the creation of VA surfaces with
24734           an explicit pixel format is not support, e.g. VA-API < 0.34.0, and
24735           that we tried to allocate a VA surface based on the corresponding
24736           chroma type. i.e. in that particular case, we have to make sure that
24737           the derived image has actually the expected format.
24738
24739 2013-10-09 09:47:18 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24740
24741         * gst/vaapi/gstvaapivideobufferpool.c:
24742         * gst/vaapi/gstvaapivideomemory.c:
24743         * gst/vaapi/gstvaapivideomemory.h:
24744           plugins: fix buffer pool reset_buffer() to reset memory resources.
24745           Fix GstVaapiVideoBufferPool::reset_buffer() to reset the underlying
24746           memory resources, and more particularly the VA surface proxy. Most
24747           importantly, the GstVaapiVideoMeta is retained. Cached surface in
24748           memory are released, thus triggering a new allocation the next time
24749           we need to map the buffer.
24750
24751 2013-10-09 09:33:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24752
24753         * gst/vaapi/gstvaapivideomemory.c:
24754         * gst/vaapi/gstvaapivideomemory.h:
24755           plugins: fix GstVaapiVideoMemory to allocate VA surface proxies.
24756           Make sure GstVaapiVideoMemory allocates VA surface proxies from a
24757           pool stored in the parent VA memory allocator.
24758           This fixes the following scenario:
24759           - VA video buffer 1 is allocated from a buffer pool
24760           - Another video buffer is created, and inherits info from buffer 1
24761           - Buffer 1 is released, thus pushing it back to the buffer pool
24762           - New buffer alloc request comes it, this yields buffer 1 back
24763           - At this stage, buffers 1 and 2 still share the same underlying VA
24764           surface, but buffer 2 was already submitted downstream for further
24765           processing, thus conflicting with additional processing we were
24766           about to perform on buffer 1.
24767           Maybe the core GstBufferPool implementation should have been fixed
24768           instead to actually make sure that the returned GstBuffer memory we
24769           found from the pool is writable?
24770
24771 2013-10-04 19:34:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24772
24773         * gst/vaapi/gstvaapiuploader.c:
24774           plugins: create a proxy for GstVaapiUploader allocated buffers.
24775           Always make sure to allocate a VA surface proxy for GstVaapiUploader
24776           allocated buffers, i.e. make gst_vaapi_uploader_get_buffer() allocate
24777           a proxy surface.
24778           This fixes cases where we want to retain the underlying surface longer,
24779           instead of releasing it back to the surface pool right away.
24780
24781 2013-10-04 19:30:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24782
24783         * gst/vaapi/gstvaapidecode.c:
24784         * gst/vaapi/gstvaapipluginutil.c:
24785         * gst/vaapi/gstvaapipluginutil.h:
24786         * gst/vaapi/gstvaapipostproc.c:
24787           plugins: add helper function to disable deinterlacing in caps.
24788           Add gst_caps_set_interlaced() helper function that would reset the
24789           interlace-mode field to "progressive" for GStreamer >= 1.0, or the
24790           interlaced field to "false" for GStreamer 0.10.
24791
24792 2013-10-01 18:26:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24793
24794         * gst-libs/gst/vaapi/gstvaapifilter.c:
24795           filter: fix memory leak of VPP operations.
24796           Fix ensure_operations() to release the VPP operations array if non
24797           NULL, prior to returning to the caller. The former function was also
24798           renamed to a more meaningful get_operations() since the caller owns
24799           the returned array that needs to be released.
24800
24801 2013-09-04 13:53:25 +0800  Zhao Halley <halley.zhao@intel.com>
24802
24803         * gst-libs/gst/vaapi/gstvaapifilter.c:
24804           filter: fix first-time operation lookup.
24805           Fix first-time operation lookup through find_operation() if the set
24806           of supported operations was not initially determined through the
24807           gst_vaapi_filter_get_operations() helper function.
24808           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24809
24810 2013-09-04 13:53:25 +0800  Zhao Halley <halley.zhao@intel.com>
24811
24812         * gst-libs/gst/vaapi/gstvaapifilter.c:
24813           filter: fix colorbalance related subtypes.
24814           Fix intiialization of GstVaapiFilterOpData for colorbalance related
24815           operations. In particular, fill in the va_subtype field accordingly.
24816           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24817
24818 2013-09-30 17:08:12 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24819
24820         * gst-libs/gst/vaapi/gstvaapifilter.c:
24821           filter: fix VA-API 0.34.0 symbol guards.
24822           VASurfaceAttrib and VAProcFilterParameterBufferType are symbols
24823           that need to be guarded for libva 0.34 and 0.33, respectively.
24824           https://bugzilla.gnome.org/show_bug.cgi?id=709102
24825           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24826
24827 2013-10-01 17:57:11 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24828
24829         * gst/vaapi/gstvaapidecode.c:
24830         * gst/vaapi/gstvaapipluginutil.c:
24831         * gst/vaapi/gstvaapisink.c:
24832           plugins: hanle the context query in any pad.
24833           Also this patch simplifies the code, since now the query is common for the
24834           decoder and the sink.
24835           https://bugzilla.gnome.org/show_bug.cgi?id=709200
24836
24837 2013-10-01 12:09:44 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24838
24839         * gst/vaapi/gstvaapivideocontext.c:
24840           plugins: query upstream element for a GstContext.
24841           Fix gst_vaapi_video_context_prepare() to also query upstream elements
24842           for a valid GstContext. Improve comments regarding the steps used to
24843           lookup or build that context, thus conforming to the GstContext API
24844           recommendations.
24845           https://bugzilla.gnome.org/show_bug.cgi?id=709112
24846           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24847
24848 2013-09-26 15:21:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24849
24850         * configure.ac:
24851         * debian.upstream/control.in:
24852           Fix detection and packaging of GStreamer 1.2.x builds.
24853           The GStreamer 1.2.x packages sticked to the naming convention for 1.0.x
24854           packages, i.e. -1.0 suffix. However, for gstreamer-vaapi packaging
24855           purposes, update the versioning to -1.2 suffix instead.
24856
24857 2013-07-15 13:41:00 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24858
24859         * gst/vaapi/Makefile.am:
24860         * gst/vaapi/gstvaapidecode.c:
24861         * gst/vaapi/gstvaapidecode.h:
24862         * gst/vaapi/gstvaapisink.c:
24863         * gst/vaapi/gstvaapivideometa_texture.c:
24864         * gst/vaapi/gstvaapivideometa_texture.h:
24865           plugins: add support for GstVideoGLTextureUploadMeta.
24866           If the allocation meta GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE is
24867           requested, and more specifically under a GLX configuration, then add
24868           the GstVideoGLTextureUploadMeta to the output buffer.
24869           https://bugzilla.gnome.org/show_bug.cgi?id=703236
24870           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24871
24872 2013-07-04 11:03:52 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
24873
24874         * gst/vaapi/gstvaapidecode.c:
24875         * gst/vaapi/gstvaapisink.c:
24876         * gst/vaapi/gstvaapivideomemory.h:
24877           plugins: add support for GstCaps features.
24878           Move VA video buffer memory from "video/x-surface,type=vaapi" format,
24879           as expressed in caps, to the more standard use of caps features. i.e.
24880           add "memory:VASurface" feature attribute to the associated caps.
24881           https://bugzilla.gnome.org/show_bug.cgi?id=703271
24882           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24883
24884 2013-07-12 12:58:57 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24885
24886         * gst/vaapi/gstvaapidecode.c:
24887         * gst/vaapi/gstvaapisink.c:
24888           plugins: improve ::query() debugging messages.
24889           Fix gst_vaapidecode_query() to correctly display the query type name,
24890           instead of randomly displaying that we shared the underlying display.
24891           Also add debug info for the GstVaapiSink::query() handler, i.e. the
24892           supplied query type name actually.
24893           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24894
24895 2013-07-12 12:58:57 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24896
24897         * gst/vaapi/gstvaapidecode.c:
24898         * gst/vaapi/gstvaapisink.c:
24899           plugins: add support for GstContext API.
24900           Add support for the new GstContext API from GStreamer 1.2.x.
24901           - implement the GstElement::set_context() hook ;
24902           - reply to the `context' query from downstream elements.
24903           https://bugzilla.gnome.org/show_bug.cgi?id=703235
24904           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24905
24906 2013-05-22 12:07:52 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24907
24908         * gst/vaapi/Makefile.am:
24909         * gst/vaapi/gstvaapipluginutil.c:
24910         * gst/vaapi/gstvaapivideocontext.c:
24911         * gst/vaapi/gstvaapivideocontext.h:
24912           plugins: add compat layer for GstVideoContext.
24913           Add thin compatibility layer for the deprecated GstVideoContext API.
24914           For GStreamer API >= 1.2, this involves the following two functions:
24915           - gst_vaapi_video_context_prepare(): queries if a context is already
24916           set in the pipeline ;
24917           - gst_vaapi_video_context_propagate(): propagates the newly-created
24918           context to the rest of the pipeline.
24919           https://bugzilla.gnome.org/show_bug.cgi?id=703235
24920           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24921
24922 2013-05-21 12:42:39 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
24923
24924         * configure.ac:
24925         * gst/vaapi/Makefile.am:
24926         * gst/vaapi/gstvaapi.c:
24927         * gst/vaapi/gstvaapidecode.c:
24928         * gst/vaapi/gstvaapipluginutil.c:
24929         * gst/vaapi/gstvaapisink.c:
24930         * gst/vaapi/gstvaapivideobuffer.c:
24931           plugins: initial port to GStreamer 1.2.
24932           Port vaapidecode and vaapisink plugins to GStreamer API >= 1.2. This
24933           is rather minimalistic so that to test the basic functionality.
24934           Disable vaapipostproc plugin for now as further polishing is needed.
24935           Also disable GstVideoContext interface support since this API is now
24936           gone in 1.2.x. This is preparatory work for GstContext support.
24937           https://bugzilla.gnome.org/show_bug.cgi?id=703235
24938           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24939
24940 2013-09-24 16:21:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24941
24942         * tests/simple-decoder.c:
24943           tests: simple-decoder: fix for non-X11 backends.
24944           Don't try to create pixmaps if we have not requested that feature. This
24945           fixes execution for non-X11 backends, and most specifically DRM video
24946           output mode.
24947
24948 2013-09-24 16:22:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24949
24950         * ext/codecparsers:
24951           codecparsers: update to gst-vaapi-branch commit b33bd32.
24952           b33bd32 jpeg: fix and optimize scan for next marker code
24953
24954 2013-09-23 19:14:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24955
24956         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24957           jpeg: fix calculation of MCU count.
24958           Fix calculation of MCU count for image sizes that are not a multiple
24959           of 8 pixels in either dimension, but also for non-common sampling
24960           factors like 4:2:2 in non-interleaved mode.
24961
24962 2013-09-23 16:49:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24963
24964         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24965         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
24966         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
24967           jpeg: add support for multiscan images.
24968           Add support for images with multiple scans per frame. The Huffman table
24969           can be updated before SOS, and thus possibly requiring multiple uploads
24970           of Huffman tables to the VA driver. So, the latter must be able to cope
24971           with multiple VA buffers of type 'huffman-table' and with the correct
24972           sequential order.
24973
24974 2013-09-23 11:41:52 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24975
24976         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24977           jpeg: improve robustness when packets are missing.
24978           Improve robustness when some expected packets where not received yet
24979           or that were not correctly decoded. For example, don't try to decode
24980           a picture if there was no valid frame headers.
24981
24982 2013-09-20 16:46:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24983
24984         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24985           jpeg: minor clean-ups.
24986           Improve debugging and error messages. Rename a few variables to fit the
24987           existing naming conventions. Change some fatal asserts to non-fatal
24988           error codes.
24989
24990 2013-09-20 10:12:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
24991
24992         * gst-libs/gst/vaapi/gstvaapidecoder.c:
24993         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
24994         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
24995           jpeg: rework and optimize parser.
24996           Split the input buffer data into decoder units that represent a JPEG
24997           segment. Handle scan decoder unit specifically so that it can include
24998           both the scan header (SOS) but also any other ECS or RSTi segment.
24999           That way, we parse the input buffer stream only once at the gst-vaapi
25000           level instead of (i) in gst_vaapi_decoder_jpeg_parse() to split the
25001           stream into frames SOI .. EOI and (ii) in decode_buffer() to further
25002           determine segment boundaries and decode them.
25003           In practice, this is a +15 to +25% performance improvement.
25004
25005 2013-09-17 14:29:54 +0800  Junfeng Xu <jun.feng.xu@intel.com>
25006
25007         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25008           jpeg: handle comment segments.
25009           Fix decode_buffer() function to gracefully skip comment (COM) segments.
25010           This fixes decoding of streams generated by certain cameras, e.g. like
25011           the Logitech Pro C920.
25012           https://bugzilla.gnome.org/show_bug.cgi?id=708208
25013           Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25014
25015 2013-09-18 17:59:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25016
25017         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25018           jpeg: fix determination of image bounds.
25019           Look for the exact image bounds characterised by the <SOI> and <EOI>
25020           markers. Use the gst_jpeg_parse() codec parser utility function to
25021           optimize the lookup for the next marker segment.
25022           https://bugzilla.gnome.org/show_bug.cgi?id=707447
25023
25024 2013-09-10 15:46:09 +0800  Junfeng Xu <jun.feng.xu@intel.com>
25025
25026         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25027           jpeg: fix calculation of offset to next marker segment.
25028           Fix calculation of the offset to the next marker segment since the
25029           correction of the codecparser part to match the API specification.
25030           i.e. the GstJpegMarkerSegment.size field represents the size in bytes
25031           of the segment minus any marker prefix.
25032           https://bugzilla.gnome.org/show_bug.cgi?id=707447
25033           Signed-off-by: Junfeng Xu <jun.feng.xu@intel.com>
25034
25035 2013-09-20 18:30:18 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25036
25037         * ext/codecparsers:
25038           codecparsers: update to gst-vaapi-branch commit 23c7dde.
25039           23c7dde jpeg: fix calculation of segment size
25040
25041 2013-08-31 16:00:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25042
25043         * configure.ac:
25044           Bump version for development.
25045
25046 2013-08-31 15:47:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25047
25048         * NEWS:
25049         * configure.ac:
25050           0.5.6.
25051
25052 2013-08-31 15:46:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25053
25054         * NEWS:
25055           NEWS: updates.
25056
25057 2013-08-15 17:59:37 +0800  Wind Yuan <feng.yuan@intel.com>
25058
25059         * configure.ac:
25060         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
25061           configure: fix detection of VA/JPEG decoding API.
25062           Fix detection of VA/JPEG decoding API with non-standard libva packages.
25063           More precisely, some packages were shipping with a <va/va.h> header that
25064           did not include <va/va_dec_jpeg.h>.
25065           https://bugzilla.gnome.org/show_bug.cgi?id=706055
25066           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25067
25068 2013-04-18 19:49:42 +0800  Zhao Halley <halley.zhao@intel.com>
25069
25070         * gst/vaapi/gstvaapisink.c:
25071           vaapisink: ensure the uploader is setup for upstream allocated buffers.
25072           In GStreamer 0.10 builds, make sure that the GstVaapiUploader helper
25073           is setup in case upstream elements allocate buffers themselves without
25074           honouring our GstVaapiSink::bufer_alloc() hook.
25075           In particular, this fixes support for OGG video streams with WebKit.
25076           https://bugzilla.gnome.org/show_bug.cgi?id=703934
25077           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25078
25079 2013-08-29 19:07:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25080
25081         * gst/vaapi/gstvaapisink.c:
25082           vaapisink: simplify get_render_buffer() for GStreamer 0.10 builds.
25083           Implement and use gst_vaapisink_get_render_buffer() for GStreamer 0.10
25084           builds as well.
25085
25086 2013-08-29 18:34:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25087
25088         * gst/vaapi/gstvaapisink.c:
25089         * gst/vaapi/gstvaapisink.h:
25090           vaapisink: handle raw buffers not created from VA video buffer pool.
25091           Handle raw video buffers that were not created from a VA video buffer
25092           pool. Use the generic GstVideo API to copy buffers in GStreamer 1.0.x
25093           builds instead of the GstVaapiUploader.
25094           https://bugs.freedesktop.org/show_bug.cgi?id=55818
25095
25096 2013-08-29 19:33:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25097
25098         * gst/vaapi/gstvaapidecode.c:
25099           vaapidecode: remove extraneous size information from allowed caps.
25100           Fix _getcaps() implementation to not report codecs with size information
25101           filled in the returned caps. That's totally useless nowadays. Ideally,
25102           this is a hint to insert a video parser element, thus allowing future
25103           optimizations, but this is not a strict requirement for gstreamer-vaapi,
25104           which is able to parse the elementary bitstreams itself.
25105           https://bugzilla.gnome.org/show_bug.cgi?id=704734
25106
25107 2013-07-30 14:05:39 +0800  Guangxin.Xu <Guangxin.Xu@intel.com>
25108
25109         * gst/vaapi/gstvaapidecode.c:
25110         * gst/vaapi/gstvaapidecode.h:
25111           vaapidecode: submit the last frame from output adapter to decoder.
25112           If there is no frame delimiter at the end of the stream, e.g. no
25113           end-of-stream or end-of-sequence marker, and that the current frame
25114           was fully parsed correctly, then assume that last frame is complete
25115           and submit it to the decoder.
25116           https://bugzilla.gnome.org/show_bug.cgi?id=705123
25117           Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25118           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25119
25120 2013-08-29 11:55:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25121
25122         * gst/vaapi/gstvaapidecode.c:
25123         * gst/vaapi/gstvaapidecode.h:
25124           vaapidecode: push all decoded frames from within the task.
25125           Make sure to push all decoded frames from the task so that the unlying
25126           VA surfaces could all be rendered from the same thread.
25127
25128 2013-08-27 18:24:12 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25129
25130         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25131           wayland: render the raw surface if VPP failed.
25132           As a last resort, if video processing capabilities (VPP) are not available,
25133           or they did not produce anything conclusive enough, then try to fallback to
25134           the original rendering code path whereby the whole VA surface is rendered
25135           as is, no matter of video cropping or deinterlacing requests.
25136           Note: under those conditions, the visual outcome won't be correct but at
25137           least, something gets displayed instead of bailing out.
25138
25139 2013-08-27 18:20:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25140
25141         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25142           wayland: add supporting for video processing.
25143           Try to use VA/VPP processing capabilities to handle video cropping and
25144           additional rendering flags that may not be directly supported by the
25145           underlying hardware when exposing a suitable Wayland buffer for the
25146           supplied VA surface. e.g. deinterlacing, different color primaries than
25147           BT.601, etc.
25148
25149 2013-08-27 16:26:22 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25150
25151         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
25152           wayland: add new frame redraw infrastructure.
25153           Update the frame redraw infrastructure with a new FrameState stucture
25154           holds all the necessary information used to display the next pending
25155           surface.
25156           While we are at it, delay the sync operation down to when it is actually
25157           needed. That way, we keep performing additional tasks meanwhile.
25158
25159 2013-08-27 18:06:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25160
25161         * docs/reference/libs/libs-sections.txt:
25162         * gst-libs/gst/vaapi/gstvaapifilter.c:
25163         * gst-libs/gst/vaapi/gstvaapifilter.h:
25164           filter: allow specification of render target regions.
25165           Add support for rendering the source surface to a particular region within
25166           the supplied target surface. The default background color is black.
25167
25168 2013-08-26 17:14:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25169
25170         * gst/vaapi/gstvaapivideobuffer.c:
25171           decode: fix creation of GLX video buffers for GStreamer 0.10.
25172           Fix creation of GstVaapiVideoBuffer objects (i) to have that type for real;
25173           and (ii) to correctly extract the GstSurfaceConverter from the video buffer
25174           object meta.
25175           This fixes support for cluttersink with GStreamer 0.10 builds.
25176
25177 2013-08-26 16:15:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25178
25179         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25180           mpeg2: disable video cropping as picture_display_extension() is missing.
25181           Disable video cropping in MPEG-2 codec because it is partially implemented
25182           and actually because nobody implements it that way, and the standard spec
25183           does not specify the display process either anyway.
25184           Most notably, there are two possible use cases for sequence_display_extension()
25185           horizontal_display_size & vertical_display_size: (i) guesstimating the
25186           pixel-aspect-ratio, or (ii) implement some kind of span & scan process
25187           in conjunction with picture_display_extension() information.
25188           https://bugzilla.gnome.org/show_bug.cgi?id=704848
25189
25190 2013-08-16 16:58:58 +0100  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
25191
25192         * gst/vaapi/gstvaapisink.c:
25193         * gst/vaapi/gstvaapisink.h:
25194           vaapisink: allow scaling to ignore aspect ratio.
25195           Other GStreamer sinks, like xvimagesink, have a force-aspect-ratio property,
25196           which allows you to say that you don't want the sink to respect aspect
25197           ratio. Add the same property to vaapisink.
25198           http://lists.freedesktop.org/archives/libva/2012-September/001298.html
25199           Signed-off-by: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
25200
25201 2013-05-14 15:19:04 +0800  Wind Yuan <feng.yuan@intel.com>
25202
25203         * gst/vaapi/gstvaapisink.c:
25204           vaapisink: fix memory leak of GstVaapiUploader instance.
25205           Make sure gst_vaapisink_ensure_uploader() checks for the existence
25206           of a former GstVaapiUploader instance prior to forcibly creating a
25207           new one.
25208           https://bugzilla.gnome.org/show_bug.cgi?id=703980
25209
25210 2013-07-31 16:49:20 +0800  Guangxin.Xu <Guangxin.Xu@intel.com>
25211
25212         * gst/vaapi/gstvaapisink.c:
25213           vaapisink: fix get_caps() implementation for GStreamer 1.0.
25214           Fix GstBaseSink::get_caps() implementation for GStreamer 1.0.X builds
25215           by honouring the filter caps argument. More precisely, this fixes the
25216           following pipeline: gst-launch-1.0 videotestsrc ! vaapisink
25217           https://bugzilla.gnome.org/show_bug.cgi?id=705192
25218           Signed-off-by: Guangxin.Xu <Guangxin.Xu@intel.com>
25219           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25220
25221 2013-08-26 11:31:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25222
25223         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
25224           mpeg4: fix double definition of GstVaapiDecoderMpeg4Class.
25225           This fixes the following issue:
25226           CC     libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo
25227           gstvaapidecoder_mpeg4.c:113: error: redefinition of typedef
25228           'GstVaapiDecoderMpeg4Class'
25229           gstvaapidecoder_mpeg4.c:44: note: previous declaration of
25230           'GstVaapiDecoderMpeg4Class' was here
25231           make[5]: *** [libgstvaapi_0.10_la-gstvaapidecoder_mpeg4.lo] Error 1
25232           make[5]: Leaving directory
25233           `/builddir/build/BUILD/gstreamer-vaapi-0.5.5.1/gst-libs/gst/vaapi'
25234           https://bugzilla.gnome.org/show_bug.cgi?id=705148
25235
25236 2013-07-30 15:59:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25237
25238         * tests/test-filter.c:
25239           tests: filter: add support for deinterlacing.
25240           Add --deinterlace option to enable deinterlacing through explicit VA/VPP
25241           deinterlacing filter. However, if --deinterlace option is not set but the
25242           --deinterlace-flags option is set with "top-field-first", then the very
25243           basic bob deinterlacing filter is set through VA/VPP proc pipeline flags.
25244
25245 2013-07-17 17:29:41 +0800  Zhao Halley <halley.zhao@intel.com>
25246
25247         * tests/test-filter.c:
25248           tests: filter: add support for denoising and sharpening.
25249           Add --denoise option to enable noise reduction with the level specified
25250           as the option value (float). Likewise, add --sharpen option to enable
25251           sharpening.
25252           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25253
25254 2013-07-24 14:31:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25255
25256         * tests/test-filter.c:
25257           tests: filter: add support for frame cropping.
25258           Add support for frame cropping through the --crop-rect|-c argument.
25259           The format used is either <WIDTH> 'x' <HEIGHT>, with origin at (0,0) ;
25260           or full specification with '('? <X> ',' <Y> ')'? <WIDTH> 'x' <HEIGHT>.
25261
25262 2013-07-23 18:00:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25263
25264         * tests/test-filter.c:
25265           tests: filter: dump supported operations and formats.
25266
25267 2013-07-08 16:54:55 +0800  Zhao Halley <halley.zhao@intel.com>
25268
25269         * tests/Makefile.am:
25270         * tests/test-filter.c:
25271           tests: add initial test for video processing.
25272           Add minimal test case for video processing: scaling and color format
25273           conversion.
25274           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25275
25276 2013-07-29 09:23:50 +0800  Zhao Halley <halley.zhao@intel.com>
25277
25278         * docs/reference/libs/libs-sections.txt:
25279         * gst-libs/gst/vaapi/gstvaapifilter.c:
25280         * gst-libs/gst/vaapi/gstvaapifilter.h:
25281         * gst-libs/gst/vaapi/gstvaapiutils.c:
25282         * gst-libs/gst/vaapi/gstvaapiutils.h:
25283         * gst/vaapi/gstvaapipostproc.c:
25284         * gst/vaapi/gstvaapipostproc.h:
25285           filter: add initial support for deinterlacing.
25286           Add basic deinterlacing support, i.e. bob-deinterlacing whereby only
25287           the selected field from the input surface is kept for the target surface.
25288           Setting gst_vaapi_filter_set_deinterlacing() method argument to
25289           GST_VAAPI_DEINTERLACE_METHOD_NONE means to disable deinterlacing.
25290           Also move GstVaapiDeinterlaceMethod definition from vaapipostproc plug-in
25291           to libgstvaapi core library.
25292           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25293
25294 2013-07-17 17:40:41 +0800  Zhao Halley <halley.zhao@intel.com>
25295
25296         * docs/reference/libs/libs-sections.txt:
25297         * gst-libs/gst/vaapi/gstvaapifilter.c:
25298         * gst-libs/gst/vaapi/gstvaapifilter.h:
25299           filter: add support for color balance adjustment.
25300           Add ProcAmp (color balance) adjustments for hue, saturation, brightness
25301           and contrast. The respective range for each filter shall be the same as
25302           for the VA display attributes.
25303           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25304
25305 2013-07-17 17:37:16 +0800  Zhao Halley <halley.zhao@intel.com>
25306
25307         * docs/reference/libs/libs-sections.txt:
25308         * gst-libs/gst/vaapi/gstvaapifilter.c:
25309         * gst-libs/gst/vaapi/gstvaapifilter.h:
25310           filter: add support for sharpening.
25311           Sharpening is configured with a float value. The supported range is
25312           -1.0 .. 1.0 with 0.0 being the default, and that means no sharpening
25313           operation at all.
25314           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25315
25316 2013-07-17 17:29:41 +0800  Zhao Halley <halley.zhao@intel.com>
25317
25318         * docs/reference/libs/libs-sections.txt:
25319         * gst-libs/gst/vaapi/gstvaapifilter.c:
25320         * gst-libs/gst/vaapi/gstvaapifilter.h:
25321           filter: add support for denoising.
25322           Noise reduction is configured with a float value. The supported range
25323           is 0.0 .. 1.0 with 0.0 being the default, and that means no denoise
25324           operation at all.
25325           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25326
25327 2013-07-24 14:22:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25328
25329         * docs/reference/libs/libs-sections.txt:
25330         * gst-libs/gst/vaapi/gstvaapifilter.c:
25331         * gst-libs/gst/vaapi/gstvaapifilter.h:
25332           filter: add support for frame cropping.
25333           Frame cropping is defined with a GstVaapiRectangle value. The default
25334           behaviour is to treat the source surface as a whole
25335
25336 2013-07-25 13:55:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25337
25338         * gst-libs/gst/vaapi/gstvaapifilter.c:
25339           filter: add helper functions.
25340           Add helper functions to ensure an operation VA buffer is allocated to
25341           the right size; that filter caps get parsed and assigned to the right
25342           operation too; and that float parameters are correctly scaled to fit
25343           the reported range from the VA driver.
25344
25345 2013-07-23 15:52:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25346
25347         * configure.ac:
25348         * docs/reference/libs/libs-docs.xml.in:
25349         * docs/reference/libs/libs-sections.txt:
25350         * gst-libs/gst/vaapi/Makefile.am:
25351         * gst-libs/gst/vaapi/gstvaapidisplay.c:
25352         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
25353         * gst-libs/gst/vaapi/gstvaapifilter.c:
25354         * gst-libs/gst/vaapi/gstvaapifilter.h:
25355           Add initial infrastructure for video processing.
25356           Add initial API for video processing: only scaling and color format
25357           conversion operations are supported.
25358
25359 2013-07-24 11:53:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25360
25361         * gst-libs/gst/vaapi/video-format.c:
25362         * gst-libs/gst/vaapi/video-format.h:
25363           libs: add gst_vaapi_video_format_from_string() helper.
25364           Add gst_vaapi_video_format_from_string() helper function to convert from
25365           a video format string representation to a suitable GstVideoFormat. This
25366           is just an alias to gst_video_format_from_string() for GStreamer 1.0.x
25367           builds, and a proper iteration over all GstVideoFormat string representations
25368           otherwise for earlier GStreamer 0.10.x builds.
25369
25370 2013-07-24 11:37:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25371
25372         * gst-libs/gst/vaapi/video-format.c:
25373         * gst-libs/gst/vaapi/video-format.h:
25374           libs: add gst_vaapi_video_format_from_va_fourcc() helper.
25375           Add gst_vaapi_video_format_from_va_fourcc() helper that converts from a
25376           VA fourcc value to a suitable GstVideoFormat.
25377
25378 2013-07-24 11:41:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25379
25380         * gst-libs/gst/vaapi/gstvaapivalue.c:
25381         * gst-libs/gst/vaapi/gstvaapivalue.h:
25382           libs: add type definitions for GstVaapiPoint and GstVaapiRectangle.
25383           Add helper functions to describe GstVaapiPoint and GstVaapiRectangle
25384           structures as a standard GType. This could be useful to have them
25385           described as a GValue later on.
25386
25387 2013-07-26 13:57:35 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25388
25389         * docs/reference/libs/libs-docs.xml.in:
25390         * docs/reference/libs/libs-sections.txt:
25391         * gst-libs/gst/vaapi/Makefile.am:
25392         * gst-libs/gst/vaapi/gstvaapicontext.h:
25393         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
25394           libs: drop some public APIs.
25395           Don't expose GstVaapiContext APIs and make them totally private to
25396           libgstvaapi core library. That API would also tend to disappear in
25397           a future revision. Likewise, don't expose GstVaapiDisplayCache API
25398           but keep symbols visible so that the various render backends could
25399           share a common display cache implementation in libgstvaapi.
25400           Try to clean-up the documentation from any stale entry too.
25401
25402 2013-08-23 18:35:42 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25403
25404         * tests/image.c:
25405         * tests/image.h:
25406           tests: image: allow creation of images with interleaved patterns.
25407           Add image_generate_full() function to create interleaved color rectangles.
25408           If flags is zero, the whole frame is generated with a unique pattern. If
25409           flags is non-zero, then each field is handled individually.
25410
25411 2013-08-23 16:25:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25412
25413         * tests/image.c:
25414           tests: image: fix conversion from RGB to YUV.
25415           Fix RGB to YUV conversion to preserve full data range.
25416
25417 2013-07-26 13:12:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25418
25419         * tests/image.c:
25420           tests: image: try to upload images through vaDeriveImage() too.
25421           On some platforms, vaPutImage() would fail even if it does not involve
25422           color format conversion or scaling, whereas copying raw pixels through
25423           vaDeriveImage() could work instead.
25424
25425 2013-07-26 10:05:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25426
25427         * tests/image.c:
25428           tests: image: add support for packed YUV formats.
25429           Add support for packed YUV 4:2:2 formats, i.e. YUY2 and UYVY.
25430
25431 2013-07-25 18:10:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25432
25433         * tests/image.c:
25434           tests: image: fix generation of I420/YV12 images.
25435           U/V planes were reversed, thus producing invalid images.
25436
25437 2013-07-24 13:55:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25438
25439         * tests/image.c:
25440           tests: image: fix string representation for GstVideoFormat.
25441
25442 2013-07-26 12:57:19 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25443
25444         * docs/reference/libs/libs-sections.txt:
25445         * gst-libs/gst/vaapi/Makefile.am:
25446         * gst-libs/gst/vaapi/gstvaapiimage.c:
25447         * gst-libs/gst/vaapi/gstvaapiimage.h:
25448         * gst-libs/gst/vaapi/gstvaapiimage_priv.h:
25449         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25450         * gst-libs/gst/vaapi/gstvaapisurface.c:
25451           image: clean image API up.
25452           Don't expose functions that reference a GstVaapiImageRaw, those are
25453           meant to be internal only for implementing subpictures sync. Also add
25454           a few private definitions to avoid functions calls for retrieving
25455           image size and format information.
25456
25457 2013-07-26 11:43:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25458
25459         * docs/reference/libs/libs-sections.txt:
25460         * gst-libs/gst/vaapi/gstvaapiimage.c:
25461         * gst-libs/gst/vaapi/gstvaapiimage.h:
25462           image: add gst_vaapi_image_copy() helper.
25463           Add gst_vaapi_image_copy() helper function to copy images of same format
25464           and size.
25465
25466 2013-07-22 14:53:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25467
25468         * gst/vaapi/gstvaapivideoconverter_x11.c:
25469           plugins: handle video cropping in X11 pixmap converter.
25470           Use GstVideoCropMeta in GStreamer 1.0 or any other render rectangle
25471           we could decode from the stream.
25472
25473 2013-07-22 11:58:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25474
25475         * gst/vaapi/Makefile.am:
25476         * gst/vaapi/gstvaapivideobuffer.c:
25477         * gst/vaapi/gstvaapivideoconverter_glx.c:
25478         * gst/vaapi/gstvaapivideoconverter_x11.c:
25479         * gst/vaapi/gstvaapivideoconverter_x11.h:
25480           plugins: add support for "x11-pixmap" video converter type.
25481           Install a new video converter that supports X11 pixmap targets for X11
25482           backends only, or make the GLX converter creation function chain up to
25483           the X11 converter whenever requested.
25484
25485 2013-07-22 09:36:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25486
25487         * tests/simple-decoder.c:
25488           tests: simple-decoder: add support for pixmap API.
25489           Add support for the new render-to-pixmap API. Avoid flickering on
25490           platforms supporting video overlay by keeping up to 2 intermediate
25491           pixmaps.
25492
25493 2013-07-22 09:12:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25494
25495         * tests/simple-decoder.c:
25496           tests: simple-decoder: add support for video cropping.
25497           Handle video cropping information attached to a VA surface proxy.
25498
25499 2013-07-22 09:03:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25500
25501         * tests/output.c:
25502         * tests/output.h:
25503         * tests/test-decode.c:
25504           tests: add support for render-to-pixmap.
25505           Add --pixmap option to test-decode so that to allow copies of VA
25506           surface to an intermediate pixmap and rendering from that pixmap.
25507           Only X11 backends are supported for now.
25508
25509 2013-07-22 09:00:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25510
25511         * configure.ac:
25512         * gst-libs/gst/vaapi/Makefile.am:
25513         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25514         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25515         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25516         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
25517           x11: implement pixmap rendering with RENDER extension.
25518           Use hardware accelerated XRenderComposite() function, from the RENDER
25519           extension, to blit a pixmap to screen. Besides, this can also support
25520           cropping and scaling.
25521
25522 2013-07-19 15:05:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25523
25524         * docs/reference/libs/libs-docs.xml.in:
25525         * docs/reference/libs/libs-sections.txt:
25526         * gst-libs/gst/vaapi/Makefile.am:
25527         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
25528         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
25529         * gst-libs/gst/vaapi/gstvaapipixmap_x11.c:
25530         * gst-libs/gst/vaapi/gstvaapipixmap_x11.h:
25531           x11: implement pixmap API.
25532           Implement the new render-to-pixmap API. The only supported pixmap format
25533           that will work is xRGB, with native byte ordering. Others might work but
25534           they were not tested.
25535
25536 2013-07-22 10:10:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25537
25538         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
25539         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
25540         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
25541           x11: update x11_get_geometry() helper function with depth output.
25542           Allow x11_get_geometry() utility function to also return the depth
25543           assigned to the X drawable.
25544
25545 2013-07-22 10:00:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25546
25547         * docs/reference/libs/libs-docs.xml.in:
25548         * docs/reference/libs/libs-sections.txt:
25549         * gst-libs/gst/vaapi/Makefile.am:
25550         * gst-libs/gst/vaapi/gstvaapipixmap.c:
25551         * gst-libs/gst/vaapi/gstvaapipixmap.h:
25552         * gst-libs/gst/vaapi/gstvaapipixmap_priv.h:
25553         * gst-libs/gst/vaapi/gstvaapiwindow.c:
25554         * gst-libs/gst/vaapi/gstvaapiwindow.h:
25555         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
25556           Add initial Pixmap API.
25557           Add API to transfer VA urfaces to native pixmaps. Also add an API to
25558           render a native pixmap, for completeness. In general, rendering to
25559           pixmap would only be useful to certain VA drivers and use cases on
25560           X11 display servers. e.g. GLX_EXT_texture_from_pixmap (TFP) handled
25561           in an upper layer.
25562
25563 2013-07-22 15:15:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25564
25565         * docs/reference/libs/libs-sections.txt:
25566         * gst-libs/gst/vaapi/gstvaapiimage.c:
25567         * gst-libs/gst/vaapi/gstvaapisurface.c:
25568         * gst-libs/gst/vaapi/video-format.c:
25569         * gst-libs/gst/vaapi/video-format.h:
25570           libs: add and expose gst_vaapi_video_format_to_string() helper.
25571           This is just a wrapper over gst_video_format_to_string() for older
25572           GStreamer 0.10 builds.
25573
25574 2013-07-18 02:54:54 -0300  Emilio López <emilio@elopez.com.ar>
25575
25576         * gst/vaapi/gstvaapipluginutil.c:
25577           plugins: fix display type comparison in gst_vaapi_create_display().
25578           After the code got moved to create the gst_vaapi_create_display() helper,
25579           this comparison was not updated to dereference the newly-created
25580           pointer, so the code was comparing the pointer itself to the type, and
25581           therefore failing to retrieve the VA display.
25582           This fixes the following error (and gets gst-vaapi decoding again):
25583           ERROR vaapidecode gstvaapidecode.c:807:gst_vaapidecode_ensure_allowed_caps: failed to retrieve VA display
25584           https://bugzilla.gnome.org/show_bug.cgi?id=704410
25585           Signed-off-by: Emilio López <emilio@elopez.com.ar>
25586
25587 2013-07-17 11:07:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25588
25589         * configure.ac:
25590           Bump version for development.
25591
25592 2013-07-15 17:49:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25593
25594         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25595           mpeg2: don't output dummy pictures.
25596           Mark dummy pictures as output already so that we don't try to submit
25597           them to the upper layer since this is purely internal / temporary
25598           picture for helping the decoder.
25599
25600 2013-07-15 17:43:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25601
25602         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25603           decoder: dispose GstVideoCodecFrame earlier.
25604           Once the picture was output, it is no longer necessary to keep an extra
25605           reference to the underlying GstVideoCodecFrame. So, we can release it
25606           earlier, and maybe subsequently release the associate surface proxy
25607           earlier.
25608
25609 2013-07-15 14:47:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25610
25611         * NEWS:
25612         * configure.ac:
25613           0.5.5.
25614
25615 2013-07-15 14:42:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25616
25617         * docs/reference/libs/libs-sections.txt:
25618         * gst-libs/gst/vaapi/Makefile.am:
25619         * gst-libs/gst/vaapi/gstvaapidisplay.c:
25620         * gst-libs/gst/vaapi/gstvaapiimage.c:
25621         * gst-libs/gst/vaapi/gstvaapisurface.c:
25622         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25623         * gst-libs/gst/vaapi/video-format.c:
25624         * gst-libs/gst/vaapi/video-format.h:
25625         * gst/vaapi/gstvaapidownload.c:
25626         * gst/vaapi/gstvaapiuploader.c:
25627         * tests/image.c:
25628         * tests/test-display.c:
25629           Fix new video format API.
25630           Fix new internal video format API, based on GstVideoFormat, to not
25631           clobber with system symbols. So replace the gst_video_format_* prefix
25632           with gst_vaapi_video_format_ prefix, even if the format type remains
25633           GstVideoFormat.
25634
25635 2013-07-15 14:05:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25636
25637         * configure.ac:
25638           Bump library major version.
25639           Bump the library major version due to API/ABI changes that occurred in
25640           the imaging API. In particular, GstVaapiImageFormat type was replaced
25641           with the standard GstVideoFormat type. All dependent APIs were updated
25642           to match this change.
25643
25644 2013-07-15 13:44:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25645
25646         * NEWS:
25647           NEWS: updates.
25648
25649 2013-06-11 15:11:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25650
25651         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
25652         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
25653           decoder: fix memory leak when processing interlaced pictures.
25654           Fix memory leak when processing interlaced pictures and that occurs
25655           because the first field, represented as a GstVideoCodecFrame, never
25656           gets released. i.e. when the picture is completed, this is generally
25657           the case when the second field is successfully decoded, we need to
25658           propagate the GstVideoCodecFrame of the first field to the original
25659           GstVideoDecoder so that it could reclaim memory.
25660           Otherwise, we keep accumulating the first fields into GstVideoDecoder
25661           private frames list until the end-of-stream is reached. The frames
25662           are eventually released there, but too late, i.e. too much memory
25663           may have been consumed.
25664           https://bugzilla.gnome.org/show_bug.cgi?id=701257
25665
25666 2013-07-15 11:58:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25667
25668         * gst/vaapi/gstvaapipluginutil.c:
25669           plugins: simlpify gst_vaapi_create_display() helper.
25670           Simplify gst_vaapi_create_display() helper as gst_vaapi_display_XXX_new()
25671           performs the necessary validation checks for the underlying VA display
25672           prior to returning to the caller. So, if an error occurred, then NULL is
25673           really returned in that case.
25674
25675 2013-05-24 05:04:01 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
25676
25677         * gst/vaapi/gstvaapipluginutil.c:
25678           plugins: add gst_vaapi_create_display() helper.
25679           https://bugzilla.gnome.org/show_bug.cgi?id=703235
25680           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25681
25682 2013-07-12 17:47:07 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25683
25684         * gst/vaapi/gstvaapivideobufferpool.c:
25685           plugins: don't reallocate pool allocator for the same caps.
25686           If the video buffer pool config doesn't have new caps, then it's not
25687           necessary to reinstantiate the allocator. That could be a costly
25688           operation as we could do some extra heavy checking in there.
25689
25690 2013-07-12 17:14:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25691
25692         * gst/vaapi/gstvaapivideomemory.c:
25693           plugins: fix ref counting of GstVaapiVideoMemory allocator.
25694           Fix reference counting issue whereby gst_memory_init() does not hold
25695           an extra reference to the GstAllocator. So, there could be situations
25696           where the last instance of GstVaapiVideoAllocator gets released before
25697           a dangling GstVaapiVideoMemory object, thus possibly leading to a crash.
25698
25699 2013-07-12 15:15:07 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25700
25701         * gst/vaapi/gstvaapiuploader.c:
25702           vaapiupload: use implicit color conversion to NV12.
25703           Always perform conversion of sources buffers to NV12 since this is
25704           the way we tested for this capability in ensure_allowed_caps(). This
25705           also saves memory bandwidth for further rendering. However, this may
25706           not preserve quality since the YUV buffers are down-sampled to 4:2:0.
25707
25708 2013-07-12 15:01:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25709
25710         * gst-libs/gst/vaapi/gstvaapivideopool.c:
25711           pool: fix deallocation of video pools.
25712           The queue of free objects to used was deallocated with g_queue_free_full().
25713           However, this convenience function shall only be used if the original queue
25714           was allocated with g_queue_new(). This caused memory corruption, eventually
25715           leading to a crash.
25716           The correct solution is to pair the g_queue_init() with the corresponding
25717           g_queue_clear(), while iterating over all free objects to deallocate them.
25718
25719 2013-03-13 17:44:52 +0800  Wind Yuan <feng.yuan@intel.com>
25720
25721         * gst/vaapi/gstvaapidownload.c:
25722           vaapidownload: fix src caps format error.
25723           This fixes direct linking of vaapidownload element to xvimagesink with
25724           VA drivers supporting vaGetImage() from the native VA surface format to
25725           a different VA image format. i.e. color conversion during download.
25726           http://bugzilla.gnome.org/show_bug.cgi?id=703937
25727           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25728
25729 2013-07-11 18:26:37 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25730
25731         * gst/vaapi/gstvaapidownload.c:
25732           vaapidownload: fix debug string for image formats.
25733           The image is now expressed as a standard GstVideoFormat, which is not
25734           a FOURCC but rather a regular enum value.
25735           This is a regression introduced in commit 09397fa.
25736
25737 2013-04-24 10:39:03 +0800  Wind Yuan <feng.yuan@intel.com>
25738
25739         * gst-libs/gst/vaapi/gstvaapiimage.c:
25740           image: add support for raw YUY2/UYVY image copies.
25741           Implement raw image copies for YUY2 format. Add support for UYVY format
25742           too, with the same copy function as for YUY2. Even though components
25743           ordering differs, copying line strides is essentially the same.
25744           https://bugzilla.gnome.org/show_bug.cgi?id=703939
25745           https://bugzilla.gnome.org/show_bug.cgi?id=703940
25746           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25747
25748 2013-07-10 15:15:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25749
25750         * gst/vaapi/gstvaapiuploader.c:
25751           plugins: clean-up video uploader helper.
25752           Fix gst_vaapi_uploader_get_buffer() to not assign caps since they
25753           were already negotiated beforehand, and they are not used from the
25754           buffer in upstream elements.
25755           Clean-up gst_vaapi_uploader_ensure_caps() to use the new image caps
25756           represented as a GstVideoInfo.
25757
25758 2013-07-10 15:03:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25759
25760         * gst/vaapi/gstvaapiuploader.c:
25761           plugins: use GstVideoInfo in video uploader helper.
25762
25763 2013-07-10 10:34:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25764
25765         * gst/vaapi/gstvaapivideomemory.c:
25766           plugins: allow creation of VA surfaces with explicit pixel format.
25767           Adapt GstVaapiVideoMemory allocator to support creation of VA surfaces
25768           with an explicit pixel format. This allows for direct rendering to
25769           VA surface memory from a software decoder.
25770
25771 2013-07-10 14:20:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25772
25773         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25774           surface: fix surface pool creation with an explicit pixel format.
25775           Fix creation of surface pool objects to honour explicit pixel format
25776           specification. If this operation is not supported, then fallback to
25777           the older interface with chroma format.
25778
25779 2013-07-10 13:58:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25780
25781         * gst-libs/gst/vaapi/gstvaapisurface.c:
25782           surface: try to determine the underlying VA surface format.
25783           If a VA surface was allocated with the chroma-format interface, try to
25784           determine the underlying pixel format on gst_vaapi_surface_get_format(),
25785           or return GST_VIDEO_FORMAT_ENCODED if this is not a supported operation.
25786
25787 2013-07-09 19:08:37 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25788
25789         * docs/reference/libs/libs-sections.txt:
25790         * gst-libs/gst/vaapi/gstvaapisurface.c:
25791         * gst-libs/gst/vaapi/gstvaapisurface.h:
25792         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
25793           surface: allow creation with explicit pixel format.
25794           Make it possible to create VA surfaces with a specific pixel format.
25795           This is a new capability brought in by VA-API >= 0.34.0. If that
25796           capability is not built-in (e.g. using VA-API < 0.34.0), then
25797           gst_vaapi_surface_new_with_format() will return NULL.
25798
25799 2013-07-10 09:48:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25800
25801         * docs/reference/libs/libs-sections.txt:
25802         * gst-libs/gst/vaapi/video-format.c:
25803         * gst-libs/gst/vaapi/video-format.h:
25804           surface: add helper function to get chroma type from GstVideoFormat.
25805           Add gst_video_format_get_chroma_type() helper function to determine
25806           the GstVaapiChromaType from a standard GStreamer video format. It is
25807           possible to reconstruct that from GstVideoFormatInfo but it is much
25808           simpler (and faster?) to use the local GstVideoFormatMap table.
25809
25810 2013-07-09 19:13:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25811
25812         * gst-libs/gst/vaapi/gstvaapisurface.c:
25813         * gst-libs/gst/vaapi/gstvaapisurface.h:
25814         * gst-libs/gst/vaapi/gstvaapiutils.c:
25815         * gst-libs/gst/vaapi/gstvaapiutils.h:
25816           surface: add new chroma formats.
25817           Add new chroma formats available with VA-API >= 0.34.0. In particular,
25818           this includes "RGB" chroma formats, and more YUV subsampled formats.
25819           Also add a new from_GstVaapiChromaType() helper function to convert
25820           libgstvaapi chroma type to VA chroma format.
25821
25822 2013-07-10 13:32:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25823
25824         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25825           pool: fix image pool to check for the video format to use.
25826           Make gst_vaapi_image_pool_new() succeed, and thus returning a valid
25827           image pool object, only if the underlying VA display does support the
25828           requested VA image format.
25829
25830 2013-07-10 13:07:37 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25831
25832         * gst-libs/gst/vaapi/gstvaapicontext.c:
25833         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25834         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
25835         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
25836         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
25837         * gst-libs/gst/vaapi/gstvaapivideopool.h:
25838         * gst/vaapi/gstvaapidownload.c:
25839         * gst/vaapi/gstvaapiuploader.c:
25840         * tests/Makefile.am:
25841         * tests/test-surfaces.c:
25842           Use GstVideoInfo for video pools.
25843           Get rid of GstCaps to create surface/image pool, and use GstVideoInfo
25844           structures instead. Those are smaller, and allows for streamlining
25845           libgstvaapi more.
25846
25847 2013-07-09 18:03:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25848
25849         * gst-libs/gst/vaapi/gstvaapiimage.c:
25850         * gst-libs/gst/vaapi/video-format.c:
25851           Add more video formats.
25852           Add new video format mappings to VA image formats:
25853           - YUV: packed YUV (YUY2, UYVY), grayscale (Y800) ;
25854           - RGB: 32-bit RGB without alpha channel (XRGB, XBGR, RGBX, BGRX).
25855
25856 2013-07-10 15:52:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25857
25858         * gst-libs/gst/vaapi/gstvaapiimage.c:
25859           image: fix debug message with video format.
25860           Fix debug message string with image format expressed with GstVideoFormat
25861           instead of the obsolete format that turned out to be a fourcc.
25862           This is a regression from git commit e61c5fc.
25863
25864 2013-07-09 15:28:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25865
25866         * tests/image.c:
25867         * tests/image.h:
25868         * tests/test-display.c:
25869         * tests/test-textures.c:
25870         * tests/test-windows.c:
25871           tests: port to new video format API.
25872
25873 2013-07-09 15:44:35 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25874
25875         * gst/vaapi/gstvaapidownload.c:
25876         * gst/vaapi/gstvaapiuploader.c:
25877         * gst/vaapi/gstvaapivideomemory.c:
25878           plugins: port to new video format API.
25879
25880 2013-07-09 16:26:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25881
25882         * gst-libs/gst/vaapi/gstvaapiimage.c:
25883           libs: use GstVideoInfo wherever possible.
25884           In particular, use gst_video_info_from_caps() helper function in VA image
25885           for implementating gst_vaapi_image_get_buffer() [vaapidownload] and
25886           gst_vaapi_image_update_from_buffer() [subpictures] in GStreamer 0.10 builds.
25887
25888 2013-07-09 16:38:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25889
25890         * docs/reference/libs/libs-docs.xml.in:
25891         * docs/reference/libs/libs-sections.txt:
25892         * gst-libs/gst/vaapi/Makefile.am:
25893         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
25894         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
25895           libs: drop GstVaapiImageFormat helpers.
25896           Drop GstVaapiImageFormat helpers since everything was moved to the new
25897           GstVideoFormat based API. Don't bother with backwards compatibility and
25898           just bump the library major version afterwards.
25899
25900 2013-07-09 14:03:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25901
25902         * gst-libs/gst/vaapi/gstvaapidisplay.c:
25903         * gst-libs/gst/vaapi/gstvaapidisplay.h:
25904         * gst-libs/gst/vaapi/gstvaapiimage.c:
25905         * gst-libs/gst/vaapi/gstvaapiimage.h:
25906         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
25907         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
25908           libs: port to new video format API.
25909
25910 2013-07-09 15:29:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25911
25912         * docs/reference/libs/libs-docs.xml.in:
25913         * docs/reference/libs/libs-sections.txt:
25914         * gst-libs/gst/vaapi/Makefile.am:
25915         * gst-libs/gst/vaapi/video-format.c:
25916         * gst-libs/gst/vaapi/video-format.h:
25917           Add new video format API.
25918           Leverage GstVideoFormat utilities from core GStreamer to provide an
25919           adaptation layer to VA image formats.
25920
25921 2013-07-09 11:13:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25922
25923         * NEWS:
25924           NEWS: updates.
25925
25926 2013-07-08 18:32:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25927
25928         * gst/vaapi/gstvaapisink.c:
25929           vaapisink: fix creation of GLX texture.
25930           Fix creation of GLX texture, to not depend on the GstCaps video size that
25931           could be wrong, especially in presence of frame cropping. So, use the size
25932           from the source VA surfaces.
25933           An optimization could be to reduce the texture size to the actual visible
25934           size on screen. i.e. scale down the texture size to match the screen dimensions,
25935           while preserving the VA surface aspect ratio. However, some VA drivers don't
25936           honour that.
25937
25938 2013-02-18 16:28:27 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25939
25940         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
25941           mpeg2: add support for video cropping.
25942           If the stream has a sequence_display_extenion, then attach the
25943           display_horizontal/display_vertical dimension as the cropping
25944           rectangle width/height to the GstVaapiPicture.
25945           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25946
25947 2013-02-18 15:05:37 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25948
25949         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
25950           vc1: add support for video cropping.
25951           If the Advanced profile has display_extension fields, then set the display
25952           width/height dimension as cropping rectangle to the GstVaapiPicture.
25953           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25954
25955 2013-02-15 18:50:26 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25956
25957         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
25958           h264: add support for video cropping.
25959           If the encoded stream has the frame_cropping_flag set, then associate
25960           the cropping rectangle to GstVaapiPicture.
25961           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25962
25963 2013-07-08 17:01:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25964
25965         * tests/decoder.c:
25966         * tests/decoder.h:
25967         * tests/test-decode.c:
25968         * tests/test-subpicture.c:
25969           tests: add basic support for video cropping.
25970           Change generic decoder of sample I-frame to return a GstVaapiSurfaceProxy
25971           instead of a plain GstVaapiSurface. This means that we can now retrieve
25972           the frame cropping rectangle from the surface proxy, along with additional
25973           information if ever needed.
25974
25975 2013-07-08 14:50:42 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25976
25977         * gst/vaapi/gstvaapidecode.c:
25978         * gst/vaapi/gstvaapisink.c:
25979         * gst/vaapi/gstvaapivideometa.c:
25980           plugins: add support for video cropping.
25981           Add support for GstVideoCropMeta in GStreamer >= 1.0.x builds and gst-vaapi
25982           specific meta information to hold video cropping details. Make the sink
25983           support video cropping in X11 and GLX modes.
25984
25985 2013-02-15 18:24:24 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25986
25987         * gst/vaapi/gstvaapivideometa.c:
25988         * gst/vaapi/gstvaapivideometa.h:
25989           plugins: add helper functions to set the render rectangle.
25990           Some video clips may have a clipping region that needs to propogate to
25991           the renderer. These helper functions make it possible to attach that
25992           clipping region, as a GstVaapiRectangle, the the video meta associated
25993           with the buffer.
25994           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
25995           signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25996
25997 2013-07-08 14:47:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
25998
25999         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26000         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26001           surfaceproxy: allow for NULL cropping rectangle.
26002           Make it possible associate an empty cropping rectangle to the surface
26003           proxy, thus resetting any cropping rectangle that was previously set.
26004           This allows for returning plain NULL when no cropping rectangle was
26005           initially set up to the surface proxy, or if it was reset to defaults.
26006
26007 2013-07-08 11:41:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26008
26009         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26010           surfaceproxy: clean-up helper macros.
26011           Always use the GST_VAAPI_SURFACE_PROXY() helper macro to cast from a
26012           proxy macro argument to a GstVaapiSurfaceProxy pointer.
26013
26014 2013-07-08 11:43:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26015
26016         * gst-libs/gst/vaapi/gstvaapisurface.c:
26017         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
26018         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26019         * gst-libs/gst/vaapi/gstvaapiwindow.c:
26020           surface: add simple surface info accessors as helper macros.
26021           Add helper macros to retrieve the VA surface information like size
26022           (width, height) or chroma type. This is a micro-optimization to avoid
26023           useless function calls and NULL pointer re-checks in internal routines.
26024
26025 2013-02-15 18:42:12 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26026
26027         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26028         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
26029         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26030         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26031         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26032           decoder: add support for video cropping.
26033           Add gst_vaapi_picture_set_crop_rect() helper function to copy the video
26034           cropping information from raw bitstreams to each picture being decoded.
26035           Also add helper function to surface proxy to propagate that information
26036           outside of libgstvaapi. e.g. plug-in elements or standalone applications.
26037           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26038           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26039
26040 2013-07-08 17:30:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26041
26042         * ext/codecparsers:
26043           codecparsers: update to gst-vaapi-branch commit f90de0a.
26044           f90de0a h264: fix calculation of the frame cropping rectangle
26045           535515c h264: parse the cropping rectangle separately
26046
26047 2013-07-05 19:03:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26048
26049         * ext/codecparsers:
26050           codecparsers: update to gst-vaapi-branch commit 0f68a71.
26051           0f68a71 mpeg2: fix video packet header size checks
26052
26053 2013-06-07 20:08:43 +0800  Zhong Cong <congx.zhong@intel.com>
26054
26055         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26056           mpeg2: reset quantization matrices on new sequence headers.
26057           The MPEG-2 standard specifies (6.3.7) that all quantisation matrices
26058           shall be reset to their default values when a Sequence_Header() is
26059           decoded.
26060           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26061
26062 2013-07-05 15:49:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26063
26064         * configure.ac:
26065         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26066           mpeg2: cope with latest codecparser changes.
26067           Fix build with newer MPEG-2 codecparser where GstMpegVideoPacket are
26068           used in individual header parsers. Also use the new slice parsing API.
26069
26070 2013-07-05 17:51:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26071
26072         * ext/codecparsers:
26073           codecparsers: update to gst-vaapi-branch commit dddd182.
26074           dddd182 mpeg2: add slice header parsing API
26075           94e6228 mpeg2: add sequence scalable extension parsing API
26076           531134f mpeg2: add new API that takes GstMpegVideoPacket arguments
26077           4b135d3 h264: fix the return value type for the SEI palyload parsing methods
26078
26079 2013-06-27 12:25:44 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26080
26081         * gst/vaapi/gstvaapisink.c:
26082           vaapisink: expose the raw video formats in static caps template.
26083           Expose all raw video formats in the static caps template since the
26084           vaapisink is supporting raw data. We will get the exact set of formats
26085           supported by the driver dynamically through the _get_caps() routine.
26086           This also fixes an inconsistency wrt. GStreamer 0.10 builds.
26087           https://bugzilla.gnome.org/show_bug.cgi?id=702178
26088           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26089
26090 2013-06-27 13:53:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26091
26092         * gst/vaapi/gstvaapisink.c:
26093         * gst/vaapi/gstvaapisink.h:
26094           vaapisink: add "use-glx" property for OpenGL rendering.
26095           Now that VA/GLX capable buffers are generated by default on X11, thus
26096           depending on a VA/GLX display, we stil want to use vaPutSurface() for
26097           rendering since it is faster.
26098           Anyway, OpenGL rendering in vaapisink was only meant for testing and
26099           enabling "fancy" effects to play with. This has no real value. So,
26100           disable OpenGL rendering by default.
26101
26102 2013-06-06 05:36:03 -0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26103
26104         * gst/vaapi/gstvaapipluginutil.c:
26105           plugins: try to allocate a GLX display first over an X11 one.
26106           If the gstreamer-vaapi plug-in elements are built with GLX support, then
26107           try to allocate a GstVaapiDisplayGLX first before resorting to a VA/X11
26108           display next.
26109           https://bugzilla.gnome.org/show_bug.cgi?id=701742
26110
26111 2013-04-25 17:07:13 +0100  Lionel Landwerlin <llandwerlin@gmail.com>
26112
26113         * configure.ac:
26114           configure: use GST_PLUGIN_PATH_1_0 instead of GST_PLUGIN_PATH for Gst 1.0.
26115           jhbuild sets $GST_PLUGIN_PATH_1_0 which overrides $GST_PLUGIN_PATH.
26116           https://bugzilla.gnome.org/show_bug.cgi?id=698858
26117           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26118
26119 2013-04-27 15:15:49 +0800  Wind Yuan <feng.yuan@intel.com>
26120
26121         * gst-libs/gst/vaapi/gstvaapiimage.c:
26122           image: fix wrong check for rect bounds in copy_image().
26123
26124 2013-06-14 13:41:14 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26125
26126         * configure.ac:
26127           Bump version for development.
26128
26129 2013-06-14 11:47:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26130
26131         * NEWS:
26132         * configure.ac:
26133           0.5.4.
26134
26135 2013-06-14 11:43:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26136
26137         * NEWS:
26138           NEWS: updates.
26139
26140 2013-06-14 11:39:54 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26141
26142         * configure.ac:
26143         * gst-libs/gst/codecparsers/Makefile.am:
26144           configure: always build the MPEG-4 parser.
26145           Always build the MPEG-4 parser for now as there are also core fixes
26146           included in the parser that cannot be tested for with API checks.
26147
26148 2013-06-14 11:32:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26149
26150         * configure.ac:
26151           configure: add --enable-builtin-codecparsers [default="yes"] option.
26152           Add flag to have all codecparsers built-in, thus ensuring that the
26153           resulting binaries have all the necessary bug fixes and this is what
26154           the QA has been testing anyway.
26155           Of course, for a completely up-to-date Linux distribution, you could
26156           also opt for --disable-builtin-codecparsers and use the system ones.
26157           Though, some core fixes could be missing, and those cannot be tested
26158           for with API checks.
26159
26160 2013-06-14 11:14:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26161
26162         * ext/codecparsers:
26163           codecparsers: update to gst-vaapi-branch commit 843ce3e.
26164           843ce3e jpeg: fix default Huffman tables generation.
26165           8655187 mpeg2: fix the pixel-aspect-ratio calculation
26166           21099dc mpeg2: actually store video bitrate values
26167           dd02087 mpeg2: fix picture packet extension size check
26168           25948e9 mpeg2: increase min size for picture coding ext
26169           f1f5a40 ensure the debug category is properly initialized
26170
26171 2013-06-12 14:16:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26172
26173         * debian.upstream/Makefile.am:
26174           debian: fix list of generated files for .deb packaging.
26175
26176 2013-06-12 13:48:26 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26177
26178         * configure.ac:
26179         * debian.upstream/Makefile.am:
26180         * debian.upstream/control.in:
26181           debian: fix libgstvaapi -dev package name.
26182           Fix libgstvaapi -dev package name so that to allow installation of both
26183           GStreamer 0.10 and 1.0.x based packages.
26184
26185 2013-06-05 17:42:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26186
26187         * NEWS:
26188           NEWS: updates.
26189
26190 2013-05-31 11:09:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26191
26192         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26193           wayland: fix memory leak of display resources.
26194
26195 2013-06-04 07:14:22 +0800  Zhao Halley <halley.zhao@intel.com>
26196
26197         * gst/vaapi/gstvaapisink.c:
26198           vaapisink: fix build without VA/GLX support.
26199
26200 2013-06-05 11:01:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26201
26202         * gst/vaapi/gstvaapivideomemory.c:
26203         * gst/vaapi/gstvaapivideomemory.h:
26204           plugins: allow buffer mappings to GstVaapiSurfaceProxy.
26205           Allow plain gst_buffer_map() interface to work with gstreamer-vaapi
26206           video buffers, i.e. expose the underlying GstVaapiSurfaceProxy to the
26207           caller. This is the only sensible enough thing to do in this mode as
26208           the underlying surface pixels need to be extracted through an explicit
26209           call to the gst_video_frame_map() function instead.
26210           A possible use-case of this is to implement a "handoff" signal handler
26211           to fakesink or identity element for further processing.
26212
26213 2013-06-03 10:22:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26214
26215         * gst/vaapi/gstvaapivideomemory.c:
26216           plugins: silence check for direct-rendering mode in video memory.
26217           Fix gst_vaapi_video_allocator_new() to silently check for direct-rendering
26218           mode support, and not trigger fatal-criticals if either test surface or
26219           image could not be created. Typical case: pixel format mismatch, e.g. NV12
26220           supported by most hardware vs. I420 supported by most software decoders.
26221
26222 2013-06-03 10:06:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26223
26224         * gst/vaapi/gstvaapivideomemory.c:
26225           plugins: improve video memory flags safety checks.
26226           On map, ensure we have GST_MAP_WRITE flags since this is only what we
26227           support for now. Likewise, on unmap, make sure that the VA image is
26228           unmapped for either read or write, while still committing it to the
26229           VA surface if write was requested.
26230
26231 2013-05-30 18:17:07 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26232
26233         * gst-libs/gst/vaapi/gstvaapisurface.c:
26234           surface: fix memory leak through unreleased parent context.
26235           Break the circular references between GstVaapiContext and its children
26236           GstVaapiSurfaces. Since the VA surfaces held an extra reference to the
26237           context, which holds a reference to its VA surfaces, then none of those
26238           were released.
26239           How does this impact support for subpictures?
26240           The only situation when the parent context needs to disappear is when
26241           it is replaced with another one because of a resolution change in the
26242           video stream for instance, or a normal destroy. In this case, it does
26243           not really matter to apply subpictures to the peer surfaces since they
26244           are either gone, or those that are left in the pipe can probably bear
26245           a reinstantiation of the subpictures for it.
26246           So, parent_context is set to NULL when the parent context is destroyed,
26247           other VA surfaces can still get subpictures attached to them, individually
26248           not as a whole. i.e. subpictures for surface S1 will be created from
26249           active composition buffers and associated to S1, subpictures for S2 will
26250           be created from the next active composition buffers, etc. We don't try
26251           to cache the subpictures in those cases (pending surfaces until EOS
26252           is reached, or pending surfaces until new surfaces matching new VA context
26253           get to be used instead).
26254
26255 2013-05-27 14:01:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26256
26257         * gst/vaapi/gstvaapisink.c:
26258           vaapisink: fix one-time initialization when display property is set.
26259           Fix gst_vaapisink_ensure_display() to perform one-time initialization
26260           tasks even if the `display' property was explicitly set.
26261
26262 2013-05-27 15:59:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26263
26264         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26265           window: fix GLX window initialization.
26266           Make sure to create the GLX context once the window object has completed
26267           its creation. Since gl_resize() relies on the newly created window size,
26268           then we cannot simply overload the GstVaapiWindowClass::create() hook.
26269           So, we just call into gst_vaapi_window_glx_ensure_context() once the
26270           window object is created in the gst_vaapi_window_glx_new*() functions.
26271
26272 2013-05-27 17:18:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26273
26274         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26275         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26276         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26277         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26278         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26279         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26280         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26281         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26282         * gst-libs/gst/vaapi/gstvaapitexture.c:
26283         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26284         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26285         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26286         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26287           display: validate display types.
26288
26289 2013-05-27 16:13:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26290
26291         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26292         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26293         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26294           display: drop internal NAME_PREFIX, store the real display name.
26295           Always store a valid display name/device path, instead of adding a
26296           particular prefix. i.e. make it simply a strdup(), or "" if it was
26297           initially NULL.
26298
26299 2013-05-27 13:17:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26300
26301         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26302         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26303         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26304         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26305         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26306         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26307         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26308           display: make it possible to lookup the display cache by type.
26309           Make it possible to add extra an extra filter to most of display cache
26310           lookup functions so that the GstVaapiDisplay instance can really match
26311           a compatible and existing display by type, instead of relying on extra
26312           string tags (e.g. "X11:" prefix, etc.).
26313
26314 2013-05-24 16:19:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26315
26316         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26317         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26318         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26319           display: cope with new display cache API.
26320
26321 2013-05-24 16:12:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26322
26323         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
26324         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
26325           display: rework display cache API.
26326           Simplify display cache API, while making it more flexible. We can now create
26327           custom lookup functions with gst_vaapi_display_cache_lookup_custom().
26328
26329 2013-05-24 15:05:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26330
26331         * tests/test-display.c:
26332           tests: improve check for display cache.
26333           Improve check for display cache infrastructure. In particular, for X11 and
26334           GLX backends, we need to make sure that we can create a GstVaapiDisplayX11
26335           from another GstVaapiDisplayGLX, i.e. underlying X11 and VA displays can be
26336           shared. Besides, allocating a GstVaapiDisplayGLX while a GstVaapiDisplayX11
26337           already exists will have to generate different VA displays.
26338
26339 2013-05-15 10:33:16 +0800  Zhao Halley <halley.zhao@intel.com>
26340
26341         * gst/vaapi/gstvaapiuploader.c:
26342           uploader: fix memory leak in GStreamer 0.10 builds.
26343           In GStreamer 0.10 builds, gst_vaapi_uploader_get_buffer() was used
26344           but it exhibited a memory leak because the surface generated for the
26345           GstVaapiVideoMeta totally lost its parent video pool. So, it was not
26346           possible to release that surface back to the parent pool when the meta
26347           gets released, and the memory consumption kept growing.
26348           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26349
26350 2013-05-23 18:56:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26351
26352         * gst/vaapi/gstvaapivideometa.c:
26353           plugins: fix gst_vaapi_video_meta_new_from_pool().
26354           Since GST_VAAPI_IS_xxx_VIDEO_POOL() was only testing for NULL and not
26355           the underlying object type, the gst_vaapi_video_meta_new_from_pool()
26356           was hereby totally broken. Fixed this regression by using the newly
26357           provided gst_vaapi_video_pool_get_object_type() function.
26358
26359 2013-05-23 18:22:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26360
26361         * gst/vaapi/gstvaapiuploader.c:
26362         * gst/vaapi/gstvaapivideomemory.c:
26363         * gst/vaapi/gstvaapivideometa.c:
26364           plugins: cope with GST_VAAPI_IS_xxx() macros removal.
26365
26366 2013-05-23 18:19:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26367
26368         * tests/decoder.c:
26369           tests: cope with GST_VAAPI_IS_xxx() macros removal.
26370
26371 2013-05-23 18:45:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26372
26373         * docs/reference/libs/libs-sections.txt:
26374         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26375         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26376         * gst-libs/gst/vaapi/gstvaapivideopool.c:
26377         * gst-libs/gst/vaapi/gstvaapivideopool.h:
26378         * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26379           libs: add query for GstVaapiVideoPool object types.
26380           Add API to identify the underlying GstVaapiVideoPool object type.
26381
26382 2013-05-23 18:15:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26383
26384         * docs/reference/libs/libs-sections.txt:
26385         * gst-libs/gst/vaapi/gstvaapicontext.c:
26386         * gst-libs/gst/vaapi/gstvaapicontext.h:
26387         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26388         * gst-libs/gst/vaapi/gstvaapidecoder.h:
26389         * gst-libs/gst/vaapi/gstvaapidisplay.c:
26390         * gst-libs/gst/vaapi/gstvaapidisplay.h:
26391         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26392         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26393         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26394         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26395         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26396         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26397         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26398         * gst-libs/gst/vaapi/gstvaapiimage.c:
26399         * gst-libs/gst/vaapi/gstvaapiimage.h:
26400         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26401         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26402         * gst-libs/gst/vaapi/gstvaapiobject.c:
26403         * gst-libs/gst/vaapi/gstvaapiobject.h:
26404         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26405         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26406         * gst-libs/gst/vaapi/gstvaapisurface.c:
26407         * gst-libs/gst/vaapi/gstvaapisurface.h:
26408         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26409         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26410         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26411         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26412         * gst-libs/gst/vaapi/gstvaapitexture.c:
26413         * gst-libs/gst/vaapi/gstvaapivideopool.c:
26414         * gst-libs/gst/vaapi/gstvaapivideopool.h:
26415         * gst-libs/gst/vaapi/gstvaapiwindow.c:
26416         * gst-libs/gst/vaapi/gstvaapiwindow.h:
26417         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26418         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26419         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26420         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26421           libs: drop GST_VAAPI_IS_xxx() helper macros.
26422           Drop obsolete GST_VAAPI_IS_xxx() helper macros since we are no longer
26423           deriving from GObject and so those were only checking for whether the
26424           argument was NULL or not. This is now irrelevant, and even confusing
26425           to some extent, because we no longer have type checking.
26426           Note: this incurs more type checking (review) but the libgstvaapi is
26427           rather small, so this is manageable.
26428
26429 2013-05-07 18:52:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26430
26431         * configure.ac:
26432           Bump library major version.
26433           The whole libgstvaapi libraries got a major refresh to get rid of GObject.
26434           This is a fundamental change that requires a new SONAME. More changes are
26435           underway to streamline the core libraries.
26436           So far, the net result is a reduction of .text size (code) by 32KB, i.e. -10%.
26437           On one particular test (sintel HD trailer), the total number of executed
26438           instruction was reduced by 8%.
26439
26440 2013-05-07 18:37:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26441
26442         * docs/reference/libs/Makefile.am:
26443         * docs/reference/libs/libs-docs.xml.in:
26444         * docs/reference/libs/libs-sections.txt:
26445         * docs/reference/libs/libs.core.types:
26446         * docs/reference/libs/libs.glx.types:
26447         * docs/reference/libs/libs.x11.types:
26448           docs: cope with removed APIs.
26449           Some APIs are dead because they are no longer based on GObject.
26450
26451 2013-05-06 14:43:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26452
26453         * gst/vaapi/gstvaapidecode.c:
26454         * gst/vaapi/gstvaapidownload.c:
26455         * gst/vaapi/gstvaapipluginutil.c:
26456         * gst/vaapi/gstvaapipostproc.c:
26457         * gst/vaapi/gstvaapisink.c:
26458         * gst/vaapi/gstvaapiupload.c:
26459         * gst/vaapi/gstvaapiuploader.c:
26460         * gst/vaapi/gstvaapivideobufferpool.c:
26461         * gst/vaapi/gstvaapivideoconverter_glx.c:
26462         * gst/vaapi/gstvaapivideomemory.c:
26463         * gst/vaapi/gstvaapivideometa.c:
26464           plugins: cope with new GstVaapiMiniObject objects.
26465
26466 2013-05-07 11:45:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26467
26468         * tests/decoder.c:
26469         * tests/image.c:
26470         * tests/output.c:
26471         * tests/simple-decoder.c:
26472         * tests/test-decode.c:
26473         * tests/test-display.c:
26474         * tests/test-subpicture.c:
26475         * tests/test-surfaces.c:
26476         * tests/test-textures.c:
26477         * tests/test-windows.c:
26478           tests: cope with new GstVaapiMiniObject objects.
26479
26480 2013-05-07 15:38:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26481
26482         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26483           display: fix set_synchronous() to lock display.
26484
26485 2013-05-03 19:02:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26486
26487         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26488         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26489           videopool: simplify creation of video objects pool.
26490
26491 2013-05-07 18:17:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26492
26493         * gst-libs/gst/vaapi/gstvaapiobject.c:
26494         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26495         * gst-libs/gst/vaapi/gstvaapitypes.h:
26496           libs: simplify GstVaapiID definitions.
26497           Make GstVaapiID a gsize instead of guessing an underlying integer large
26498           enough to hold all bits of a pointer. Also drop GST_VAAPI_ID_NONE since
26499           this is plain zero and that it is no longer passed as varargs.
26500
26501 2013-05-02 16:11:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26502
26503         * gst-libs/gst/vaapi/Makefile.am:
26504         * gst-libs/gst/vaapi/gstvaapi_priv.h:
26505         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
26506         * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
26507         * gst-libs/gst/vaapi/gstvaapivalue.c:
26508         * gst-libs/gst/vaapi/gstvaapivalue.h:
26509           libs: drop obsolete function helpers and objects.
26510           Drop obsolete GstVaapiID related function helpers for passing them as
26511           GValues.
26512
26513 2013-05-07 11:39:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26514
26515         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26516         * gst-libs/gst/vaapi/gstvaapidisplay.c:
26517         * gst-libs/gst/vaapi/gstvaapidisplay.h:
26518         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
26519         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
26520         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
26521         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
26522         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
26523         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
26524         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
26525         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
26526         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
26527         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
26528         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
26529         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
26530         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
26531         * gst-libs/gst/vaapi/gstvaapiobject.c:
26532         * gst-libs/gst/vaapi/gstvaapivideopool.c:
26533           libs: use GstVaapiMiniObject for display objects.
26534
26535 2013-05-06 14:07:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26536
26537         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26538         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26539         * gst-libs/gst/vaapi/gstvaapidecoder.h:
26540         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26541         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
26542         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26543         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
26544         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26545         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
26546         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26547         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
26548         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26549         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26550         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26551         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
26552           libs: use GstVaapiMiniObject for video decoders.
26553           Port GstVaapiDecoder and GstVaapiDecoder{MPEG2,MPEG4,JPEG,H264,VC1} to
26554           GstVaapiMiniObject. Add gst_vaapi_decoder_set_codec_state_changed_func()
26555           helper function to let the user add a callback to a function triggered
26556           whenever the codec state (e.g. caps) changes.
26557
26558 2013-05-03 11:01:12 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26559
26560         * docs/reference/libs/libs-sections.txt:
26561         * gst-libs/gst/vaapi/Makefile.am:
26562         * gst-libs/gst/vaapi/gstvaapicontext.c:
26563         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
26564         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
26565         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
26566         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
26567         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26568         * gst-libs/gst/vaapi/gstvaapivideopool.c:
26569         * gst-libs/gst/vaapi/gstvaapivideopool.h:
26570         * gst-libs/gst/vaapi/gstvaapivideopool_priv.h:
26571           libs: use GstVaapiMiniObject for video object pools.
26572           Port GstVaapiVideoPool, GstVaapiSurfacePool and GstVaapiImagePool to
26573           GstVaapiMiniObject. Drop gst_vaapi_video_pool_get_caps() since it was
26574           no longer used for a long time. Make object allocators static, i.e.
26575           local to the shared library.
26576
26577 2013-04-30 17:22:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26578
26579         * gst-libs/gst/vaapi/gstvaapitexture.c:
26580         * gst-libs/gst/vaapi/gstvaapitexture.h:
26581           libs: use GstVaapiObject for texture objects.
26582
26583 2013-04-30 17:20:14 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26584
26585         * gst-libs/gst/vaapi/Makefile.am:
26586         * gst-libs/gst/vaapi/gstvaapiwindow.c:
26587         * gst-libs/gst/vaapi/gstvaapiwindow.h:
26588         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
26589         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
26590         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
26591         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
26592         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
26593         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
26594         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
26595         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
26596         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
26597         * gst-libs/gst/vaapi/gstvaapiwindow_x11_priv.h:
26598           libs: use GstVaapiObject for window objects.
26599
26600 2013-04-30 17:22:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26601
26602         * gst-libs/gst/vaapi/gstvaapicontext.c:
26603         * gst-libs/gst/vaapi/gstvaapicontext.h:
26604         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26605         * gst-libs/gst/vaapi/gstvaapiimage.c:
26606         * gst-libs/gst/vaapi/gstvaapiimage.h:
26607         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
26608         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
26609         * gst-libs/gst/vaapi/gstvaapisurface.c:
26610         * gst-libs/gst/vaapi/gstvaapisurface.h:
26611         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26612         * gst-libs/gst/vaapi/gstvaapivideopool.c:
26613           libs: use GstVaapiObject for VA objects.
26614
26615 2013-04-30 17:20:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26616
26617         * gst-libs/gst/vaapi/Makefile.am:
26618         * gst-libs/gst/vaapi/gstvaapiobject.c:
26619         * gst-libs/gst/vaapi/gstvaapiobject.h:
26620         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
26621           Port GstVaapiObject to GstVaapiMiniObject.
26622
26623 2013-04-30 10:28:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26624
26625         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
26626         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
26627         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26628         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26629         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
26630         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
26631           libs: refine GstVaapiMiniObject.
26632           Drop support for user-defined data since this capability was not used
26633           so far and GstVaapiMiniObject represents the smallest reference counted
26634           object type. Add missing GST_VAAPI_MINI_OBJECT_CLASS() helper macro.
26635           Besides, since GstVaapiMiniObject is a libgstvaapi internal object, it
26636           is also possible to further simplify the layout of the object. i.e. merge
26637           GstVaapiMiniObjectBase into GstVaapiMiniObject.
26638
26639 2013-05-07 16:43:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26640
26641         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26642           decoder: update picture size from the bitstream.
26643           Propagate the picture size from the bitstream to the GstVaapiDecoder,
26644           and subsequent user who installed a signal on notify::caps. This fixes
26645           decoding of TS streams when the demuxer failed to extract the required
26646           information.
26647
26648 2013-04-25 14:16:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26649
26650         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26651           decoder: fix raw decoding mode.
26652           Fix gst_vaapi_decoder_get_surface() to actually transfer ownership of the
26653           surface proxy to the caller.
26654
26655 2013-04-25 13:56:18 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26656
26657         * docs/reference/libs/libs-sections.txt:
26658         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26659         * gst-libs/gst/vaapi/gstvaapidecoder.h:
26660         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26661         * gst/vaapi/gstvaapidecode.c:
26662           decoder: add gst_vaapi_decoder_get_frame_with_timeout().
26663           Add gst_vaapi_decoder_get_frame_with_timeout() helper function that will
26664           wait for a frame to be decoded, until the specified timeout in microseconds,
26665           prior to returning to the caller.
26666           This is a fix to performance regression from 851cc0, whereby the vaapidecode
26667           loop executed on the srcpad task was called to often, thus starving all CPU
26668           resources.
26669
26670 2013-04-19 14:38:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26671
26672         * configure.ac:
26673           Bump version for development.
26674
26675 2013-04-18 19:09:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26676
26677         * NEWS:
26678         * configure.ac:
26679           0.5.3.
26680
26681 2013-04-18 19:08:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26682
26683         * NEWS:
26684           NEWS: updates.
26685
26686 2013-04-18 15:55:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26687
26688         * gst/vaapi/gstvaapidecode.c:
26689           vaapidecode: rework heuristics to detect decode timeout.
26690           Rework heuristics to detect when downstream element ran into errors,
26691           and thus failing to release any VA surface in due time for the current
26692           frame to get decoded. In particular, recalibrate the render time base
26693           when the first frame gets submitted downstream, or when there is no
26694           timestamp that could be inferred.
26695
26696 2013-04-18 15:50:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26697
26698         * gst-libs/gst/vaapi/gstcompat.h:
26699         * gst/vaapi/gstvaapidecode.c:
26700           vaapidecode: rework GstVideoDecoder::handle_frame() with a task.
26701           Rework GstVideoDecoder::handle_frame() to decode the current frame,
26702           while possibly waiting for a free surface, and separately submit all
26703           decoded frames from a task. This makes it possible to pop and render
26704           decoded frames as soon as possible.
26705
26706 2013-04-18 10:06:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26707
26708         * gst/vaapi/gstvaapidecode.c:
26709         * gst/vaapi/gstvaapidownload.c:
26710         * gst/vaapi/gstvaapisink.c:
26711         * gst/vaapi/gstvaapiupload.c:
26712           plugins: use gst_object_unref() wherever applicable.
26713           Use gst_object_unref() wherever applicable, e.g. objects derived from
26714           GstElement, GstVideoPool, etc.
26715
26716 2013-04-17 14:21:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26717
26718         * docs/reference/plugins/plugins-docs.xml.in:
26719         * docs/reference/plugins/plugins-sections.txt:
26720         * docs/reference/plugins/plugins.types:
26721           docs: drop obsolete plug-ins.
26722           Drop documentation for obsolete plug-ins, even for GStreamer 0.10.
26723           i.e. vaapiupload and vaapidownload are no longer the recommended
26724           plug-ins to use.
26725
26726 2013-04-17 13:17:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26727
26728         * debian.upstream/rules:
26729           debian: fix build of GStreamer 0.10 packages.
26730           Fix build of Debian packages to scan the actual GStreamer API version
26731           from the generated changelog file.
26732
26733 2013-04-17 10:58:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26734
26735         * gst/vaapi/gstvaapipostproc.c:
26736           vaapipostproc: minor clean-ups.
26737           Use g_clear_object() wherever appropriate and remove dead-code.
26738
26739 2013-04-17 10:53:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26740
26741         * gst/vaapi/gstvaapipostproc.c:
26742           vaapipostproc: fix reference counting buf for passthrough mode.
26743           Fix reference counting bug for passthrough mode, whereby the input buffer
26744           was propagated as is downstream through gst_pad_push() without increasing
26745           its reference count before. The was a problem when gst_pad_push() returns
26746           an error and we further decrease the reference count of the input buffer.
26747
26748 2013-04-17 10:18:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26749
26750         * gst-libs/gst/vaapi/gstcompat.h:
26751         * gst/vaapi/Makefile.am:
26752         * gst/vaapi/gstvaapi.c:
26753         * gst/vaapi/gstvaapidecode.c:
26754         * gst/vaapi/gstvaapipluginutil.h:
26755         * gst/vaapi/gstvaapipostproc.c:
26756           vaapipostproc: port to GStreamer 1.0.
26757           Add support for interlaced streams with GStreamer 1.0 too. Basically,
26758           this enables vaapipostproc, though it is not auto-plugged yet. We also
26759           make sure to reply to CAPS queries, and happily handle CAPS events.
26760
26761 2013-04-17 10:14:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26762
26763         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26764           decoder: fix GstVideoCodecFrame flags for interlaced contents.
26765           Fix support for interlaced contents with GStreamer 0.10. In particular,
26766           propagate GstVaapiSurfaceProxy frame flags to GstVideoCodecFrame flags
26767           correctly.
26768           This is a regression from commit 87e5717.
26769
26770 2013-04-16 13:23:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26771
26772         * gst-libs/gst/vaapi/Makefile.am:
26773         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26774         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
26775         * gst-libs/gst/vaapi/gstvaapiparser_frame.c:
26776         * gst-libs/gst/vaapi/gstvaapiparser_frame.h:
26777           decoder: rename GstVaapiDecoderFrame to GstVaapiParserFrame.
26778           Rename GstVaapiDecoderFrame to GstVaapiParserFrame because this data
26779           structure was only useful to parsing and a proper GstvaapiDecoderFrame
26780           instance will be created instead.
26781
26782 2013-04-16 19:09:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26783
26784         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26785           decoder: export presentation timestamp for raw decoding mode.
26786           Fix regression from 0.4-branch whereby GstVaapiSurfaceProxy no longer
26787           held any information about the expected presentation timestamp, frame
26788           duration or additional flags like interlaced or top-field-first.
26789
26790 2013-04-16 18:56:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26791
26792         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26793         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
26794           decoder: use new GstVaapiSurfaceProxy utility functions.
26795           Use new GstVaapiSurfaceProxy internal helper functions to propagate the
26796           necessary GstVideoCodecFrame flags to vaapidecode (GStreamer 0.10).
26797           Also make GstVaapiDecoder push_frame() operate similarly to drop_frame().
26798           i.e. increase the GstVideoCodecFrame reference count in push_frame rather
26799           than gst_vaapi_picture_output().
26800
26801 2013-04-16 18:35:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26802
26803         * docs/reference/libs/libs-sections.txt:
26804         * gst-libs/gst/vaapi/Makefile.am:
26805         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26806         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26807         * gst-libs/gst/vaapi/gstvaapisurfaceproxy_priv.h:
26808           surfaceproxy: add more attributes for raw decoding modes.
26809           Add more attributes for raw decoding modes, i.e. directly through the
26810           libgstvaapi helper library. In particular, add presentation timestamp,
26811           duration and a couple of flags (interlaced, TFF, RFF, one-field).
26812
26813 2013-04-16 13:48:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26814
26815         * docs/reference/libs/libs-sections.txt:
26816         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
26817         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
26818         * gst/vaapi/gstvaapidecode.c:
26819         * tests/simple-decoder.c:
26820           surfaceproxy: drop user-data support from GstVaapiSurfaceProxy.
26821           Drop user-data support from GstVaapiSurfaceProxy. Rather make it explicit
26822           to call some user-provided function when the surface proxy is released.
26823
26824 2013-04-15 12:52:51 +0400  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
26825
26826         * configure.ac:
26827         * gst-libs/gst/vaapi/Makefile.am:
26828           build: link libgstvaapi-glx-1.0.so against libdl.
26829           Ensure libgstvaapi-glx*.so builds against libdl since dlsym() is used
26830           to resolve glXGetProcAddress() from GLX libraries. This fix builds on
26831           Fedora 17.
26832           https://bugzilla.gnome.org/show_bug.cgi?id=698046
26833           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26834
26835 2013-04-15 14:22:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26836
26837         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26838           decoder: fix gst_vaapi_decoder_get_codec_state().
26839           Fix previous commit whereby gst_vaapi_decoder_get_codec_state() was
26840           supposed to make GstVaapiDecoder own the return GstVideoCodecState
26841           object. Only comment was updated, not the actual code.
26842
26843 2013-04-15 13:58:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26844
26845         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26846         * gst/vaapi/gstvaapidecode.c:
26847           decoder: make gst_vaapi_decoder_get_codec_state() return the original state.
26848           Make gst_vaapi_decoder_get_codec_state() return the original codec state,
26849           i.e. make the GstVaapiDecoder object own the return state so that callers
26850           that want an extra reference to it would just gst_video_codec_state_ref()
26851           it before usage. This aligns the behaviour with what we had before with
26852           gst_vaapi_decoder_get_caps().
26853           This is an ABI incompatible change, library major version was bumped from
26854           previous release (0.5.2).
26855
26856 2013-04-15 13:52:19 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26857
26858         * gst/vaapi/gstvaapivideobufferpool.h:
26859         * gst/vaapi/gstvaapivideoconverter_glx.h:
26860           plugins: mark a few more functions as internal.
26861           Mark the following functions are internal, i.e. private to the vaapi plug-in:
26862           - gst_vaapi_video_buffer_pool_get_type()
26863           - gst_vaapi_video_converter_glx_get_type()
26864           - gst_vaapi_video_converter_glx_new()
26865
26866 2013-04-15 13:48:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26867
26868         * gst/vaapi/gstvaapivideobuffer.c:
26869           plugins: implement GstSurfaceMeta API.
26870           Implement GstSurfaceMeta API for GStreamer 1.0.x. Even though this is
26871           an unstable/deprecated API, this makes it possible to support Clutter
26872           sink with minimal changes. Tested against clutter-gst 1.9.92.
26873
26874 2013-04-12 17:12:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26875
26876         * gst/vaapi/gstvaapisink.c:
26877           vaapisink: optimize GstVideoOverlayInterface::expose().
26878           When render-mode is "overlay", then it is not really useful to peek into
26879           the GstBaseSink::last_buffer, since we have our own video_buffer already
26880           recorded and maintained into GstVaapiSink.
26881
26882 2013-04-12 17:05:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26883
26884         * gst/vaapi/gstvaapisink.c:
26885           vaapisink: fix memory leak of GstSample objects.
26886           Fix memory leak of GstSample objects in GstVideoOverlayInterface::expose().
26887           This also fixes extra unreferencing of the underlying GstBuffer in the common
26888           path afterwards (for both 0.10 or 1.0).
26889
26890 2013-04-12 13:44:52 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26891
26892         * gst-libs/gst/vaapi/gstcompat.h:
26893         * gst/vaapi/gstvaapi.c:
26894           plugins: fix description for gst-inspect.
26895           Fix the name of the plug-in element reported to gst-inspect-1.0. i.e. we
26896           need an explicit definition for GStreamer >= 1.0 because the GST_PLUGIN_DEFINE
26897           incorrectly uses #name for creating the plug-in name, instead of using macro
26898           expansion (and let further expansion of macros) through e.g. G_STRINGIFY().
26899
26900 2013-04-11 09:24:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26901
26902         * README:
26903           README: updates.
26904           Update build requirements for GStreamer 1.0.x support. Add section for
26905           ways to report bugs.
26906
26907 2013-04-10 16:54:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26908
26909         * NEWS:
26910           NEWS: updates.
26911
26912 2013-04-10 15:31:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26913
26914         * gst-libs/gst/vaapi/Makefile.am:
26915         * gst/vaapi/Makefile.am:
26916           Fix make dist to include all source files, in any case.
26917           Fix make dist to allow build for either GStreamer 0.10 or 1.0. i.e. make
26918           sure to include all source files in either case while generating source
26919           tarballs.
26920
26921 2013-04-10 15:21:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26922
26923         * configure.ac:
26924           Bump library major version.
26925           Bump library major version, while preserving a major version of 0 for
26926           GStreamer 1.0 based libraries, and a major version of 2 for GStreamer
26927           0.10 based librarieS.
26928
26929 2013-04-10 14:37:42 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26930
26931         * gst/vaapi/gstvaapivideomemory.c:
26932         * gst/vaapi/gstvaapivideomemory.h:
26933           plugins: implement direct-rendering mode for raw YUV buffer uploads.
26934           Allow direct-rendering (writes) into target VA surfaces.
26935
26936 2013-04-09 16:02:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26937
26938         * gst/vaapi/gstvaapivideobufferpool.c:
26939         * gst/vaapi/gstvaapivideomemory.c:
26940         * gst/vaapi/gstvaapivideomemory.h:
26941           plugins: implement uploads from raw YUV buffers for GStreamer 1.0.
26942           Implement GstVideoMeta::{,un}map() to support raw YUV buffer upload when
26943           the last component is unmapped. Downloads are not supported yet. The aim
26944           was to first support SW decoding + HW accelerated rendering (vaapisink).
26945           e.g. for Wayland.
26946
26947 2013-04-03 11:10:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26948
26949         * gst/vaapi/gstvaapidecode.c:
26950           vaapidecode: submit all decoded frames before decoding a new one.
26951           Make sure to purge all pending frames that were already decoded prior
26952           to decoding a new one. This helps release VA surfaces as early as
26953           possible.
26954
26955 2013-04-02 16:12:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26956
26957         * gst/vaapi/gstvaapidecode.c:
26958           vaapidecode: reply to CAPS queries.
26959           Handle GST_QUERY_CAPS, which is the GStreamer 1.0 mechanism to retrieve
26960           the set of allowed caps, i.e. it works similar to GstPad::get_caps().
26961           This fixes fallback to SW decoding if no HW decoder is available.
26962
26963 2013-03-20 11:26:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26964
26965         * gst-libs/gst/vaapi/gstvaapidecoder.c:
26966         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
26967         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
26968         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
26969         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
26970         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
26971           decoder: fix unpaired GstBuffer map/unmaps.
26972           This possibly fixes a few memory leaks along the way.
26973
26974 2013-03-20 14:40:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
26975
26976         * configure.ac:
26977         * gst-libs/gst/vaapi/gstcompat.h:
26978         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
26979         * gst-libs/gst/vaapi/gstvaapiprofile.c:
26980         * gst/vaapi/Makefile.am:
26981         * gst/vaapi/gstvaapi.c:
26982         * gst/vaapi/gstvaapidecode.c:
26983         * gst/vaapi/gstvaapisink.c:
26984         * gst/vaapi/gstvaapisink.h:
26985         * gst/vaapi/gstvaapiuploader.c:
26986         * tests/codec.c:
26987           Allow build against either GStreamer API (0.10 or 1.0).
26988           Introduce a new configure option --with-gstreamer-api that determines
26989           the desired GStreamer API to use. By default, GStreamer 1.0 is selected.
26990           Also integrate more compatibility glue into gstcompat.h and plugins.
26991
26992 2012-11-08 16:41:22 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
26993
26994         * gst/vaapi/gstvaapidecode.c:
26995         * gst/vaapi/gstvaapisink.c:
26996         * gst/vaapi/gstvaapisink.h:
26997           plugins: use new video buffer pools.
26998           Use new GstVaapiVideoBufferPool to maintain video buffers. Implement
26999           GstBaseSink::propose_allocation() to expose that pool to upstream
27000           elements; and also implement GstVideoDecoder::decide_allocation() to
27001           actually use that pool (from downstream), if any, or create one.
27002           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27003
27004 2012-11-08 16:41:22 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27005
27006         * gst/vaapi/Makefile.am:
27007         * gst/vaapi/gstvaapivideobufferpool.c:
27008         * gst/vaapi/gstvaapivideobufferpool.h:
27009         * gst/vaapi/gstvaapivideomemory.c:
27010         * gst/vaapi/gstvaapivideomemory.h:
27011           plugins: add GstVaapiVideoMemory and GstVaapiVideoBufferPool objects.
27012           Add initial support for GstVaapiVideoMemory backed buffer pool. The memory
27013           object currently holds a reference to GstVaapiVideoMeta.
27014           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27015
27016 2013-04-04 17:36:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27017
27018         * gst/vaapi/gstvaapivideometa.c:
27019         * gst/vaapi/gstvaapivideometa.h:
27020           plugins: allow copies of GstVaapiVideoMeta objects.
27021           Make it possible to copy GstVaapiVideoMeta objects, unless they contain VA
27022           objects created from GstVaapiVideoPool. This is mostly useful to clone a
27023           GstVaapiVideoMeta object containing a VA surface proxy so that to alter its
27024           rendering flags.
27025
27026 2013-04-04 16:16:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27027
27028         * gst/vaapi/gstvaapivideometa.c:
27029           plugins: make it possible to clear VA objects from GstVaapiVideoMeta.
27030           Fix GstVaapiVideoMeta to allow VA objects to be destroyed when they are
27031           reset to NULL. i.e. make gst_vaapi_video_meta_set_{image,surface}() and
27032           gst_vaapi_video_meta_set_surface_proxy() actually clear VA objects when
27033           argument is NULL.
27034
27035 2012-09-03 14:00:25 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27036
27037         * gst/vaapi/Makefile.am:
27038         * gst/vaapi/gstvaapi.c:
27039         * gst/vaapi/gstvaapidecode.c:
27040         * gst/vaapi/gstvaapidownload.c:
27041         * gst/vaapi/gstvaapipluginutil.c:
27042         * gst/vaapi/gstvaapipostproc.c:
27043         * gst/vaapi/gstvaapisink.c:
27044         * gst/vaapi/gstvaapiupload.c:
27045         * gst/vaapi/gstvaapiuploader.c:
27046         * gst/vaapi/gstvaapivideobuffer.c:
27047         * gst/vaapi/gstvaapivideoconverter_glx.c:
27048         * gst/vaapi/gstvaapivideometa.c:
27049         * gst/vaapi/gstvaapivideometa.h:
27050           plugins: initial port to GStreamer 1.0.
27051           Port vaapidecode and vaapisink plugins to GStreamer API >= 1.0. This
27052           is rather minimalistic so that to test the basic functionality.
27053           Disable vaapiupload, vaapidownload and vaapipostproc plugins. The latter
27054           needs polishing wrt. to GStreamer 1.x functionality and the former are
27055           totally phased out in favor of GstVaapiVideoMemory map/unmap facilities,
27056           which are yet to be implemented.
27057           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27058
27059 2013-03-21 10:12:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27060
27061         * gst-libs/gst/vaapi/gstcompat.h:
27062         * tests/codec.c:
27063         * tests/decoder.c:
27064         * tests/simple-decoder.c:
27065         * tests/test-subpicture.c:
27066           tests: add support for GStreamer 1.0.
27067
27068 2012-09-04 15:12:18 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27069
27070         * configure.ac:
27071         * gst-libs/gst/vaapi/gstcompat.h:
27072         * gst-libs/gst/vaapi/gstvaapicontext.c:
27073         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27074         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27075         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27076         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27077         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27078         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27079         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27080         * gst-libs/gst/vaapi/gstvaapidisplay.c:
27081         * gst-libs/gst/vaapi/gstvaapiimage.c:
27082         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27083         * gst-libs/gst/vaapi/gstvaapiprofile.c:
27084         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27085         * gst-libs/gst/vaapi/gstvaapisurface.h:
27086           Add initial support for GStreamer 1.0.
27087           This integrates support for GStreamer API >= 1.0 only in the libgstvaapi
27088           core decoding library. The changes are kept rather minimal here so that
27089           the library retains as little dependency as possible on core GStreamer
27090           functionality.
27091           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27092
27093 2013-04-03 15:58:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27094
27095         * gst/vaapi/gstvaapisink.c:
27096           vaapisink: improve check for raw YUV format mode.
27097           Improve check for raw YUV format modes by avoiding checks against strings
27098           ("video/x-raw-yuv") for each new GstBuffer allocation. In the usual case,
27099           GstBaseSink::set_caps() is called first and if VA surface format mode is
27100           used, then GstBaseSink::buffer_alloc() is not called. If the latter is
27101           called before set_caps(), then we just make a full check. This one is
27102           pretty rare though, e.g. it usually happens once for custom pipelines.
27103
27104 2013-04-03 15:06:46 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27105
27106         * gst/vaapi/gstvaapipluginutil.c:
27107           plugins: don't fail if there is no overlay composition to apply.
27108           Fix gst_vaapi_apply_composition() to not fail if no overlay composition
27109           was found. i.e. return success (TRUE). This was harmless though extra
27110           debug messages are not nice.
27111           This is a regression introduced by commit 95b8659.
27112
27113 2013-04-03 14:59:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27114
27115         * gst/vaapi/gstvaapidecode.c:
27116         * gst/vaapi/gstvaapidecode.h:
27117           vaapidecode: expose the exact set of supported HW decoders.
27118           Don't return static caps that don't mean anything for the underlying codecs
27119           that are actually supported for decoding. i.e. always allocate a VA display
27120           and retrieve the exact set of HW decoders available. That VA display may be
27121           re-used later on during negotiation through GstVideoContext "prepare-context".
27122           This fixes fallback to SW decoding if no HW decoder is available.
27123
27124 2013-04-03 13:08:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27125
27126         * docs/reference/libs/libs-sections.txt:
27127         * gst-libs/gst/vaapi/gstvaapicontext.c:
27128         * gst-libs/gst/vaapi/gstvaapicontext.h:
27129         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27130         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27131           decoder: drop obsolete functions.
27132           Drop the following functions that are now obsolete:
27133           - gst_vaapi_context_get_surface()
27134           - gst_vaapi_context_put_surface()
27135           - gst_vaapi_context_find_surface_by_id()
27136           - gst_vaapi_surface_proxy_new()
27137           - gst_vaapi_surface_proxy_get_context()
27138           - gst_vaapi_surface_proxy_set_context()
27139           - gst_vaapi_surface_proxy_set_surface()
27140           This is an API change.
27141
27142 2013-04-03 13:14:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27143
27144         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27145           decoder: delegate surface size check to VA context reset.
27146           Now that the surface pool is reference counted in the surface proxy wrapper,
27147           we can safely ignore surface size checks in gst_vaapi_decoder_ensure_context().
27148           Besides, this check is already performed in gst_vaapi_context_reset_full().
27149
27150 2013-04-03 11:37:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27151
27152         * docs/reference/libs/libs-sections.txt:
27153         * gst-libs/gst/vaapi/gstvaapicontext.c:
27154         * gst-libs/gst/vaapi/gstvaapicontext.h:
27155         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27156         * gst-libs/gst/vaapi/gstvaapisurface.h:
27157         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
27158         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
27159           decoder: simplify acquisition/release of spare surface.
27160           Introduce gst_vaapi_surface_proxy_new_from_pool() to allocate a new surface
27161           proxy from the context surface pool. This change also makes sure to retain
27162           the parent surface pool in the proxy.
27163           Besides, it was also totally useless to attach/detach parent context to
27164           VA surface each time we acquire/release it. Since the whole context owns
27165           all associated VA surfaces, we can mark this as such only once and for all.
27166
27167 2013-03-29 10:39:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27168
27169         * configure.ac:
27170           Bump version for development.
27171
27172 2013-03-28 10:18:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27173
27174         * NEWS:
27175         * configure.ac:
27176           0.5.2.
27177
27178 2013-03-28 10:15:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27179
27180         * NEWS:
27181           NEWS: updates.
27182
27183 2013-03-26 18:57:00 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27184
27185         * gst/vaapi/gstvaapipluginutil.c:
27186         * gst/vaapi/gstvaapisink.c:
27187           plugins: fix usage of gst_vaapi_reply_to_query().
27188           Make gst_vaapi_reply_to_query() first check whether the query argument
27189           is actually a video-context query, i.e. with type GST_QUERY_TYPE_CUSTOM.
27190           Then, make sure vaapisink propagates the query to the parent class if
27191           it is not a video-context query.
27192
27193 2013-03-26 18:45:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27194
27195         * gst/vaapi/gstvaapivideobuffer.c:
27196         * gst/vaapi/gstvaapivideobuffer.h:
27197           plugins: streamline video buffers.
27198           Add new gst_vaapi_video_buffer_new() helper function that allocates a video
27199           buffer from a GstVaapiVideoMeta. Also remove obsolete and useless function
27200           gst_vaapi_video_buffer_get_meta().
27201
27202 2013-03-26 10:31:10 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27203
27204         * docs/reference/libs/libs-sections.txt:
27205         * gst-libs/gst/vaapi/Makefile.am:
27206         * gst/vaapi/Makefile.am:
27207         * gst/vaapi/gstvaapidecode.c:
27208         * gst/vaapi/gstvaapidownload.c:
27209         * gst/vaapi/gstvaapipostproc.c:
27210         * gst/vaapi/gstvaapisink.c:
27211         * gst/vaapi/gstvaapiupload.c:
27212         * gst/vaapi/gstvaapiuploader.c:
27213         * gst/vaapi/gstvaapivideobuffer.h:
27214         * gst/vaapi/gstvaapivideoconverter_glx.c:
27215         * gst/vaapi/gstvaapivideometa.c:
27216         * gst/vaapi/gstvaapivideometa.h:
27217           plugins: integrate GstVaapiVideoMeta from libgstvaapi.
27218           Move GstVaapiVideoMeta from core libgstvaapi decoding library to the
27219           actual plugin elements. That's only useful there. Also inline reference
27220           counting code from GstVaapiMiniObject.
27221
27222 2013-03-21 17:17:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27223
27224         * gst/vaapi/Makefile.am:
27225         * gst/vaapi/gstvaapidecode.c:
27226         * gst/vaapi/gstvaapidownload.c:
27227         * gst/vaapi/gstvaapipluginbuffer.c:
27228         * gst/vaapi/gstvaapipluginbuffer.h:
27229         * gst/vaapi/gstvaapipostproc.c:
27230         * gst/vaapi/gstvaapiupload.c:
27231         * gst/vaapi/gstvaapiuploader.c:
27232         * gst/vaapi/gstvaapivideobuffer.c:
27233         * gst/vaapi/gstvaapivideobuffer.h:
27234           plugins: drop gstvaapipluginbuffer.[ch] helper files.
27235           Move all gst_vaapi_video_buffer_new*() helpers from gstvaapipluginbuffer.[ch]
27236           to gstvaapivideobuffer.[ch], and drop the obsolete files.
27237
27238 2013-03-21 17:06:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27239
27240         * docs/reference/libs/libs-sections.txt:
27241         * docs/reference/libs/libs.core.types:
27242         * gst-libs/gst/vaapi/Makefile.am:
27243         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27244         * gst/vaapi/Makefile.am:
27245         * gst/vaapi/gstvaapidownload.h:
27246         * gst/vaapi/gstvaapipluginbuffer.c:
27247         * gst/vaapi/gstvaapipostproc.h:
27248         * gst/vaapi/gstvaapivideobuffer.c:
27249         * gst/vaapi/gstvaapivideobuffer.h:
27250         * gst/vaapi/gstvaapivideoconverter_glx.h:
27251           plugins: integrate GstVaapiVideoBuffer from libgstvaapi.
27252           Move GstVaapiVideoBuffer from core libgstvaapi decoding library to the
27253           actual plugin elements. That's only useful there.
27254
27255 2013-03-21 16:32:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27256
27257         * gst/vaapi/gstvaapipluginutil.c:
27258         * gst/vaapi/gstvaapipluginutil.h:
27259         * gst/vaapi/gstvaapisink.c:
27260         * gst/vaapi/gstvaapivideoconverter_glx.c:
27261           plugins: use common helper function to apply compositions.
27262           Use common gst_vaapi_apply_composition() helper function to apply compositions
27263           attached to a buffer in vaapisink or GstVaapiVideoConverterGLX.
27264
27265 2013-03-21 16:09:42 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27266
27267         * gst-libs/gst/vaapi/Makefile.am:
27268         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27269         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27270         * gst/vaapi/Makefile.am:
27271         * gst/vaapi/gstvaapipluginbuffer.c:
27272         * gst/vaapi/gstvaapivideoconverter_glx.c:
27273         * gst/vaapi/gstvaapivideoconverter_glx.h:
27274           plugins: integrate GstVaapiVideoConverterGLX from libgstvaapi.
27275           Make sure libgstvaapi core decoding library doesn't include un-needed
27276           dependencies. So, move out GstVaapiVideoConverterGLX to plugins instead.
27277           Besides, even if the vaapisink element is not used, we are bound to have
27278           a correctly populated GstSurfaceBuffer from vaapidecode.
27279           Also clean-up the file along the way.
27280
27281 2013-03-21 13:32:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27282
27283         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27284           vc1: fix use of possibly uninitialized variable.
27285           In decode_codec_data(), force initialization of format to zero so that
27286           we can catch up cases where codec-data has neither "format" nor "wmvversion"
27287           fields, thus making it possible to gracefully fail in this case.
27288
27289 2013-03-21 13:43:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27290
27291         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27292           jpeg: propagate buffer data as a const guchar * pointer (cosmetics).
27293
27294 2013-03-21 14:36:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27295
27296         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27297         * gst-libs/gst/vaapi/gstvaapidecoder.h:
27298         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27299         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27300         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27301         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27302           decoder: sanitize codec-data decoding.
27303           Add a new GstVaapiDecoder::decode_codec_data() hook to actually decode
27304           codec-data in the decoder sub-class. Provide a common shared helper
27305           function to do the actual work and delegating further to the sub-class.
27306
27307 2013-03-21 13:41:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27308
27309         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27310         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27311         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27312         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27313           decoder: get rid of GstVaapiDecoderUnit::buffer field.
27314           Drop GstVaapiDecoderUnit buffer field (GstBuffer) since it's totally
27315           useless nowadays as creating sub-buffers doesn't bring any value. It
27316           actually means more memory allocations. We can't do without that in
27317           JPEG and MPEG-4:2 decoders.
27318
27319 2013-03-21 13:28:05 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27320
27321         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27322         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27323         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27324         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27325         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27326           decoder: sanitize uses of codec frame input buffer (cosmetics).
27327           Alias GST_VAAPI_DECODER_CODEC_FRAME(decoder)->input_buffer to a simple
27328           "buffer" variable.
27329
27330 2013-03-20 17:34:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27331
27332         * gst/vaapi/gstvaapisink.c:
27333           vaapisink: add helper function to apply a composition buffer.
27334           Simplify application of a composition buffer to a GstVaapiSurface, and
27335           all its peers, until that function is eventually promoted to libgstvaapi.
27336
27337 2013-03-20 13:42:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27338
27339         * gst/vaapi/gstvaapisink.c:
27340           vaapisink: fix support for raw YUV buffers.
27341           If the raw YUV buffer was created from vaapisink, through the buffer_alloc()
27342           hook, then it will have a valid GstVaapiVideoMeta object attached to it.
27343           However, we previously assumed in that case that it was a "native" VA buffer,
27344           thus not calling into GstVaapiUploader::process().
27345
27346 2013-03-20 18:41:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27347
27348         * gst-libs/gst/vaapi/gstcompat.h:
27349         * gst/vaapi/gstvaapidecode.c:
27350         * gst/vaapi/gstvaapidownload.c:
27351         * gst/vaapi/gstvaapipostproc.c:
27352         * gst/vaapi/gstvaapisink.c:
27353         * gst/vaapi/gstvaapiupload.c:
27354           plugins: use modern GstElement metadata information.
27355           Use gst_element_class_set_static_metadata() from GStreamer 1.0, which
27356           basically is the same as gst_element_class_set_details_simple() in
27357           GStreamer 0.10 context.
27358
27359 2013-03-20 18:04:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27360
27361         * gst/vaapi/gstvaapidecode.c:
27362         * gst/vaapi/gstvaapidownload.c:
27363         * gst/vaapi/gstvaapipostproc.c:
27364         * gst/vaapi/gstvaapisink.c:
27365         * gst/vaapi/gstvaapiupload.c:
27366           plugins: move up interfaces (cosmetics).
27367           Move GstImplementsInterface and GstVideoContext support functions up
27368           so that to keep a clear separation between the plugin element and its
27369           interface hooks.
27370
27371 2013-03-20 12:57:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27372
27373         * gst/vaapi/gstvaapisink.c:
27374         * gst/vaapi/gstvaapiuploader.c:
27375           plugins: upgrade to newer APIs (GstVideoInfo based helpers).
27376           Use GstVideoInfo and gst_video_info_from_caps() helper wherever possible.
27377           Also use the newly added gst_vaapi_image_format_from_structure() helper
27378           in GstVaapiUploader::ensure_allowed_caps().
27379
27380 2013-03-20 14:02:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27381
27382         * gst/vaapi/gstvaapipluginbuffer.c:
27383           plugins: fix creation of video buffer from another source buffer.
27384           gst_vaapi_video_buffer_new_from_buffer() needs to reference the source
27385           buffer video meta since it would be unreference'd from the get_buffer()
27386           helper function. For other cases, we still use (steal) the newly created
27387           video meta.
27388
27389 2013-03-20 11:57:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27390
27391         * gst/vaapi/gstvaapipluginbuffer.c:
27392         * gst/vaapi/gstvaapipluginutil.c:
27393           plugins: include "sysdeps.h" header instead of "config.h".
27394
27395 2013-03-20 18:33:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27396
27397         * gst-libs/gst/vaapi/gstcompat.h:
27398         * tests/codec.c:
27399           tests: modernize GstTypeFind functions.
27400           Use the GstTypeFind hooks from GStreamer 1.0. They look safer and
27401           exactly correspond to the expected behaviour.
27402
27403 2013-03-20 11:57:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27404
27405         * tests/image.c:
27406         * tests/image.h:
27407         * tests/test-decode.c:
27408         * tests/test-display.c:
27409         * tests/test-h264.c:
27410         * tests/test-h264.h:
27411         * tests/test-jpeg.c:
27412         * tests/test-jpeg.h:
27413         * tests/test-mpeg2.c:
27414         * tests/test-mpeg2.h:
27415         * tests/test-mpeg4.c:
27416         * tests/test-mpeg4.h:
27417         * tests/test-textures.c:
27418         * tests/test-vc1.c:
27419         * tests/test-vc1.h:
27420         * tests/test-windows.c:
27421           tests: fix license templates.
27422
27423 2013-03-20 11:53:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27424
27425         * tests/test-display.c:
27426           tests: use gst_vaapi_image_format_from_structure() in test-display.
27427           Use gst_vaapi_image_format_from_structure() helper in test-display and
27428           then extract a VAImageFormat from it instead of relying on GstCaps for
27429           YUV and RGB formats.
27430
27431 2013-03-20 11:50:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27432
27433         * tests/codec.c:
27434         * tests/decoder.c:
27435         * tests/output.c:
27436         * tests/test-decode.c:
27437         * tests/test-display.c:
27438         * tests/test-subpicture.c:
27439         * tests/test-textures.c:
27440         * tests/test-windows.c:
27441           tests: include "sysdeps.h" header instead of "config.h".
27442
27443 2013-03-20 18:25:05 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27444
27445         * gst-libs/gst/vaapi/gstcompat.h:
27446         * gst-libs/gst/vaapi/gstvaapicontext.c:
27447         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27448           subpicture: use gst_video_overlay_rectangle_get_pixels_unscaled_raw().
27449           Use newer gst_video_overlay_rectangle_get_pixels_unscaled_raw() helper
27450           function with GStreamer 0.10 compatible semantics, or that tries to
27451           approach the current meaning. Basically, this is also just about moving
27452           the helper to gstcompat.h.
27453
27454 2013-03-20 11:10:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27455
27456         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27457         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27458           image: add gst_vaapi_image_format_from_structure() helper.
27459           Add helper function to convert video formats from a GstStructure to a
27460           plain GstVaapiImageFormat.
27461
27462 2013-03-20 18:12:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27463
27464         * gst-libs/gst/vaapi/Makefile.am:
27465         * gst-libs/gst/vaapi/gstcompat.h:
27466         * gst-libs/gst/vaapi/sysdeps.h:
27467           sysdeps: split out GStreamer API compatibility glue to "gstcompat.h".
27468
27469 2013-03-20 11:56:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27470
27471         * gst-libs/gst/vaapi/sysdeps.h:
27472           sysdeps: add more standard includes by default.
27473
27474 2013-03-20 14:43:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27475
27476         * configure.ac:
27477           configure: improve GStreamer API version checks.
27478
27479 2013-03-20 11:44:10 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27480
27481         * configure.ac:
27482         * debian.upstream/Makefile.am:
27483         * debian.upstream/changelog.in:
27484         * debian.upstream/control.in:
27485         * debian.upstream/gstreamer-vaapi-doc.install.in:
27486         * debian.upstream/libgstvaapi-dev.install.in:
27487         * debian.upstream/libgstvaapi-drm.install.in:
27488         * debian.upstream/libgstvaapi-glx.install.in:
27489         * debian.upstream/libgstvaapi-wayland.install.in:
27490         * debian.upstream/libgstvaapi-x11.install.in:
27491         * debian.upstream/libgstvaapi.install.in:
27492         * docs/reference/libs/Makefile.am:
27493         * docs/reference/libs/libs-docs.xml.in:
27494         * docs/reference/plugins/Makefile.am:
27495         * docs/reference/plugins/plugins-docs.xml.in:
27496         * gst-libs/gst/vaapi/Makefile.am:
27497         * gst/vaapi/Makefile.am:
27498         * pkgconfig/Makefile.am:
27499         * pkgconfig/gstreamer-vaapi-drm.pc.in:
27500         * pkgconfig/gstreamer-vaapi-glx.pc.in:
27501         * pkgconfig/gstreamer-vaapi-wayland.pc.in:
27502         * pkgconfig/gstreamer-vaapi-x11.pc.in:
27503         * pkgconfig/gstreamer-vaapi.pc.in:
27504         * tests/Makefile.am:
27505           configure: rename GST_MAJORMINOR to GST_API_VERSION.
27506
27507 2013-03-20 11:28:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27508
27509         * configure.ac:
27510           configure: improve check for H.264 codecparser.
27511
27512 2013-02-26 00:38:24 +0100  Holger Kaelberer <hk@getslash.de>
27513
27514         * gst/vaapi/gstvaapiuploader.c:
27515           vaapiupload: fix illegal write in ensure_image().
27516           Fix ensure_image() to only zero-initialize the first line of each plane.
27517           Properly initializing each plane to their full vertical resolution would
27518           require to actually compute it based on the image format.
27519           In particular, for NV12 images, the UV plane has half vertical resolution
27520           vs. the Y plane. So using the full image height to initialize the UV plane
27521           will obviously lead to a buffer overflow. Likewise for other YUV format.
27522           Since ensure_image() is only a helper function to initialize something,
27523           and not necessarily the whole thing, it is fine to initializ the first
27524           line only. Besides, the target surface is not rendered either.
27525           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27526
27527 2013-02-17 16:28:47 +0800  Xiang, Haihao <haihao.xiang@intel.com>
27528
27529         * gst-libs/gst/codecparsers/Makefile.am:
27530         * gst-libs/gst/video/Makefile.am:
27531           build: fix compiling of local GstVideoDecoder and codecparsers.
27532           Generated source files were missing a dependency on the complete set of
27533           generated header files. e.g. gstvideodecoder.c requires gstvideoutils.h
27534           to build and almost every codec parser source depends on parserutils.h.
27535           https://bugs.freedesktop.org/show_bug.cgi?id=59575
27536           Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
27537           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27538
27539 2013-02-08 11:56:54 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27540
27541         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27542           h264: set {luma,chroma}_log2_weight_denom to 0 if no pred_weight_table().
27543           Force luma_log2_weight_denom and chroma_log2_weight_denom to zero if
27544           there is no pred_weight_table() that was parsed.
27545           This is a workaround for the VA intel-driver on Ivy Bridge.
27546
27547 2013-02-07 15:42:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27548
27549         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27550           h264: use new profile definitions from codecparsers.
27551
27552 2013-02-07 15:29:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27553
27554         * ext/codecparsers:
27555           codecparsers: update to gst-vaapi-branch commit 500bc02.
27556           500bc02 h264: add profile enums
27557
27558 2013-02-06 15:27:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27559
27560         * NEWS:
27561           NEWS: updates.
27562
27563 2013-02-06 15:21:27 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27564
27565         * ext/codecparsers:
27566           codecparsers: update to gst-vaapi-branch commit 31b1c57.
27567           8957fb7 mpeg2: add helpers to convert quantization matrices
27568           07c4034 mpeg2: store quantization matrices in zigzag scan order
27569
27570 2013-01-31 11:32:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27571
27572         * tests/simple-decoder.c:
27573           tests: simple-decoder: fix build on older platforms.
27574           Make simple-decoder build and execute correctly on older platforms,
27575           and more precisely older versions of glib.
27576
27577 2013-01-31 11:30:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27578
27579         * gst-libs/gst/vaapi/glibcompat.h:
27580           glibcompat: add replacement for g_async_queue_timeout_pop().
27581           g_async_queue_timeout_pop() appeared in glib 2.31.18. Implement it as
27582           g_async_queue_timed_pop() with a GTimeVal as the final time to wait for
27583           new data to arrive in the queue.
27584
27585 2013-01-31 11:25:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27586
27587         * gst-libs/gst/vaapi/glibcompat.h:
27588           glibcompat: add replacement for g_cond_wait().
27589
27590 2013-01-30 18:38:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27591
27592         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27593           mpeg2: fix decoding of 4K videos.
27594           Account for slice_vertical_position_extension when vertical_size > 2800.
27595
27596 2013-01-30 18:54:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27597
27598         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27599           mpeg2: fix decoding of sequence_end().
27600           There shall be only one place to call decode_current_picture(), and this
27601           is in the end_frame() hook. The EOS unit is processed after end_frame()
27602           so this means we cannot have a valid picture to decode/output at this
27603           point.
27604
27605 2013-01-30 15:10:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27606
27607         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27608           mpeg2: improve robustness when packets are missing.
27609           Improve robustness when some expected packets where not received yet
27610           or that were not correctly decoded. For example, don't try to decode
27611           a picture if there was no valid sequence or picture headers.
27612
27613 2013-01-30 18:58:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27614
27615         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27616           decoder: handle decode-only frames in raw API mode.
27617           Fix gst_vaapi_decoder_get_surface() to only return frames with a valid
27618           surface proxy, i.e. with a valid VA surface. This means that any frame
27619           marked as decode-only is simply skipped.
27620
27621 2013-01-30 16:33:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27622
27623         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27624         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27625           decoder: allow frames to be dropped.
27626           If the decoder was not able to decode a frame because insufficient
27627           information was available, e.g. missing sequence or picture header,
27628           then allow the frame to be gracefully dropped without generating
27629           any error.
27630           It is also possible that a frame is not meant to be displayed but
27631           only used as a reference, so dropping that frame is also a valid
27632           operation since GstVideoDecoder base class has extra references to
27633           that GstVideoCodecFrame that needs to be released.
27634
27635 2013-01-30 16:26:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27636
27637         * gst/vaapi/gstvaapidecode.c:
27638           vaapidecode: handle decode-only frames.
27639           Decode-only frames may not have a valid surface proxy. So, simply discard
27640           them gracefully, i.e. don't create meta data information. GstVideoDecoder
27641           base class will properly handle this case and won't try to push any buffer
27642           to downstream elements.
27643
27644 2013-01-24 00:49:17 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27645
27646         * gst/vaapi/gstvaapidecode.c:
27647           vaapidecode: add support for post-seek semantics reset.
27648           Implement GstVideoDecoder::reset() as a destruction of the VA decoder
27649           and the creation of a new VA decoder.
27650           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27651
27652 2013-01-30 09:38:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27653
27654         * configure.ac:
27655           Bump version for development.
27656
27657 2013-01-30 09:37:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27658
27659         * NEWS:
27660         * configure.ac:
27661           0.5.1.
27662
27663 2013-01-24 00:48:26 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27664
27665         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27666           mpeg2: implement GstVaapiDecoder::flush() as a DPB flush.
27667
27668 2013-01-24 17:34:43 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27669
27670         * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27671           decoder: fix documentation for GstVaapiDecoderFrame.
27672           Drop superfluous reference to prev_slice member.
27673
27674 2013-01-29 16:18:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27675
27676         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27677           decoder: assume current frame is complete at end-of-stream.
27678           Assume we got a complete frame when the end-of-stream is reached and that
27679           the current codec frame contains at least one slice data unit.
27680
27681 2013-01-29 14:14:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27682
27683         * NEWS:
27684         * README:
27685         * debian.upstream/copyright:
27686         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
27687         * gst-libs/gst/vaapi/gstvaapicontext.c:
27688         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27689         * gst-libs/gst/vaapi/gstvaapidecoder.h:
27690         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
27691         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
27692         * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
27693         * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
27694         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
27695         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
27696         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27697         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27698         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
27699         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
27700         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
27701         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
27702         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
27703         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27704         * gst-libs/gst/vaapi/gstvaapidisplay.c:
27705         * gst-libs/gst/vaapi/gstvaapidisplay.h:
27706         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27707         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
27708         * gst-libs/gst/vaapi/gstvaapiprofile.h:
27709         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27710         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27711         * gst-libs/gst/vaapi/gstvaapisurface.c:
27712         * gst-libs/gst/vaapi/gstvaapiutils.c:
27713         * gst-libs/gst/vaapi/gstvaapiutils.h:
27714         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27715         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27716         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27717         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27718         * gst-libs/gst/vaapi/sysdeps.h:
27719         * gst/vaapi/gstvaapidecode.c:
27720         * gst/vaapi/gstvaapidownload.c:
27721         * gst/vaapi/gstvaapipluginbuffer.c:
27722         * gst/vaapi/gstvaapipluginbuffer.h:
27723         * gst/vaapi/gstvaapipostproc.c:
27724         * gst/vaapi/gstvaapisink.c:
27725         * gst/vaapi/gstvaapiupload.c:
27726         * gst/vaapi/gstvaapiuploader.c:
27727         * tests/output.c:
27728         * tests/test-decode.c:
27729         * tests/test-subpicture.c:
27730           legal: fix year for some copyright notices (2013).
27731
27732 2013-01-29 14:03:27 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27733
27734         * gst-libs/gst/vaapi/gstvaapicontext.h:
27735         * gst-libs/gst/vaapi/gstvaapidecoder.h:
27736         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
27737         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
27738         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
27739         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
27740         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27741         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
27742         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
27743         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
27744         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
27745         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
27746         * gst-libs/gst/vaapi/gstvaapisurface.c:
27747         * gst-libs/gst/vaapi/gstvaapisurface.h:
27748         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
27749         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
27750         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
27751         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
27752         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
27753         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
27754         * gst/vaapi/gstvaapidecode.h:
27755         * gst/vaapi/gstvaapisink.h:
27756         * tests/test-subpicture.c:
27757           legal: fix year for some copyright notices (2012).
27758
27759 2013-01-29 14:00:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27760
27761         * gst-libs/gst/vaapi/gstvaapicompat.h:
27762         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
27763         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
27764         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
27765         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
27766         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
27767         * gst-libs/gst/vaapi/gstvaapiobject.c:
27768         * gst-libs/gst/vaapi/gstvaapiobject.h:
27769         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
27770         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
27771         * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
27772         * gst-libs/gst/vaapi/gstvaapiprofile.c:
27773         * gst-libs/gst/vaapi/gstvaapiprofile.h:
27774         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
27775         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
27776         * gst-libs/gst/vaapi/gstvaapitexture.c:
27777         * gst-libs/gst/vaapi/gstvaapitexture.h:
27778         * gst-libs/gst/vaapi/gstvaapitypes.h:
27779         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
27780         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
27781         * gst-libs/gst/vaapi/gstvaapivalue.c:
27782         * gst-libs/gst/vaapi/gstvaapivalue.h:
27783         * gst-libs/gst/vaapi/gstvaapivideopool.c:
27784         * gst-libs/gst/vaapi/gstvaapivideopool.h:
27785         * gst-libs/gst/vaapi/gstvaapiwindow.h:
27786         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
27787         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
27788         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
27789         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
27790         * tests/test-display.c:
27791         * tests/test-surfaces.c:
27792         * tests/test-windows.c:
27793           legal: add Intel copyright on modified files.
27794
27795 2013-01-29 13:37:41 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27796
27797         * NEWS:
27798           NEWS: updates.
27799
27800 2013-01-28 18:09:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27801
27802         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27803           wayland: use a local event queue to avoid lock contention.
27804           This improves performance when rendering several surfaces from within
27805           the same process. e.g. a tee of vaapidecode'd buffers to vaapisink.
27806
27807 2013-01-28 17:28:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27808
27809         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27810           wayland: fix thread-safe issues.
27811           The Wayland API is not fully thread-safe and client applications shall
27812           perform locking themselves on key functions. Besides, make sure to
27813           release the lock if the _render() function fails.
27814
27815 2013-01-28 16:37:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27816
27817         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27818           wayland: really wait until the pending redraw completed.
27819           Introduce gst_vaapi_window_wayland_sync() helper function to wait for
27820           the completion of the redraw request. Use it in _render() function to
27821           actually block until the previous draw request is completed.
27822
27823 2013-01-23 10:10:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27824
27825         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
27826           wayland: fix frame_redraw callback.
27827           The redraw callback needs to be attached to the surface prior to the
27828           commit. Otherwise, the callback notifies the next surface repaint,
27829           which is not the desired behaviour. i.e. we want to be notified for
27830           the surface we have just filled.
27831           Another isse was the redraw_pending was reset before the actual completion
27832           of the frame redraw callback function, thus causing concurrency issues.
27833           e.g. the callback could have been called again, but with a NULL buffer.
27834
27835 2013-01-28 14:45:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27836
27837         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
27838           wayland: fix display sharing.
27839           When the Wayland display is shared, we still have to create our own local
27840           shell and compositor objects, since they are not propagated from the cache.
27841           Likewise, we also need to determine the display size or vaapisink would
27842           fail to account for the display aspect ratio, and will try to create a 0x0
27843           window.
27844
27845 2013-01-24 17:38:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27846
27847         * ext/codecparsers:
27848           codecparsers: update to gst-vaapi-branch commit 21a098e.
27849           21a098e vc1: fix bitplanes decoding (DIFF6 or NORM6) [residual]
27850           f8c836a vc1: fix bitplanes decoding (DIFF6 or NORM6)
27851
27852 2013-01-23 16:38:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27853
27854         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27855           vc1: handle frames with multiple slices.
27856
27857 2013-01-23 17:01:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27858
27859         * ext/codecparsers:
27860           codecparsers: update to gst-vaapi-branch commit 3fba492.
27861           3fba492 vc1: add API to parse slice headers
27862
27863 2013-01-23 11:11:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27864
27865         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27866           vc1: handle CLOSED_ENTRY.
27867           When CLOSED_ENTRY == 0, and if the B pictures that follow an entry-point
27868           lack a reference anchor picture, these B pictures shall be discarded.
27869           https://bugs.freedesktop.org/show_bug.cgi?id=59505
27870
27871 2013-01-23 10:25:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27872
27873         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27874           vc1: cope with latest codecparser changes.
27875           Fix build with newer VC-1 codecparser where dqsbedge was renamed to
27876           dqbedge, and now represents either DQSBEDGE or DQDBEDGE depending on
27877           the actual value of DQPROFILE.
27878
27879 2013-01-23 10:24:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27880
27881         * ext/codecparsers:
27882           codecparsers: update to gst-vaapi-branch commit 3d2c67c.
27883           3d2c67c vc1: simplify GstVC1VopDquant structure
27884
27885 2013-01-22 10:51:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27886
27887         * ext/codecparsers:
27888           codecparsers: update to gst-vaapi-branch commit 5d33da8.
27889           5d33da8 vc1: fix bitplanes decoding
27890           562bdc4 vc1: fix VOPDQUANT parser for DQUANT == 2
27891           0b13d2b vc1: fix calculation of ALTPQUANT
27892           ba88e63 vc1: fix parser for DQPROFILE in VOPDQUANT
27893
27894 2013-01-22 15:47:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27895
27896         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27897           vc1: fix size of encapsulated BDU.
27898           Fix size of encapsulated BDUs since GstVC1BDU.size actually represents
27899           the size of the BDU data, starting from offset, i.e. after any start
27900           code is parsed.
27901           This fixes a buffer overflow during the unescaping process.
27902
27903 2013-01-11 17:08:00 +0800  Wind Yuan <feng.yuan@intel.com>
27904
27905         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27906           vc1: fix decoding of WMV3 videos in AVI format.
27907           The AVI demuxer (avidemux) does not set a proper "format" attribute
27908           to the generated caps. So, try to recover the video codec format from
27909           the "wmvversion" property instead.
27910           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27911
27912 2013-01-22 13:28:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27913
27914         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27915           vc1: review and report errors accordingly.
27916           Use GST_ERROR() to report real errors instead of hiding them into
27917           GST_DEBUG().
27918
27919 2013-01-22 13:50:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27920
27921         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27922           vc1: don't create GstBuffers for all decoder units.
27923           Don't create temporary GstBuffers for all decoder units, even if they
27924           are lightweight "sub-buffers", since it is not really necessary to keep
27925           the buffer data around.
27926
27927 2013-01-22 16:03:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27928
27929         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27930           vc1: implement flush() hook.
27931           Make it a simple DPB flush.
27932
27933 2013-01-22 13:44:32 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27934
27935         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27936           vc1: implement {start,end}_frame() hooks.
27937           Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
27938           that to create new VA context earlier and submit VA pictures to the
27939           HW for decoding as soon as possible. i.e. don't wait for the next
27940           frame to start decoding the previous one.
27941
27942 2013-01-22 09:30:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27943
27944         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27945           vc1: fix next POC for new sequence layers.
27946           Fix next POC when a new sequence layer is reached. At this point, we
27947           need to reset any previous reference picture, i.e. non B-frame.
27948
27949 2012-08-02 17:15:26 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
27950
27951         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27952           vc1: port to common GstVaapiDpb interface.
27953           Use GstVaapiDpb interface instead of maintaining our own prev and next
27954           picture pointers. While doing so, try to derive a sensible POC value.
27955           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27956
27957 2013-01-15 17:10:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27958
27959         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
27960           vc1: fix decode_sequence_end() to return success, not EOS.
27961
27962 2013-01-18 17:00:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27963
27964         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27965           decoder: simplify gst_vaapi_decoder_get_surface().
27966           Avoid extraenous branches, i.e. immediately return with success once we
27967           have a decoded frame available.
27968
27969 2013-01-18 16:56:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27970
27971         * gst-libs/gst/vaapi/gstvaapidecoder.c:
27972           decoder: optimize and clean decode_step() up.
27973           Avoid usage of goto. Simplify decode_step() process to first accumulate all
27974           pending buffers into the GstAdapter, and then parse and decode units from
27975           that input adapter. Stop the process once a frame is fully decoded or an
27976           error occurred.
27977
27978 2013-01-18 14:46:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27979
27980         * gst-libs/gst/vaapi/gstvaapidisplay.c:
27981           display: move "vaapi" debug init to libgstvaapi_init_once().
27982
27983 2013-01-18 14:17:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27984
27985         * configure.ac:
27986         * gst-libs/gst/vaapi/Makefile.am:
27987         * gst-libs/gst/vaapi/gstvaapidisplay.c:
27988         * gst-libs/gst/vaapi/gstvaapiversion.h.in:
27989           display: dump gstreamer-vaapi version for debugging purposes.
27990
27991 2013-01-18 14:30:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27992
27993         * tests/Makefile.am:
27994           tests: simple-decoder: fix build with built-in videoutils.
27995           Fix build with built-in videoutils, i.e. when system GStreamer installation
27996           does not know about GstVideoDecoder API.
27997
27998 2013-01-18 10:35:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
27999
28000         * tests/simple-decoder.c:
28001           tests: simple-decoder: flush decoded frames at EOS.
28002           Flush the remaining decoded frames when an end-of-stream is reached.
28003
28004 2013-01-18 10:25:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28005
28006         * tests/simple-decoder.c:
28007           tests: simple-decoder: drop use of GstVaapiVideoMeta.
28008           Don't use GstVaapiVideoMeta since that object is not guaranteed to live
28009           in libgstvaapi forever. Rather, that'd move to plugin elements at some
28010           point.
28011
28012 2013-01-16 13:53:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28013
28014         * tests/simple-decoder.c:
28015           tests: simple-decoder: add benchmark mode.
28016           Add --benchmark option to enable benchmark mode where rendering is not
28017           synchronized with presentation timestamps of the decoded surfaces.
28018
28019 2013-01-16 13:29:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28020
28021         * tests/Makefile.am:
28022         * tests/simple-decoder.c:
28023           tests: simple-decoder: honour framerate from the bitstream.
28024           Try to honour the framerate from the bitstream, or cap the playback to
28025           60 fps by default.
28026
28027 2013-01-15 18:49:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28028
28029         * tests/simple-decoder.c:
28030           tests: simple-decoder: set window size to the surface dimensions.
28031           Set the window size to the decoded surface dimensions, if the user has
28032           not requested the application to run in full-screen mode. Besides, no
28033           effort is made to preserve aspect ratio or to center the video within
28034           the mapped window.
28035
28036 2013-01-15 17:33:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28037
28038         * tests/Makefile.am:
28039         * tests/simple-decoder.c:
28040           tests: add simple decoder application.
28041           Add simple decoder application to show off decoding capabilities from
28042           raw bitstreams, for debugging or performance evaluation purposes.
28043
28044 2013-01-15 17:30:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28045
28046         * tests/Makefile.am:
28047         * tests/codec.c:
28048         * tests/codec.h:
28049           tests: add codec helper utils.
28050           Add helper functions to determine the codec type from a specific file
28051           or utility functions to convert from codec type to GstCaps or from
28052           codec name to codec type.
28053
28054 2013-01-15 17:47:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28055
28056         * tests/output.c:
28057           tests: allow fullscreen mode.
28058           Add new --fullscreen|-f option to create new windows in fullscreen mode.
28059
28060 2013-01-17 18:35:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28061
28062         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28063           h264: implement GstVaapiDecoder::flush() as a DPB flush.
28064
28065 2013-01-17 18:07:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28066
28067         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28068           h264: handle end-of-stream NALU.
28069           Handle <end-of-stream> NAL unit to actually flush any pending picture
28070           from the DPB.
28071
28072 2013-01-17 18:22:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28073
28074         * gst/vaapi/gstvaapidecode.c:
28075           vaapidecode: handle EOS events.
28076           Flush all decoded frames to downstream when EOS is received. This is
28077           performed by implementing GstVideoDecoder::finish() hook.
28078
28079 2013-01-17 18:19:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28080
28081         * gst/vaapi/gstvaapidecode.c:
28082           vaapidecode: split gvd_handle_frame() into decode/push frames.
28083           Split GstVideoDecoder::handle_frame() implementation into two functions:
28084           (i) one for decoding the provided GstVideoCodecFrame and (ii) another one
28085           for purging all decoded frames and submit them downstream.
28086
28087 2013-01-17 18:33:32 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28088
28089         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28090         * gst-libs/gst/vaapi/gstvaapidecoder.h:
28091           decoder: add GstVaapiDecoder::flush() hook.
28092
28093 2013-01-15 17:21:50 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28094
28095         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28096         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28097           decoder: fix check for end-of-stream in raw API mode.
28098           Make sure to immediately return GST_VAAPI_DECODER_STATUS_END_OF_STREAM
28099           if the end-of-stream was already reached at the previous iteration.
28100
28101 2013-01-15 16:55:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28102
28103         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28104           decoder: make decode_step() return once the frame is decoded.
28105           Make sure we always have a free surface left to use for decoding the
28106           current frame. This means that decode_step() has to return once a frame
28107           gets decoded. If the current adapter contains more buffers with valid
28108           frames, they will get parsed and decoded on subsequent iterations.
28109
28110 2013-01-17 15:47:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28111
28112         * ext/codecparsers:
28113           codecparsers: update to gst-vaapi-branch commit b47983a.
28114           8840c2d h264: zero-initialize SPS VUI parameters
28115
28116 2013-01-15 09:21:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28117
28118         * configure.ac:
28119           Bump version for development.
28120
28121 2013-01-15 09:21:08 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28122
28123         * NEWS:
28124         * configure.ac:
28125           0.5.0.
28126
28127 2013-01-14 11:48:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28128
28129         * docs/reference/libs/libs-docs.xml.in:
28130         * docs/reference/libs/libs-sections.txt:
28131         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28132         * gst-libs/gst/vaapi/gstvaapidisplay.c:
28133         * gst-libs/gst/vaapi/gstvaapiprofile.h:
28134           docs: expose new interfaces.
28135
28136 2013-01-14 12:58:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28137
28138         * NEWS:
28139           NEWS: updates.
28140
28141 2013-01-14 10:58:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28142
28143         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28144           dpb: cosmetics (clean-ups).
28145
28146 2013-01-14 10:46:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28147
28148         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28149         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28150         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28151           dpb: port to GstVaapiMiniObject.
28152
28153 2013-01-14 10:21:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28154
28155         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28156         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28157         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28158           dpb: drop GstVaapiDpb2 interface, keep only one class.
28159           Keep only one DPB interface and rename gst_vaapi_dpb2_get_references()
28160           to gst_vaapi_dpb_get_neighbours() so that to retrieve pictures in DPB
28161           around the specified picture POC.
28162
28163 2012-08-02 15:56:54 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28164
28165         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
28166         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
28167         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28168           dpb: rename GstVaapiDpbMpeg2 to GstVaapiDpb2.
28169           Move GstVaapiDpbMpeg2 API to a more generic version that could also be
28170           useful to other decoders that require 2 reference pictures, e.g. VC-1.
28171           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28172
28173 2013-01-11 16:04:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28174
28175         * configure.ac:
28176           Bump version for pre-release.
28177
28178 2013-01-11 15:57:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28179
28180         * NEWS:
28181           NEWS: updates.
28182
28183 2012-07-20 12:36:33 +0200  Holger Kaelberer <holger.k@elberer.de>
28184
28185         * configure.ac:
28186         * gst-libs/gst/vaapi/gstvaapicontext.c:
28187         * gst-libs/gst/vaapi/gstvaapiutils.c:
28188         * gst-libs/gst/vaapi/sysdeps.h:
28189         * tests/test-subpicture.c:
28190           overlay: fix build without advanced GstVideoOverlayFormatFlags.
28191           Check for global-alpha support in GstVideoOverlayComposition API.
28192           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28193
28194 2013-01-04 10:19:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28195
28196         * tests/test-subpicture.c:
28197           tests: add support for global-alpha subpictures.
28198           Add --global-alpha option to test-subpicture.
28199
28200 2013-01-10 13:09:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28201
28202         * tests/Makefile.am:
28203         * tests/test-subpicture.c:
28204           tests: use GstVideoOverlayComposition API for subpicture test.
28205
28206 2013-01-10 11:26:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28207
28208         * tests/Makefile.am:
28209         * tests/test-subpicture.c:
28210           tests: use common decoder helpers for subpicture test.
28211           Use common decoder helpers for subpicture test, thus allowing to decode
28212           sample images in an alternate format.
28213
28214 2013-01-10 11:22:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28215
28216         * tests/Makefile.am:
28217         * tests/decoder.c:
28218         * tests/decoder.h:
28219         * tests/test-decode.c:
28220           tests: add decoder helpers.
28221
28222 2013-01-11 15:19:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28223
28224         * gst-libs/gst/vaapi/gstvaapicontext.c:
28225           overlay: fix ordering of composition layers.
28226           Make sure to maintain the association order of composition layers when
28227           GstVideoOverlayRectangle objects are kept around (cached).
28228
28229 2012-05-15 10:24:08 +0200  Holger Kaelberer <holger.k@elberer.de>
28230
28231         * gst-libs/gst/vaapi/gstvaapicontext.c:
28232           overlay: fix support for global-alpha.
28233           Fix support for global-alpha subpictures. The previous changes brought
28234           the ability to check for GstVideoOverlayRectangle changes by comparing
28235           the underlying pixel buffer pointers. If sequence number and pixel data
28236           did not change, then this is an indication that only the global-alpha
28237           value changed. Now, try to update the underlying VA subpicture global-alpha
28238           value.
28239           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28240
28241 2013-01-11 11:53:05 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28242
28243         * gst-libs/gst/vaapi/gstvaapicontext.c:
28244           overlay: detect render-rect changes.
28245           Don't re-upload VA subpicture if only the render rectangle changed.
28246           Rather deassociate the subpicture and re-associate it with the new
28247           render rectangle.
28248
28249 2013-01-11 11:12:26 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28250
28251         * gst-libs/gst/vaapi/gstvaapicontext.c:
28252           overlay: fix check for pixels buffer change.
28253           A GstVideoOverlayRectangle is created whenever the underlying pixels data
28254           change. However, when global-alpha is supported, it is possible to re-use
28255           the same GstVideoOverlayRectangle but with a change to the global-alpha
28256           value. This process causes a change of sequence number, so we can no longer
28257           check for that.
28258           Still, if sequence numbers did not change, then there was no change in
28259           global-alpha either. So, we need a way to compare the underlying GstBuffer
28260           pointers. There is no API to retrieve the original pixels buffer from
28261           a GstVideoOverlayRectangle. So, we use the following heuristics:
28262           1. Use gst_video_overlay_rectangle_get_pixels_unscaled_argb() with the same
28263           format flags from which the GstVideoOverlayRectangle was created. This
28264           will work if there was no prior consumer of the GstVideoOverlayRectangle
28265           with alternate (non-"native") format flags.
28266           2. In overlay_rectangle_has_changed_pixels(), we have to use the same
28267           gst_video_overlay_rectangle_get_pixels_unscaled_argb() function but
28268           with flags that match the subpicture. This is needed to cope with
28269           platforms that don't support global-alpha in HW, so the gst-video
28270           layer takes care of that and fixes this up with a possibly new
28271           GstBuffer, and hence pixels data (or) in-place by caching the current
28272           global-alpha value applied. So we have to determine the rectangle
28273           was previously used, based on what previous flags were used to
28274           retrieve the ARGB pixels buffer.
28275
28276 2013-01-10 18:42:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28277
28278         * gst-libs/gst/vaapi/gstvaapicontext.c:
28279           overlay: optimize cache at the GstVideoOverlayRectangle level.
28280           We previously assumed that an overlay composition changed if the number
28281           of overlay rectangles in there actually changed, or that the rectangle
28282           was updated, and thus its seqnum was also updated.
28283           Now, we can cope with cases where the GstVideoOverlayComposition grew
28284           by one or a few more overlay rectangles, and the initial overlay rectangles
28285           are kept as is.
28286
28287 2013-01-10 13:41:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28288
28289         * gst-libs/gst/vaapi/gstvaapicontext.c:
28290           overlay: simplify caching of GstVideoOverlayComposition objects.
28291           Create the GPtrArray once in the _init() function and destroy it only
28292           in the _finalize() function. Then use overlay_clear() to remove all
28293           subpicture associations for intermediate updates, don't recreate the
28294           GPtrArray.
28295           Make GstVaapiOverlayRectangle a reference counted object. Also make
28296           sure that overlay_rectangle_new() actually creates and associates the
28297           VA subpicture.
28298
28299 2012-05-15 10:24:08 +0200  Holger Kaelberer <holger.k@elberer.de>
28300
28301         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28302         * gst-libs/gst/vaapi/gstvaapiutils.c:
28303         * gst-libs/gst/vaapi/gstvaapiutils.h:
28304           overlay: add support for global-alpha.
28305           Handle global-alpha from GstVideoOverlayComposition API. Likewise,
28306           the same code path could also work for premultiplied-alpha but this
28307           was not tested.
28308           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28309
28310 2012-05-15 10:24:08 +0200  Holger Kaelberer <holger.k@elberer.de>
28311
28312         * gst-libs/gst/vaapi/gstvaapidisplay.c:
28313         * gst-libs/gst/vaapi/gstvaapidisplay.h:
28314         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
28315         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28316         * gst-libs/gst/vaapi/gstvaapisurface.c:
28317         * tests/image.c:
28318         * tests/test-subpicture.c:
28319           subpicture: add support for global-alpha.
28320           Add the necessary helpers in GstVaapiDisplay to determine whether subpictures
28321           with global alpha are supported or not. Also add accessors in GstVaapiSubpicture
28322           to address this feature.
28323           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28324
28325 2013-01-04 09:41:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28326
28327         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
28328         * gst-libs/gst/vaapi/gstvaapiutils.c:
28329         * gst-libs/gst/vaapi/gstvaapiutils.h:
28330           subpicture: add premultiplied-alpha and global-alpha feature flags.
28331           Add premultiplied-alpha and global-alpha feature flags, along with converters
28332           between VA-API and gstreamer-vaapi definitions. Another round of helpers is
28333           also necessary for GstVideoOverlayComposition API.
28334
28335 2013-01-03 18:02:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28336
28337         * gst-libs/gst/vaapi/gstvaapidisplay.c:
28338           display: allow image/subpicture formats with additional flags.
28339           Introduce new GstVaapiFormatInfo to store the actual GstVaapiImageFormat
28340           and any additional flags needed. Currently, all flags are set to zero.
28341
28342 2013-01-11 13:34:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28343
28344         * gst-libs/gst/codecparsers/Makefile.am:
28345         * gst-libs/gst/video/Makefile.am:
28346         * tests/Makefile.am:
28347           libs: fix build of submodule wrappers.
28348           Make sure to build codecparsers/ and videoutils/ sources against the
28349           newly generated headers when out-of-source builds are used.
28350
28351 2013-01-11 14:11:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28352
28353         * configure.ac:
28354           configure: fix checks for packages installed in non-standard roots.
28355
28356 2013-01-10 10:12:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28357
28358         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
28359           decoder: fix mini object implementation on 64-bit systems.
28360           Use GPOINTER_TO_SIZE() instead of GPOINTER_TO_UINT() while manipulating
28361           pointers. The latter is meant to be 32-bit only, not uintptr_t like size.
28362           Only a gsize can hold all bits of a pointer.
28363           Thanks to Ouping Zhang for spotting this error.
28364
28365 2013-01-09 16:05:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28366
28367         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28368           mpeg2: optimize scan for the end of the frame.
28369           Heuristic: if the second start-code is available, check whether that
28370           one marks the start of a new frame because e.g. this is a sequence
28371           or picture header. This doesn't save much, since we already cache the
28372           results.
28373
28374 2013-01-09 13:44:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28375
28376         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28377           mpeg2: optimize scan for start codes.
28378           Accelerate scan for start codes by skipping up to 3 bytes per iteration.
28379           A start code prefix is defined by the following bytes: 00 00 01. Thus,
28380           for any group of 3 bytes (xx yy zz), we have the following possible cases:
28381           1. If zz != 1, this cannot be a start code, then skip 3 bytes;
28382           2. If yy != 0, this cannot be a start code, then skip 2 bytes;
28383           3. If xx != 0 or zz != 1, this cannot be a start code, then skip 1 byte;
28384           4. xx == 00, yy == 00, zz == 1, we have match!
28385           This algorithm requires to peek bytes from the adapter. This increases the
28386           amount of bytes copied to a temporary buffer, but this process is much faster
28387           than scanning for all the bytes and using shift/masks. So, overall, this is
28388           a win.
28389
28390 2013-01-08 16:41:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28391
28392         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28393           mpeg2: drop useless gst_adapter_peek().
28394           Drop useless gst_adapter_peek() since the returned buffer was not used
28395           and this could incur superfluous memcpy().
28396
28397 2013-01-07 16:07:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28398
28399         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28400           mpeg2: cosmetics: move parse_slice() down.
28401
28402 2013-01-07 15:24:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28403
28404         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28405           mpeg2: avoid too many allocations of parser info objects.
28406           Move parsing back to decoding step, but keep functions separate for now.
28407           This is needed for future optimizations that may introduce some meta data
28408           for parsed info attached to codec frames.
28409
28410 2013-01-07 14:04:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28411
28412         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28413         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28414           decoder: decoder units are no longer dynamically allocated objects.
28415
28416 2013-01-07 13:59:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28417
28418         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28419         * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28420         * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28421           decoder: optimize pre-allocation of decoder units.
28422           Optimize pre-allocation of decoder units, thus avoiding un-necessary
28423           memory reallocations. The heuristic used is that we could have around
28424           one slice unit per macroblock line.
28425
28426 2013-01-07 13:41:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28427
28428         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28429         * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28430         * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28431         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28432         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28433           decoder: use an array of units instead of a single-linked list.
28434           Use a GArray to hold decoder units in a frame, instead of a single-linked
28435           list. This makes 'append' calls faster, but not that much. At least, this
28436           makes things clearer.
28437
28438 2013-01-07 11:13:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28439
28440         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28441         * gst-libs/gst/vaapi/gstvaapidecoder.h:
28442         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28443         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28444         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28445         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28446         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28447         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28448         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28449           decoder: refactor decoder unit API.
28450           Allocate decoder unit earlier in the main parse() function and don't
28451           delegate this task to derived classes. The ultimate purpose is to get
28452           rid of dynamic allocation of decoder units.
28453
28454 2013-01-07 10:48:27 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28455
28456         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28457           mpeg2: introduce parser info instead of MPEG-2 specific decoder unit.
28458           Use a new GstVaapiParserInfoMpeg2 data structure instead of deriving
28459           from GstVaapiDecoderUnit for MPEG-2 specific parser information.
28460
28461 2013-01-07 10:22:54 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28462
28463         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28464           h264: introduce parser info instead of H.264 specific decoder unit.
28465           Use a new GstVaapiParserInfoH264 data structure instead of deriving
28466           from GstVaapiDecoderUnit for H.264 specific parser information.
28467
28468 2013-01-05 12:33:06 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28469
28470         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28471           h264: set default values for some header fields.
28472           The SPS, PPS and slice headers are not fully zero-initialized in the
28473           codecparsers/ library. Rather, the standard upstream behaviour is to
28474           initialize only certain syntax elements with some inferred values if
28475           they are not present in the bitstream.
28476           At the gstreamer-vaapi decoder level, we need to further initialize
28477           certain syntax elements with some sensible default values so that to
28478           not complicate VA drivers that just pass those verbatim to the HW,
28479           and also avoid an memset() of the whole decoder unit.
28480           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28481           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28482
28483 2013-01-06 19:05:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28484
28485         * ext/codecparsers:
28486           codecparsers: update to gst-vaapi-rebased commit b47983a.
28487           b47983a h264: add inferred value for slice_beta_offset_div2
28488
28489 2013-01-05 17:55:47 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28490
28491         * gst/vaapi/gstvaapidecode.c:
28492         * gst/vaapi/gstvaapidownload.c:
28493         * gst/vaapi/gstvaapipluginbuffer.c:
28494         * gst/vaapi/gstvaapipluginbuffer.h:
28495         * gst/vaapi/gstvaapipostproc.c:
28496         * gst/vaapi/gstvaapisink.c:
28497         * gst/vaapi/gstvaapiupload.c:
28498         * gst/vaapi/gstvaapiuploader.c:
28499           plugins: cope with new GstVaapiVideoMeta API.
28500           Update plugin elements with the new GstVaapiVideoMeta API.
28501           This also fixes support for subpictures/overlay because GstVideoDecoder
28502           generates a sub-buffer from the GstVaapiVideoBuffer. So, that sub-buffer
28503           is marked as read-only. However, when comes in the textoverlay element
28504           for example, it checks whether the input buffer is writable. Since that
28505           buffer read-only, then a new GstBuffer is created. Since gst_buffer_copy()
28506           does not preserve the parent field, the generated buffer in textoverlay
28507           is not exploitable because we lost all VA specific information.
28508           Now, with GstVaapiVideoMeta information attached to a standard GstBuffer,
28509           all information are preserved through gst_buffer_copy() since the latter
28510           does copy metadata (qdata in this case).
28511
28512 2013-01-05 17:37:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28513
28514         * gst-libs/gst/vaapi/Makefile.am:
28515         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
28516         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
28517         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
28518         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
28519         * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
28520         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
28521           videobuffer: wrap video meta into a surface buffer.
28522           Make GstVaapiVideoBuffer a simple wrapper for video meta. This buffer is
28523           no longer necessary but for compatibility with GStreamer 0.10 APIs or users
28524           expecting a GstSurfaceBuffer like Clutter.
28525
28526 2013-01-05 08:31:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28527
28528         * gst-libs/gst/vaapi/Makefile.am:
28529         * gst-libs/gst/vaapi/gstvaapivideometa.c:
28530         * gst-libs/gst/vaapi/gstvaapivideometa.h:
28531           videobuffer: add video meta information.
28532           Add new GstVaapiVideoMeta object that holds all information needed to
28533           convey gst-vaapi specific data as a GstBuffer.
28534
28535 2013-01-03 13:10:33 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28536
28537         * gst/vaapi/gstvaapidecode.c:
28538           vaapidecode: fix calculation of the time-out value.
28539           Fix calculation of the time-out value for cases where no VA surface is
28540           available for decoding. In this case, we need to wait until downstream
28541           sink consumed at least one surface. The time-out was miscalculated as
28542           it was always set to <current-time> + one second, which is not suitable
28543           for streams with larger gaps.
28544
28545 2013-01-03 13:05:47 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28546
28547         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28548           decoder: always use the calculated presentation timestamp.
28549           Use PTS value computed by the decoder, which could also be derived from
28550           the GstVideoCodecFrame PTS. This makes it possible to fix up the PTS if
28551           the original one was miscomputed or only represented a DTS instead.
28552
28553 2013-01-02 17:33:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28554
28555         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28556           h264: don't create sub-buffer for slice data.
28557
28558 2013-01-03 11:16:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28559
28560         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28561           decoder: create new context when encoded resolution changes.
28562           Create a new VA context if the encoded surface size changes because we
28563           need to keep the underlying surface pool until the last one was released.
28564           Otherwise, either of the following cases could have happened: (i) release
28565           a VA surface to an inexistent pool, or (ii) release VA surface to an
28566           existing surface pool, but with different size.
28567
28568 2013-01-02 17:23:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28569
28570         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28571           mpeg2: don't create sub-buffer for slice data.
28572           Avoid creating a GstBuffer for slice data. Rather, directly use the codec
28573           frame input buffer data. This is possible because the codec frame is valid
28574           until end_frame() where we submit the VA buffers for decoding. Anyway, the
28575           slice data buffer is copied into the VA buffer when it is created.
28576
28577 2013-01-02 14:45:50 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28578
28579         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28580           mpeg2: minor clean-ups.
28581           Drop explicit initialization of most fields that are implicitly set to
28582           zero. Remove some useless checks for NULL pointers.
28583
28584 2013-01-02 14:18:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28585
28586         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28587           mpeg2: optimize scan for the second start code.
28588           Optimize scan for the second start code, on the next parse() call so that
28589           to avoid scanning again earlier bytes where we didn't find any start code.
28590
28591 2013-01-02 14:10:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28592
28593         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28594           mpeg2: use sequence_display_extension() to compute PAR.
28595           Also compute pixel-aspect-ratio from sequence_display_extension(),
28596           should it exist in the bitstream.
28597
28598 2013-01-02 14:02:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28599
28600         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28601           mpeg2: handle sequence_display_extension().
28602
28603 2012-12-27 15:18:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28604
28605         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28606           mpeg2: implement {start,end}_frame() hooks.
28607           Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28608           that to create new VA context earlier and submit VA pictures to the
28609           HW for decoding as soon as possible. i.e. don't wait for the next
28610           frame to start decoding the previous one.
28611
28612 2012-12-27 14:54:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28613
28614         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28615           mpeg2: parse slice() header earlier.
28616           Parse slice() header and first macroblock position earlier in _parse()
28617           function instead of waiting for the _decode() stage. This doesn't change
28618           anything but readability.
28619
28620 2012-12-27 14:41:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28621
28622         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28623           mpeg2: add codec specific decoder unit.
28624           Introduce new GstVaapiDecoderUnitMpeg2 object, which holds the standard
28625           GstMpegVideoPacket and additional parsed header info. Besides, we now
28626           parse as early as in the _parse() function so that to avoid un-necessary
28627           creation of sub-buffers in _decode() for video packets that are not slices.
28628
28629 2012-12-27 18:52:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28630
28631         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28632         * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28633         * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28634         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28635           decoder: introduce lists of units to decode before/after frame.
28636           Theory of operations: all units marked as "slice" are moved to the "units"
28637           list. Since this list only contains slice data units, the prev_slice pointer
28638           was removed. Besides, we now maintain two extra lists of units to be decoded
28639           before or after slice data units.
28640           In particular, all units in the "pre_units" list will be decoded before
28641           GstVaapiDecoder::start_frame() is called and units in the "post_units"
28642           list will be decoded after GstVaapiDecoder::end_frame() is called.
28643
28644 2013-01-02 16:06:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28645
28646         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28647         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28648           decoder: drop useless checks for codec objects.
28649           Codec objects are used internally only and they are bound to be created
28650           with a valid GstVaapiDecoder object.
28651
28652 2012-12-27 10:35:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28653
28654         * gst/vaapi/gstvaapidecode.c:
28655           vaapidecode: use GST_ERROR to print error messages.
28656
28657 2012-12-27 09:55:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28658
28659         * gst/vaapi/gstvaapidecode.c:
28660           vaapidecode: avoid double release of frame on error.
28661           Don't call gst_video_decoder_drop_frame() if gst_video_decoder_finish_frame()
28662           was already called before and it returned an error. In that case, we were
28663           releasing the frame again, thus leading to a "double-free" condition.
28664
28665 2012-12-21 14:29:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28666
28667         * .gitmodules:
28668         * autogen.sh:
28669         * configure.ac:
28670         * ext/Makefile.am:
28671         * ext/videoutils:
28672         * gst-libs/gst/Makefile.am:
28673         * gst-libs/gst/vaapi/Makefile.am:
28674         * gst-libs/gst/video/Makefile.am:
28675         * gst/vaapi/Makefile.am:
28676           Add videoutils submodule for GstVideoDecoder APIs.
28677
28678 2012-12-18 16:36:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28679
28680         * configure.ac:
28681           configure: check for GstVideoDecoder API.
28682           GstVideoDecoder API is part of an unreleased GStreamer 0.10 stack. In particular,
28683           this is only available in git 0.10 branch or GStreamer >= 1.0 stack. Interested
28684           parties may either use upstream git 0.10 branch or backport the necessary support
28685           for GstVideoDecoder API, thus including helper tools like GstVideoCodecFrame et al.
28686
28687 2012-12-18 16:21:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28688
28689         * docs/reference/libs/libs.core.types:
28690           docs: remove obsolete gst_vaapi_surface_proxy_get_type().
28691           GstVaapiSurfaceProxy is no longer based on the GType system.
28692
28693 2012-12-18 16:17:22 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28694
28695         * docs/reference/libs/libs-sections.txt:
28696           docs: fix entries for GstVaapiSurfaceProxy.
28697
28698 2012-12-18 15:29:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28699
28700         * NEWS:
28701           NEWS: updates.
28702
28703 2012-12-18 15:15:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28704
28705         * configure.ac:
28706         * gst-libs/gst/vaapi/Makefile.am:
28707           Bump library major version.
28708           Increase library major so that to cope with API/ABI incompatible changes
28709           since 0.4.x series and avoid user issues.
28710
28711 2012-12-13 16:02:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28712
28713         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28714           surfaceproxy: minor clean-ups.
28715
28716 2012-12-13 15:51:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28717
28718         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28719         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
28720         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
28721           surfaceproxy: drop accessors to obsolete attributes.
28722           Make GstVaapiSurfaceProxy only a thin wrapper around a VA context and a
28723           VA surface. i.e. drop any other attribute like timestamp, duration,
28724           interlaced or top-field-first.
28725
28726 2012-12-13 15:34:10 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28727
28728         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28729         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28730         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
28731         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28732         * gst/vaapi/gstvaapidecode.c:
28733           decoder: maintain decoded frames as GstVideoCodecFrame objects.
28734           Maintain decoded surfaces as GstVideoCodecFrame objects instead of
28735           GstVaapiSurfaceProxy objects. The latter will tend to be reduced to
28736           the strict minimum: a context and a surface.
28737
28738 2012-12-13 14:30:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28739
28740         * gst/vaapi/gstvaapidecode.c:
28741           vaapidecode: output all decoded frames as soon as possible.
28742           Make sure to push all decoded frames downstream as soon as possible.
28743           This makes sure we don't need to wait for a new frame to be ready to
28744           be decoded before receiving new decoded frames.
28745           This also separates the decode process and the output process. The latter
28746           could be moved to a specific GstTask later on.
28747
28748 2012-12-13 14:27:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28749
28750         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28751         * gst-libs/gst/vaapi/gstvaapidecoder.h:
28752           decoder: add gst_vaapi_decoder_get_frame() API.
28753           Add new gst_vaapi_decoder_get_frame() function meant to be used with
28754           gst_vaapi_decoder_decode(). The purpose is to return the next decoded
28755           frame as a GstVideoCodecFrame and the associated GstVaapiSurfaceProxy
28756           as the user-data object.
28757
28758 2012-12-13 15:47:27 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28759
28760         * gst/vaapi/gstvaapipostproc.c:
28761           vaapipostproc: use GstBuffer flags for TFF.
28762           Determine whether the buffer represents the top-field only by checking for
28763           the GST_VIDEO_BUFFER_TFF flag instead of relying on the GstVaapiSurfaceProxy
28764           flag. Also trust "interlaced" caps to determine whether the input frame
28765           is interleaved or not.
28766
28767 2012-12-13 13:27:33 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28768
28769         * gst/vaapi/gstvaapipostproc.c:
28770           vaapipostproc: handle video sub-buffers.
28771           Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28772           for non raw YUV cases. Make sure vaapipostproc now understands those buffers.
28773
28774 2012-12-18 14:57:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28775
28776         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28777           h264: optimize initialization process of decoder units.
28778           Decoder units were zero-initialized, including the SPS/PPS/slice headers.
28779           The latter don't require zero-initialization since the codecparsers/ lib
28780           will do so for key variables already. This is not a great value per se but
28781           at least it makes it possible to check whether the default initialization
28782           decisions made in the codecparsers/ lib were right or not.
28783           This can be reverted if this exposes too many issues.
28784
28785 2012-12-13 11:48:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28786
28787         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28788           h264: minor clean-ups.
28789           Drop explicit initialization of most fields that are implicitly set to
28790           zero. Drop helper macros for casting to GstVaapiPictureH264 or
28791           GstVaapiFrameStore. Also remove some useless checks for NULL pointers.
28792
28793 2012-12-07 17:45:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28794
28795         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28796           h264: drop GstVaapiSliceH264 object.
28797           Use standard GstVaapiSlice object from now on since we already have
28798           parsed and recorded the slice headers (GstH264SliceHdr decode units).
28799
28800 2012-12-13 10:47:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28801
28802         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28803           h264: detect new pictures from decode-units.
28804           Update is_new_picture() to cope with GstVaapiDecoderUnitH264, instead
28805           of assuming frame boundaries when first_mb_in_slice is zero.
28806
28807 2012-12-13 10:21:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28808
28809         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28810           h264: implement {start,end}_frame() hooks.
28811           Implement GstVaapiDecoder.start_frame() and end_frame() semantics so
28812           that to create new VA context earlier and submit VA pictures to the
28813           HW for decoding as soon as possible. i.e. don't wait for the next
28814           frame to start decoding the previous one.
28815
28816 2012-12-12 18:33:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28817
28818         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28819           h264: optimize scan for the second start code.
28820           Optimize scan for the second start code, on the next parse() call so that
28821           to avoid scanning again earlier bytes where we didn't find any start code.
28822
28823 2012-12-06 17:25:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28824
28825         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28826           h264: add codec specific decoder unit.
28827           Introduce new GstVaapiDecoderUnitH264 object, which holds the standard
28828           NAL unit header (GstH264NalUnit) and additional parsed header info.
28829           Besides, we now parse headers as early as in the _parse() function so
28830           that to avoid un-necessary creation of sub-buffers in _decode() for
28831           NAL units that are not slices.
28832           This is a performance win by ~+1.1% only.
28833
28834 2012-12-04 11:01:42 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28835
28836         * gst/vaapi/gstvaapisink.c:
28837           vaapisink: handle sub video-buffers.
28838           Intermediate elements may produce a sub-buffer from a valid GstVaapiVideoBuffer
28839           for non raw YUV cases. Make sure vaapisink now understands those buffers.
28840
28841 2012-12-12 15:22:32 +0100  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28842
28843         * gst/vaapi/gstvaapidecode.c:
28844           vaapidecode: use gst_vaapi_decoder_get_codec_state().
28845           Directly use the GstVideoCodecState associated with the VA decoder
28846           instead of parsing caps again.
28847           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28848           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28849
28850 2012-12-04 14:53:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28851
28852         * gst/vaapi/gstvaapidecode.c:
28853           vaapidecode: use more standard helpers.
28854           Use g_clear_object() [glib >= 2.28] and gst_caps_replace() helper functions
28855           in more places.
28856
28857 2012-12-04 14:45:29 +0100  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28858
28859         * gst/vaapi/gstvaapidecode.c:
28860         * gst/vaapi/gstvaapidecode.h:
28861           vaapidecode: move to GstVideoDecoder base class.
28862           Make vaapidecode derive from the standard GstVideoDecoder base element
28863           class. This simplifies the code to the strict minimum for the decoder
28864           element and makes it easier to port to GStreamer 1.x API.
28865           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28866           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28867
28868 2012-12-06 14:02:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28869
28870         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
28871           jpeg: initial port to new GstVaapiDecoder API
28872
28873 2012-12-06 14:02:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28874
28875         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28876           vc1: initial port to new GstVaapiDecoder API
28877
28878 2012-12-06 14:02:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28879
28880         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28881           h264: initial port to new GstVaapiDecoder API
28882
28883 2012-12-17 09:47:20 -0800  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28884
28885         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
28886           mpeg4: initial port to new GstVaapiDecoder API
28887
28888 2012-12-06 14:01:46 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28889
28890         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
28891           mpeg2: initial port to new GstVaapiDecoder API.
28892
28893 2012-12-12 15:09:21 +0100  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28894
28895         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28896         * gst-libs/gst/vaapi/gstvaapidecoder.h:
28897         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28898         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
28899         * gst-libs/gst/vaapi/gstvaapiprofile.c:
28900         * gst-libs/gst/vaapi/gstvaapiprofile.h:
28901           decoder: use GstVideoCodecState.
28902           Use standard GstVideoCodecState throughout GstVaapiDecoder and expose
28903           it with a new gst_vaapi_decoder_get_codec_state() function. This makes
28904           it possible to drop picture size (width, height) information, framerate
28905           (fps_n, fps_d) information, pixel aspect ratio (par_n, par_d) information,
28906           and interlace mode (is_interlaced field).
28907           This is a new API with backwards compatibility maintained. In particular,
28908           gst_vaapi_decoder_get_caps() is still available.
28909           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
28910           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28911
28912 2012-12-12 13:44:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28913
28914         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28915         * gst-libs/gst/vaapi/gstvaapidecoder.h:
28916         * tests/test-decode.c:
28917         * tests/test-subpicture.c:
28918           decoder: update gst_vaapi_decoder_get_surface() semantics.
28919           Align gst_vaapi_decoder_get_surface() semantics with the rest of the
28920           API. That is, return a GstVaapiDecoderStatus and the decoded surface
28921           as a handle to GstVaapiSurfaceProxy in parameter.
28922           This is an API/ABI change.
28923
28924 2012-12-07 16:40:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28925
28926         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28927           decoder: use standard helper functions.
28928           Use g_clear_object(), gst_buffer_replace() and gst_caps_replace()
28929           whenever necessary.
28930
28931 2012-11-29 15:06:00 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28932
28933         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28934         * gst-libs/gst/vaapi/gstvaapidecoder.h:
28935         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
28936           decoder: expose new parse/decode API.
28937           Introduce new decoding process whereby a GstVideoCodecFrame is created
28938           first. Next, input stream buffers are accumulated into a GstAdapter,
28939           that is then passed to the _parse() function. The GstVaapiDecoder object
28940           accumulates all parsed units and when a complete frame or field is
28941           detected, that GstVideoCodecFrame is passed to the _decode() function.
28942           Ultimately, the caller receives a GstVaapiSurfaceProxy if decoding
28943           process was successful.
28944
28945 2012-12-13 10:20:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28946
28947         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28948         * gst-libs/gst/vaapi/gstvaapidecoder.h:
28949           decoder: add {start,end}_frame() hooks.
28950           The start_frame() hook is called prior to traversing all decode-units
28951           for decoding. The unit argument represents the first slice in the frame.
28952           Some codecs (e.g. H.264) need to wait for the first slice in order to
28953           determine the actual VA context parameters.
28954
28955 2012-12-06 13:57:42 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28956
28957         * gst-libs/gst/vaapi/gstvaapidecoder.c:
28958         * gst-libs/gst/vaapi/gstvaapidecoder.h:
28959         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
28960           decoder: add new GstVaapiDecoder API.
28961           Split decoding process into two steps: (i) parse incoming bitstreams
28962           into simple decoder-units until the frame or field is complete; and
28963           (ii) decode the whole frame or field at once.
28964           This is an ABI change.
28965
28966 2012-12-05 10:51:41 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28967
28968         * gst-libs/gst/vaapi/Makefile.am:
28969         * gst-libs/gst/vaapi/gstvaapidecoder_frame.c:
28970         * gst-libs/gst/vaapi/gstvaapidecoder_frame.h:
28971           decoder: add new "decoder-frame" object.
28972           Introduce a new GstVaapiDecoderFrame that is just a list of decoder units
28973           (GstVaapiDecoderUnit objects) that constitute a frame. This object is just
28974           an extension to GstVideoCodecFrame for VA decoder purposes. It is available
28975           as the user-data member element.
28976           This is a libgstvaapi internal object.
28977
28978 2012-12-06 09:44:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28979
28980         * gst-libs/gst/vaapi/Makefile.am:
28981         * gst-libs/gst/vaapi/gstvaapidecoder_unit.c:
28982         * gst-libs/gst/vaapi/gstvaapidecoder_unit.h:
28983           decoder: add new "decoder-unit" object.
28984           Introduce GstVaapiDecoderUnit which represents a fragment of the source
28985           stream to be decoded. For instance, a decode-unit will be a NAL unit for
28986           H.264 streams, an EBDU for VC-1 streams, and a video packet for MPEG-2
28987           streams.
28988           This is a libgstvaapi internal object.
28989
28990 2012-12-03 14:09:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28991
28992         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
28993           Port GstVaapiFrameStore to GstVaapiMiniObject.
28994
28995 2012-12-03 11:19:08 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
28996
28997         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
28998         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
28999         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29000         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29001         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29002           Port codec objects to GstVaapiMiniObject.
29003
29004 2012-12-03 13:46:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29005
29006         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29007         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29008         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29009         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29010         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29011         * gst/vaapi/gstvaapidecode.c:
29012         * gst/vaapi/gstvaapipluginbuffer.c:
29013         * tests/test-decode.c:
29014         * tests/test-subpicture.c:
29015           surfaceproxy: port to GstVaapiMiniObject.
29016           GstVaapiSurfaceProxy does not use any particular functionality from
29017           GObject. Actually, it only needs a basic object type with reference
29018           counting.
29019           This is an API and ABI change.
29020
29021 2012-11-30 17:25:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29022
29023         * gst-libs/gst/vaapi/Makefile.am:
29024         * gst-libs/gst/vaapi/gstvaapiminiobject.c:
29025         * gst-libs/gst/vaapi/gstvaapiminiobject.h:
29026           Add GstVaapiMiniObject.
29027           Introduce a new reference counted object that is very lightweight and
29028           also provides flags and user-data functionalities. Initialization and
29029           finalization times are reduced by up to a factor 5x vs GstMiniObject
29030           from GStreamer 0.10 stack.
29031           This is a libgstvaapi internal object.
29032
29033 2012-12-17 02:51:17 -0800  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29034
29035         * tests/Makefile.am:
29036         * tests/test-decode.c:
29037         * tests/test-mpeg4.c:
29038         * tests/test-mpeg4.h:
29039           tests: add test for MPEG-4:2 decoding.
29040
29041 2012-12-17 04:42:29 -0800  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29042
29043         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29044           h264: initialize VA context before allocating the first slice.
29045           Fix decode_slice() to ensure a VA context exists prior to creating a
29046           new GstVaapiSliceH264, which invokes vaCreateBuffer() with some VA
29047           context ID. i.e. the latter was not initialized, thus causing failures
29048           on Cedar Trail for example.
29049
29050 2012-12-05 09:15:32 +0800  Zhao Halley <halley.zhao@intel.com>
29051
29052         * configure.ac:
29053           configure: install plugin elements in GST_PLUGIN_PATH, if set.
29054           If GST_PLUGIN_PATH environment variable exists and points to a valid
29055           directory, then use it as the system installation path for gst-vaapi
29056           plugin elements.
29057           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29058
29059 2012-12-17 14:27:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29060
29061         * configure.ac:
29062           configure: downgrade glib required version to 2.28.
29063
29064 2012-12-17 09:41:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29065
29066         * gst-libs/gst/vaapi/glibcompat.h:
29067         * gst/vaapi/gstvaapi.c:
29068           libs: fix compatibility with glib 2.28.
29069           Always prefer non deprecated APIs by default and provide compatibility
29070           glue for older glib versions when necessary.
29071
29072 2012-12-17 10:10:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29073
29074         * gst-libs/gst/vaapi/gstvaapidisplay.c:
29075         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
29076         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
29077         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29078           libs: use glib >= 2.32 semantics for mutexes.
29079           Use glib >= 2.32 semantics for GMutex and GRecMutex wrt. initialization
29080           and termination. Basically, the new mutex objects can be used as static
29081           mutex objects from the deprecated APIs, e.g. GStaticMutex and GStaticRecMutex.
29082
29083 2012-12-17 04:15:53 -0800  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29084
29085         * gst-libs/gst/vaapi/Makefile.am:
29086           libs: only export gst_vaapi_*() symbols.
29087           This fixes symbol clashes between the gst-vaapi built-in codecparsers/
29088           library and the system-provided one, mainly used by videoparses/. Now,
29089           only symbols with the gst_vaapi_* prefix will be exported, if they are
29090           not marked as "hidden" to libgstvaapi.
29091
29092 2012-11-20 18:21:41 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29093
29094         * gst/vaapi/gstvaapiuploader.c:
29095           vaapiupload: reset direct-rendering to zero when changing caps.
29096           Make sure to reset direct-rendering flag to zero when caps are changed,
29097           and only derive it to one when the next checks succeed.
29098
29099 2012-11-20 14:42:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29100
29101         * gst/vaapi/gstvaapiupload.c:
29102           vaapiupload: fix sink caps to report the supported set of YUV caps.
29103           Try to allocate the GstVaapiUploader helper object prior to listing the
29104           supported image formats. Otherwise, only a single generic caps is output
29105           with no particular pixel format referenced in there.
29106
29107 2012-11-20 14:32:40 +0100  Zhao Halley <halley.zhao@intel.com>
29108
29109         * gst/vaapi/gstvaapiupload.c:
29110         * gst/vaapi/gstvaapiupload.h:
29111           vaapiupload: use new GstVaapiUploader helper.
29112           Use GstVaapiUploader helper that automatically handles direct rendering
29113           mode, thus making the "direct-rendering" property obsolete and hence it
29114           is now removed.
29115           The "direct-rendering" level 2, i.e. exposing VA surface buffers, was never
29116           really well supported and it could actually trigger degraded performance.
29117           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29118
29119 2012-11-20 15:50:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29120
29121         * gst/vaapi/gstvaapisink.c:
29122         * gst/vaapi/gstvaapiuploader.c:
29123         * gst/vaapi/gstvaapiuploader.h:
29124           vaapisink: compute and expose the supported set of YUV caps.
29125           Make vaapisink expose only the set of supported caps for raw YUV buffers.
29126           Add gst_vaapi_uploader_get_caps() helper function to determine the set
29127           of supported YUV caps as source (for images). This function actually
29128           tries to zero and upload each image to a 64x64 test surface. Of course,
29129           this relies on VA drivers to not claim success if vaPutImage() is not
29130           correctly supported.
29131
29132 2012-11-20 14:28:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29133
29134         * NEWS:
29135         * gst/vaapi/Makefile.am:
29136         * gst/vaapi/gstvaapisink.c:
29137         * gst/vaapi/gstvaapisink.h:
29138         * gst/vaapi/gstvaapiuploader.c:
29139         * gst/vaapi/gstvaapiuploader.h:
29140           vaapisink: add support for raw YUV buffers.
29141           Add new GstVaapiUploader helper to upload raw YUV buffers to VA surfaces.
29142           It is up to the caller to negotiate source caps (for images) and output
29143           caps (for surfaces). gst_vaapi_uploader_has_direct_rendering() is available
29144           to help decide between the creation of a GstVaapiVideoBuffer or a regular
29145           GstBuffer on sink pads.
29146           Signed-off-by: Zhao Halley <halley.zhao@intel.com>
29147           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29148
29149 2012-11-20 14:36:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29150
29151         * gst-libs/gst/vaapi/gstvaapiimage.c:
29152           image: fix GstVaapiImage map and unmap.
29153           Fix gst_vaapi_image_map() to return TRUE and the GstVaapiImageRaw
29154           structure correctly filled in if the image was already mapped.
29155           Likewise, make gst_vaapi_image_unmap() return TRUE if the image
29156           was already unmapped.
29157
29158 2012-10-30 13:15:45 +0800  Wind Yuan <feng.yuan@intel.com>
29159
29160         * NEWS:
29161         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29162           videobuffer: fix memory leak for surface and image.
29163           Fix reference leak of surface and image in GstVaapiVideoBuffer wrapper,
29164           thus resulting on actual memory leak of GstVaapiImage when using them
29165           for downloads/uploads from VA surfaces and more specifically surfaces
29166           when the pipeline is shutdown. i.e. vaTerminate() was never called
29167           because the resources were not unreferenced, and thus not deallocated
29168           in the end.
29169           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29170
29171 2012-11-19 10:04:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29172
29173         * NEWS:
29174           NEWS: updates.
29175
29176 2012-11-16 18:00:10 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29177
29178         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29179           h264: fix picture size in macroblocks.
29180           The picture size signalled by sps->{width,height} is the actual size with
29181           cropping applied, not the original size derived from pic_width_in_mbs_minus1
29182           and pic_height_in_map_units_minus1. VA driver expects that original size,
29183           uncropped.
29184           There is another issue pending: frame cropping information needs to be
29185           taken care of.
29186
29187 2012-11-16 16:18:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29188
29189         * gst-libs/gst/codecparsers/Makefile.am:
29190           codecparsers: always build parserutils first.
29191           Fix commit 18245b4 so that to link and build parserutils.[ch] first.
29192           This is needed since that's the common dependency for actual codec
29193           parsers (gstvc1parser.c for instance).
29194
29195 2012-11-15 17:50:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29196
29197         * gst-libs/gst/codecparsers/Makefile.am:
29198           codecparsers: always build the VC-1 parser library.
29199           ... this is useful to make sure pixel-aspect-ratio and framerate
29200           information are correctly parsed since we have no means to detect
29201           that at configure time.
29202
29203 2012-11-08 11:40:47 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29204
29205         * configure.ac:
29206         * gst-libs/gst/codecparsers/Makefile.am:
29207         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29208           mpeg2: fix PAR calculation from commit bd11bae.
29209           Invoke gst_mpeg_video_finalise_mpeg2_sequence_header() to get the
29210           correct PAR values. While doing so, require a newer version of the
29211           bitstream parser library.
29212           Note: it may be necessary to also parse the Sequence_Display_Extension()
29213           header.
29214           Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
29215           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29216
29217 2012-11-15 15:00:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29218
29219         * gst-libs/gst/vaapi/Makefile.am:
29220           Fix build with the GNU gold linker.
29221           In particular, fix libgstvaapi-glx DSO dependencies to include libgstbase
29222           and libgstvideo libs, e.g. for gst_video_buffer_get_overlay_composition().
29223
29224 2012-11-02 18:18:37 +0000  Rob Bradford <rob@linux.intel.com>
29225
29226         * configure.ac:
29227         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29228         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29229         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29230           wayland: port to 1.0 version of the protocol.
29231           This patch updates to relect the 1.0 version of the protocol. The main
29232           changes are the switch to wl_registry for global object notifications
29233           and the way that the event queue and file descriptor is processed.
29234           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29235
29236 2012-11-14 19:22:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29237
29238         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29239           h264: fix incorrect integration of previous commit (4d31e1e).
29240           git am got confused somehow, though the end result doesn't change at
29241           all since we require both SPS and PPS to be parsed prior to decoding
29242           the first slice.
29243
29244 2012-11-14 18:40:47 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29245
29246         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29247           h264: start decoding slices after first SPS/PPS activation.
29248           Only start decoding slices when at least one SPS and PPS got activated.
29249           This fixes cases when a source represents a substream of another stream
29250           and no SPS and PPS was inserted before the first slice of the generated
29251           substream.
29252
29253 2012-11-14 14:25:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29254
29255         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29256           h264: fix VAPictureParameterBufferH264.ReferenceFrames[] construction.
29257           ... for interlaced streams. The short_ref[] and long_ref[] arrays may
29258           contain up to 32 fields but VA ReferenceFrames[] array expects up to
29259           16 reference frames, thus including both fields.
29260
29261 2012-11-14 10:27:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29262
29263         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29264           h264: fix interlaced stream decoding with MMCO.
29265           Fix decoding of interlaced streams when adaptive_ref_pic_marking_mode_flag
29266           is equal to 1, i.e. when memory management control operations are used. In
29267           particular, when field_pic_flag is set to 0, the new reference flags shall
29268           be applied to both fields.
29269
29270 2012-11-13 17:14:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29271
29272         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29273           h264: add initial support for interlaced streams.
29274           Decoded frames are only output when they are complete, i.e. when both
29275           fields are decoded. This also means that the "interlaced" caps is not
29276           propagated to vaapipostproc or vaapisink elements. Another limitation
29277           is that interlaced bitstreams with MMCO are unlikely to work.
29278
29279 2012-11-13 16:35:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29280
29281         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29282           h264: split remove_reference_at() into finer units.
29283           Split remove_reference_at() into a function that actually removes the
29284           specified entry from the short-term or long-term reference picture array,
29285           and a function that sets reference flags to the desired value, possibly
29286           zero. The latters marks the picture as "unused for reference".
29287
29288 2012-10-23 14:04:22 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29289
29290         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
29291           decoder: fix gst_vaapi_picture_new_field() object type.
29292           Fix gst_vaapi_picture_new_field() to preserve the original picture type.
29293           e.g. gst_vaapi_picture_new_field() with a GstVaapiPictureH264 argument
29294           shall generate a GstVaapiPictureH264 object.
29295
29296 2012-11-13 14:04:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29297
29298         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29299           h264: add picture structure for reference picture marking process.
29300           Introduce new `structure' field to the H.264 specific picture structure
29301           so that to simplify the reference picture marking process. That local
29302           picture structure is derived from the original picture structure, as
29303           defined by the syntax elements field_pic_flag and bottom_field_flag.
29304
29305 2012-11-02 15:14:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29306
29307         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29308           h264: introduce new frame store structure.
29309           The frame store represents a Decoded Picture Buffer entry, which can
29310           hold up to two fields. So far, the frame store is only used to hold
29311           full frames.
29312
29313 2012-11-13 10:10:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29314
29315         * ext/codecparsers:
29316           codecparsers: update to gst-vaapi-rebased commit 73d6aab.
29317           73d6aab h264: fix rbsp_more_data() implementation
29318           25d04cf h264: fix error code for invalid size parsed in SPS
29319           84798e5 fix FSF address
29320
29321 2012-10-31 16:37:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29322
29323         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29324           h264: minor clean-ups.
29325           Move DPB flush up if the current picture to decode is an IDR. Besides,
29326           don't bother to check for IDR pictures in dpb_add() function since an
29327           explicit DPB flush was already performed in this case.
29328
29329 2012-10-31 14:24:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29330
29331         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29332           h264: simplify reference picture marking process.
29333           ... to build the short_ref[] and long_ref[] lists from the DPB, instead
29334           of maintaining them separately. This avoids refs/unrefs while making it
29335           possible to generate the list based on the actual picture structure.
29336           This also ensures that the list of generated ReferenceFrames[] actually
29337           matches what reference frames are available in the DPB. i.e. short_ref[]
29338           and long_ref[] entries are implied from the DPB, so there is no risk of
29339           having "dangling" references.
29340
29341 2012-10-31 11:52:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29342
29343         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29344           h264: introduce per-field POC in GstVaapiPictureH264.
29345           Use the POC member available in the GstVaapiPicture base class and
29346           get rid of the dependency on the local VAPictureH264 TopFieldOrderCnt
29347           and BottomFieldOrderCnt. Rather, use a simple field_poc[] array
29348           initialized to INT_MAX, so that to simplify picture POC calculation
29349           for non frame pictures.
29350
29351 2012-10-31 11:45:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29352
29353         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29354           h264: introduce GST_VAAPI_PICTURE_{SHORT,LONG}_TERM_REFERENCE flags.
29355           Further get rid of GstVaapiPictureH264-local VAPictureH264.flags for
29356           reference bits, thus simplifying the reference picture marking process
29357           to only track a single set of reference flags. Also introduce a new
29358           long_term_frame_idx member.
29359
29360 2012-10-31 11:33:40 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29361
29362         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29363           h264: introduce GST_VAAPI_PICTURE_FLAG_IDR flag.
29364
29365 2012-10-31 10:56:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29366
29367         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29368           h264: fill in GstVaapiPicture structure.
29369           ... and get rid of local VAPictureH264.flags fields in GstVaapiPictureH264.
29370
29371 2012-10-31 11:07:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29372
29373         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29374           h264: add vaapi_fill_picture() helper.
29375           Add vaapi_fill_picture() helper function to convert GstVaapiPictureH264
29376           to VAPictureH264 structure. This is preparatory work to get rid of the
29377           local VAPictureH264 member in GstVaapiPictureH264.
29378
29379 2012-10-26 16:12:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29380
29381         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29382           h264: fix activation order of picture and sequence parameters.
29383           Delay ensure_context() until we actually need a VA context for allocating
29384           new VA surfaces, and then GstVaapiPictures, but also when a real activation
29385           of a new picture parameter set occurs, thus also implying an activation
29386           of the related sequence parameter set.
29387           The most important thing was to drop the global pps and sps pointers since
29388           they may not have matched the currently activated picture parameter or
29389           sequence parameter sets at the specified decode point.
29390           Anoter positive side-effect is that this cleans up all occurrences of
29391           decode_current_picture() to only keep those useful in decode_picture(),
29392           before a new picture is allocated, or in decode_sequence_end() when
29393           an end-of-stream or end-of-sequence condition occurred.
29394
29395 2012-10-26 13:17:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29396
29397         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29398           h264: fix scaling list generation.
29399           ... aka fix regression from efaab79. In particular, ScalingList8x8[]
29400           array was partially copied to the VAIQMatrixBufferH264. While we are
29401           at it, also improve bounds checking and avoid copying 8x8 scaling
29402           lists if transform_8x8_mode_flag is set to 0.
29403
29404 2012-10-24 18:23:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29405
29406         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29407           h264: fix detection of picture boundaries.
29408           Strictly follow the standard (7.4.1.2.4) to detect the first VCL NAL
29409           unit of a primary coded picture.
29410
29411 2012-10-23 14:50:14 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29412
29413         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29414           h264: optimize handling of scaling lists.
29415           Don't copy scaling lists twice to an intermediate state. Rather, directly
29416           use the scaling lists from GstH264PPS since they would match those provided
29417           by SPS header, if necessary. i.e. if PPS-specific scaling lists are not
29418           available in the bitstream.
29419
29420 2012-10-23 10:33:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29421
29422         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29423           h264: simplify code when MMCO is 5.
29424           Remove exit_picture() and exit_picture_poc() since PicOrderCnt(CurrPic)
29425           is now updated accordingly to the standard. Besides, MMCO = 5 specific
29426           operations are moved up to exec_ref_pic_marking_adaptive_mmco_5().
29427
29428 2012-10-22 11:52:13 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29429
29430         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29431           h264: fix MMCO-based reference picture marking process.
29432           Fix adaptive memory control decoded reference picture marking process
29433           implementation for operations 2 to 6, thus also fixing support for
29434           long-term reference pictures.
29435
29436 2012-10-22 10:50:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29437
29438         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29439           h264: move MMCO handlers out of the loop (cosmetics).
29440           This change only splits each individual MMCO handler into several functions
29441           dedicated for each operation. This is needed to perform further work later
29442           on.
29443
29444 2012-10-17 15:49:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29445
29446         * Makefile.am:
29447           debian: fix make dist for packaging.
29448           bzip2 tarballs are now used, so update the deb.upstream dependencies
29449           to include dist-bzip2 instead of plain old dist, and use the correct
29450           tar extract options to handle that format.
29451
29452 2012-10-17 15:42:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29453
29454         * configure.ac:
29455           configure: generate bzip2 tarballs in ustar format by default.
29456
29457 2012-10-17 15:38:14 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29458
29459         * configure.ac:
29460           configure: bump glib required version to 2.31.2.
29461           Use new Thread API. In particular, g_mutex_init() and g_cond_init()
29462           rather than g_mutex_new() and g_cond_new() respectively.
29463
29464 2012-10-04 17:39:53 +0100  Rob Bradford <rob@linux.intel.com>
29465
29466         * gst/vaapi/gstvaapidecode.c:
29467         * gst/vaapi/gstvaapidecode.h:
29468           vaapidecode: adopt non-deprecrated glib locking primitive pattern.
29469           The use of heap allocated GMutex/GCond is deprecated. Instead place them
29470           inside the structure they are locking.
29471           These changes switch to use g_mutex_init/g_cond_init rather than the heap
29472           allocation functions.
29473           Because we cannot test for a NULL pointer for the GMutex/GCond we must
29474           initialise inside the GObject _init function and clear inside the _finalize
29475           which is guaranteed to only be called once and after the object is no longer
29476           in use.
29477
29478 2012-10-17 14:52:35 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29479
29480         * gst/vaapi/gstvaapidecode.c:
29481           vaapidecode: fix compiler warnings.
29482           Don't care of the return value for gst_vaapi_decoder_put_buffer()
29483           during destruction of the element. Don't print out (uninitialised)
29484           error code when allocation of video buffer failed.
29485
29486 2012-10-16 16:52:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29487
29488         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29489           h264: add flag to compile with strict DPB ordering mode.
29490           Allow build with strict DPB ordering mode whereby evicted entries
29491           are replaced by the next entries, in order instead of optimizing
29492           it away with the last entry in the DPB.
29493           This is only useful for debugging purpose, against a reference SW
29494           decoder for example.
29495
29496 2012-10-16 16:46:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29497
29498         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29499           h264: drop extra code covered by built-in codecparsers.
29500           GstH264SliceHdr.n_emulation_prevention_bytes is bound to exist now that
29501           a newer version of codecparsers/ are used if the system provided one is
29502           now recent enough to have those required extensions.
29503
29504 2012-10-16 16:43:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29505
29506         * gst-libs/gst/codecparsers/Makefile.am:
29507           codecparsers: fix generation of symlinks.
29508           Try to improve dependencies while generating symlinks to externally
29509           maintained copy of codecparsers (derived from upstream git master
29510           tree).
29511
29512 2012-10-11 15:04:12 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29513
29514         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29515           vc1: use framerate information from bitstream parser.
29516
29517 2012-09-27 18:05:46 +0100  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29518
29519         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29520           vc1: use pixel-aspect-ratio from bitstream parser.
29521           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29522           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29523
29524 2012-09-27 18:05:46 +0100  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29525
29526         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29527           mpeg2: use pixel-aspec-ratio information from bitstream parser.
29528           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29529           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29530
29531 2012-10-11 13:49:14 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29532
29533         * configure.ac:
29534         * gst-libs/gst/codecparsers/Makefile.am:
29535           codecparsers: h264: use submodule sources.
29536           Use newer sources from the codecparsers/ submodule for
29537           - GstH264SliceHdr.n_emulation_prevention_bytes: EPBs;
29538           - GstH264VUIParams.{par_n,par_d}: pixel-aspect-ratio.
29539
29540 2012-10-11 13:23:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29541
29542         * .gitignore:
29543         * configure.ac:
29544         * gst-libs/gst/codecparsers/Makefile.am:
29545         * gst-libs/gst/codecparsers/gstjpegparser.c:
29546         * gst-libs/gst/codecparsers/gstjpegparser.h:
29547         * gst-libs/gst/vaapi/Makefile.am:
29548           codecparsers: jpeg: use submodule sources.
29549
29550 2012-10-11 10:03:14 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29551
29552         * .gitmodules:
29553         * Makefile.am:
29554         * autogen.sh:
29555         * configure.ac:
29556         * ext/Makefile.am:
29557         * ext/codecparsers:
29558           Add codecparsers submodule.
29559
29560 2012-10-11 14:17:12 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29561
29562         * .gitignore:
29563           .gitignore: updates.
29564
29565 2012-10-11 13:40:37 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29566
29567         * autogen.sh:
29568           autogen: fix check for gtkdocize and autoreconf.
29569           If gtkdocize or autoreconf programs were not found, then the autogen.sh
29570           script would fail to report that correctly because test -z was not passed
29571           any argument (empty string "" in this case).
29572
29573 2012-09-27 18:05:46 +0100  Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29574
29575         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29576           h264: use pixel-aspect-ratio from SPS header.
29577           Propagate pixel-aspect-ratio determined by the GStreamer codecparser
29578           from the sequence headers.
29579           Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
29580           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29581
29582 2012-10-10 10:35:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29583
29584         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29585           h264: add decode_nalu() helper function.
29586           Split decode_buffer() into the core infrastructure that determines
29587           the NAL units contained in the adapter and the actual function that
29588           decodes the NAL unit.
29589
29590 2012-10-10 10:31:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29591
29592         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29593           h264: fix end-of-stream conditions (flush).
29594           Decode pending data in the adapter prior to processing the actual
29595           code for end-of-stream.
29596
29597 2012-10-10 09:45:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29598
29599         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29600           mpeg2: add decode_packet() helper function.
29601           Split decode_buffer() into the core infrastructure that determines
29602           the packets contained in the adapter and the actual function that
29603           decodes the packet data.
29604
29605 2012-10-09 15:34:18 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29606
29607         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29608           mpeg2: fix end-of-stream conditions (flush).
29609           Decode pending data in the adapter prior to processing the actual
29610           code for end-of-stream. Initial code from Feng Yuan.
29611
29612 2012-10-09 15:40:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29613
29614         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29615           mpeg2: fix memory leak of empty packets.
29616           Fix memory leakage of empty packets, i.e. packets that only contain
29617           the start code prefix. In particular, free empty user-data packets.
29618           Besides, the codec parser will already fail gracefully if the packet
29619           to parse does not have the minimum required size. So, we can also
29620           completely drop the block of code that used to handle packets of size 4
29621           (including the start code).
29622
29623 2012-10-09 15:01:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29624
29625         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29626           mpeg2: fix return value for "no-data" conditions.
29627           Fix return value when the second scan for start code fails. This means
29628           there is not enough data to determine the full extents of the current
29629           packet and the function shall return GST_VAAPI_DECODER_STATUS_ERROR_NO_DATA
29630           in this case, instead of GST_VAAPI_DECODER_STATUS_SUCCESS.
29631
29632 2012-10-09 14:48:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29633
29634         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29635           decoder: refine semantics of gst_vaapi_decoder_put_buffer().
29636           Improve the semantics for gst_vaapi_decoder_put_buffer() when an empty
29637           buffer is passed on. An empty buffer is a buffer with a NULL data pointer
29638           or with a size equals to zero. In this case, that buffer is simply
29639           skipped and the function returns TRUE. A NULL buffer argument still
29640           marks the end-of-stream.
29641
29642 2012-10-09 14:40:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29643
29644         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29645         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29646           decoder: drop unused functions.
29647
29648 2012-08-26 22:29:04 -0400  Wind Yuan <feng.yuan@intel.com>
29649
29650         * gst/vaapi/gstvaapidecode.c:
29651           vaapidecode: flush buffers when receiving EOS.
29652           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29653
29654 2012-10-05 13:36:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29655
29656         * debian.upstream/Makefile.am:
29657           debian: fix make dist for packaging.
29658
29659 2012-10-05 12:06:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29660
29661         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
29662         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29663           wayland: cosmetics (remove tabs).
29664
29665 2012-10-04 17:39:52 +0100  Rob Bradford <rob@linux.intel.com>
29666
29667         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29668           wayland: add support for windowed mode.
29669           Rather than always making the surface fullscreen instead implement the
29670           set_fullscreen vfunc on GstVaapiWindow and then set the shell surface
29671           fullscreen on not depending on that.
29672           Reviewed-by: Joe Konno <joe.konno@intel.com>
29673           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29674
29675 2012-10-01 09:21:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29676
29677         * configure.ac:
29678           Bump version for development.
29679
29680 2012-09-28 17:54:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29681
29682         * README:
29683         * configure.ac:
29684           Fix and document build dependencies better.
29685
29686 2012-09-28 17:41:42 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29687
29688         * debian.upstream/control.in:
29689           debian: fix GStreamer build dependencies.
29690
29691 2012-09-28 17:39:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29692
29693         * configure.ac:
29694         * debian.upstream/control.in:
29695           debian: fix Wayland build dependencies.
29696
29697 2012-09-28 17:38:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29698
29699         * debian.upstream/control.in:
29700           debian: fix conditional build of packages.
29701           Make it still possible to build package even if one of the build dependencies
29702           for a specific video backend is not available.
29703
29704 2012-09-27 11:08:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29705
29706         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29707         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29708           utils: drop unused GLX helpers.
29709           Remove helpers for GL_ARB_fragment_program and GL_ARB_multitexture
29710           extensions since they are not used throughout gstreamer-vaapi.
29711
29712 2012-09-27 11:04:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29713
29714         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
29715           utils: fix build with <GL/glext.h> version >= 85.
29716           Mesa recently updated the <GL/glext.h> header version to Khronos version 85.
29717           This caused the PFNGLMULTITEXCOORD2FPROC definition to be moved out of the
29718           GL_VERSION_1_3_DEPRECATED block. However, since <GL/gl.h> also defines
29719           GL_VERSION_1_3 to 1, the definitions in <GL/glext.h> are then not enabled,
29720           thus leaving PFNGLMULTITEXCOORD2FPROC undefined as well.
29721           Provide a PFNGLMULTITEXCOORD2FPROC replacement as an interim solution for
29722           newer versions of the <GL/glext.h> header.
29723
29724 2012-09-26 16:33:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29725
29726         * configure.ac:
29727           configure: update VA-API version requirements.
29728           VA/DRM and VA/Wayland API are now promoted to VA-API 0.33.0 (libva 1.1.0).
29729
29730 2012-09-21 16:43:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29731
29732         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29733           h264: review and report errors accordingly.
29734           Use GST_ERROR() to report real errors instead of hiding them into
29735           GST_DEBUG().
29736
29737 2012-09-20 17:58:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29738
29739         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29740           h264: exclusively use GstAdapter, drop sub-buffer hack.
29741           Maintaining the sub-buffer is rather suboptimal especially since we
29742           were also maintaining a GstAdapter. Now, we only use the GstAdapter
29743           thus requiring minor extra parsing when receiving avcC buffers.
29744
29745 2012-09-20 16:18:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29746
29747         * README:
29748           README: updates.
29749
29750 2012-09-20 16:02:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29751
29752         * NEWS:
29753           NEWS: updates.
29754
29755 2012-09-20 14:38:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29756
29757         * debian.upstream/gstreamer-vaapi.install.in:
29758           debian: fix packaging on recent Ubuntu platforms.
29759           Use explicit GStreamer plugins path.
29760
29761 2012-09-17 17:55:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29762
29763         * docs/reference/libs/libs-docs.xml.in:
29764         * docs/reference/libs/libs.core.types:
29765           docs: fix build for make dist.
29766
29767 2012-09-14 10:30:35 -0400  Kristian Høgsberg <krh@bitplanet.net>
29768
29769         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29770           wayland: set opaque region for YUV surface.
29771           This allows the compositor to optimize redraws and cull away changes
29772           obscured by the video surface.
29773           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29774
29775 2012-09-14 17:30:19 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29776
29777         * configure.ac:
29778           configure: fix check for libva-glx and libva-drm.
29779
29780 2012-09-12 13:42:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29781
29782         * gst-libs/gst/vaapi/glibcompat.h:
29783           glibcompat: add replacement for g_cond_wait_until().
29784
29785 2012-09-12 13:41:47 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29786
29787         * gst/vaapi/gstvaapidecode.c:
29788         * gst/vaapi/gstvaapidownload.c:
29789         * gst/vaapi/gstvaapipostproc.c:
29790         * gst/vaapi/gstvaapisink.c:
29791         * gst/vaapi/gstvaapiupload.c:
29792           plugins: include "sysdeps.h" instead of "config.h".
29793
29794 2012-09-12 10:40:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29795
29796         * gst-libs/gst/codecparsers/gstjpegparser.c:
29797           codecparsers: jpeg: add missing includes.
29798
29799 2012-09-11 17:03:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29800
29801         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29802         * gst-libs/gst/vaapi/gstvaapidecoder.h:
29803         * gst/vaapi/gstvaapidecode.c:
29804           vaapidecode: don't reset decoder if codec type is the same.
29805           Reset, i.e. destroy then create, the decoder in _setcaps() handler only
29806           if the underlying codec type actually changed. This makes it possible
29807           to be more tolerant with certain MPEG-2 streams that get parsed to
29808           form caps that are compatible with the previous state but minor changes
29809           to "codec-data".
29810
29811 2012-09-11 16:41:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29812
29813         * gst/vaapi/gstvaapidecode.c:
29814           vaapidecode: simplify codec lookup from caps.
29815           Add new gst_vaapi_codec_from_caps() helper to determine codec type from
29816           the specified caps. Don't globally expose this function since this is
29817           really trivial and only used in the vaapidecode element.
29818
29819 2012-09-11 15:54:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29820
29821         * gst/vaapi/gstvaapidecode.c:
29822         * gst/vaapi/gstvaapidecode.h:
29823           vaapidecode: improve "no free surface" conditions.
29824           Previously, vaapidecode would wait up to one second until a free surface
29825           is available, or it aborts decoding. Now, vaapidecode waits until the
29826           last decoded surface was to be presented, plus one second. Besides, end
29827           times are now expressed relative to the monotonic clock.
29828
29829 2012-09-11 10:59:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29830
29831         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29832         * gst/vaapi/gstvaapidecode.c:
29833           decoder: propagate buffer duration downstream.
29834
29835 2012-09-11 10:59:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29836
29837         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29838         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
29839           surfaceproxy: add "duration" property.
29840
29841 2012-09-10 18:26:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29842
29843         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29844         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29845         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29846         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29847         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29848         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
29849         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29850           decoder: cope with new GstVaapiContextInfo based API.
29851           Update decoders to report the maximum number of reference frames to use.
29852
29853 2012-09-10 18:17:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29854
29855         * gst-libs/gst/vaapi/gstvaapicontext.c:
29856           context: JPEG codec does not need any reference frame.
29857
29858 2012-09-10 18:15:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29859
29860         * gst-libs/gst/vaapi/gstvaapicontext.c:
29861         * gst-libs/gst/vaapi/gstvaapicontext.h:
29862           context: allow number of reference frames to be set.
29863           Make it possible to specify the maximum number of references to use within
29864           a single VA context. This helps reducing GPU memory allocations to the useful
29865           number of references to be used.
29866
29867 2012-09-07 16:41:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29868
29869         * gst/vaapi/gstvaapipostproc.c:
29870           vaapipostproc: fix deinterlace-{mode,method} types definition.
29871
29872 2012-09-07 16:15:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29873
29874         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29875           mpeg4: fix debug info for unsupported profile.
29876
29877 2012-09-07 16:14:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29878
29879         * gst-libs/gst/vaapi/gstvaapicontext.c:
29880         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29881         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
29882         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
29883         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
29884         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
29885         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
29886         * gst-libs/gst/vaapi/gstvaapidisplay.c:
29887         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
29888         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
29889         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
29890         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
29891         * gst-libs/gst/vaapi/gstvaapiimage.c:
29892         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
29893         * gst-libs/gst/vaapi/gstvaapiobject.c:
29894         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
29895         * gst-libs/gst/vaapi/gstvaapisurface.c:
29896         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
29897         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
29898         * gst-libs/gst/vaapi/gstvaapitexture.c:
29899         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
29900         * gst-libs/gst/vaapi/gstvaapivalue.c:
29901         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
29902         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
29903         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
29904         * gst-libs/gst/vaapi/gstvaapivideopool.c:
29905         * gst-libs/gst/vaapi/gstvaapiwindow.c:
29906         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
29907         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
29908         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
29909         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
29910           libs: fix build in strict ISO C mode.
29911
29912 2012-09-07 16:11:12 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29913
29914         * gst/vaapi/gstvaapi.c:
29915         * gst/vaapi/gstvaapidecode.c:
29916         * gst/vaapi/gstvaapidownload.c:
29917         * gst/vaapi/gstvaapipostproc.c:
29918         * gst/vaapi/gstvaapisink.c:
29919         * gst/vaapi/gstvaapiupload.c:
29920           plugins: fix build in strict ISO C mode.
29921
29922 2012-09-07 15:31:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29923
29924         * pkgconfig/gstreamer-vaapi-glx.pc.in:
29925         * pkgconfig/gstreamer-vaapi-x11.pc.in:
29926         * pkgconfig/gstreamer-vaapi.pc.in:
29927           pkgconfig: fix dependencies and slightly improve description.
29928           Drop @LIBVA_EXTRA_{CFLAGS,LIBS}@ substitutions and slightly improve
29929           descriptions with clearer renderer names.
29930
29931 2012-09-04 13:54:19 +0200  Philip Lorenz <philip@bithub.de>
29932
29933         * gst/vaapi/gstvaapidecode.c:
29934           vaapidecode: acquire lock only if the mutex exists.
29935           When playback stops the GstVaapiDecode object is reset into a clean
29936           state. However, surfaces may still be referenced by library users and
29937           unreferencing them after the reset triggers an access to an unset mutex.
29938           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29939
29940 2012-09-07 11:58:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29941
29942         * gst-libs/gst/vaapi/gstvaapidecoder.c:
29943           decoder: drop extraneous return for void function.
29944
29945 2012-09-07 11:57:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29946
29947         * gst-libs/gst/vaapi/gstvaapiimage.c:
29948           image: don't use (void *) pointer arithmetic.
29949
29950 2012-09-04 13:40:04 +0200  Philip Lorenz <philip@bithub.de>
29951
29952         * gst-libs/gst/vaapi/gstvaapidecoder.h:
29953         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
29954         * gst-libs/gst/vaapi/gstvaapidisplay.h:
29955         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
29956         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
29957         * gst-libs/gst/vaapi/gstvaapiprofile.h:
29958         * gst-libs/gst/vaapi/gstvaapisurface.h:
29959         * gst-libs/gst/vaapi/gstvaapitypes.h:
29960         * gst/vaapi/gstvaapipostproc.h:
29961           Do not forward declare enums.
29962           Forward declaring enums is not allowed by the C standard and aborts
29963           compilation if the header file is included in a C++ project.
29964           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29965
29966 2012-09-07 11:44:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29967
29968         * configure.ac:
29969           configure: fix check for VA/DRM API.
29970
29971 2012-09-04 11:53:18 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29972
29973         * gst/vaapi/gstvaapisink.c:
29974           vaapisink: fix calculation of window size.
29975           If either dimension is out-of-bounds, then scale window to fit the
29976           display size, even if the output is to be rotated. Use the standard
29977           gst_video_sink_center_rect() function to center and scale the window
29978           wrt. the outer (display) bounds.
29979
29980 2012-08-28 02:45:22 -0400  Wind Yuan <feng.yuan@intel.com>
29981
29982         * gst/vaapi/gstvaapisink.c:
29983         * gst/vaapi/gstvaapisink.h:
29984           vaapisink: add video rotation support.
29985           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29986
29987 2012-09-06 11:47:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29988
29989         * gst/vaapi/gstvaapipluginutil.h:
29990           pluginutils: add G_PRIMITIVE_SWAP() helper macro.
29991           This macro helps swapping variables while maintaining the correct underlying
29992           and primitive type.
29993
29994 2012-09-06 11:51:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
29995
29996         * gst-libs/gst/vaapi/gstvaapidisplay.c:
29997           display: fix display aspect ratio when display is rotated.
29998
29999 2012-09-06 11:50:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30000
30001         * configure.ac:
30002         * gst-libs/gst/vaapi/Makefile.am:
30003         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30004         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
30005           display: fix physical display size when display is rotated.
30006
30007 2012-08-30 16:27:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30008
30009         * gst-libs/gst/vaapi/gstvaapivalue.c:
30010           display: fix GstVaapiRotation enumeration of values.
30011
30012 2012-08-29 13:18:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30013
30014         * docs/reference/libs/libs-docs.xml.in:
30015         * docs/reference/libs/libs-sections.txt:
30016         * gst-libs/gst/vaapi/Makefile.am:
30017         * gst-libs/gst/vaapi/gstvaapivideosink.c:
30018         * gst-libs/gst/vaapi/gstvaapivideosink.h:
30019         * gst/vaapi/gstvaapidecode.c:
30020         * gst/vaapi/gstvaapidownload.c:
30021         * gst/vaapi/gstvaapipostproc.c:
30022         * gst/vaapi/gstvaapisink.c:
30023         * gst/vaapi/gstvaapiupload.c:
30024           vaapisink: drop obsolete GstVaapiVideoSink interface.
30025           This interface was deprecated since 0.3.x series when the GstVideoContext
30026           interface was added to the main GStreamer APIs.
30027
30028 2012-08-27 18:34:27 +0300  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30029
30030         * gst/vaapi/gstvaapisink.c:
30031         * gst/vaapi/gstvaapisink.h:
30032           vaapisink: automatically detect overlay rendering mode.
30033           Retain the VA surface until another surface is to be displayed only
30034           if VA display rendering mode is determined to be "overlay" mode.
30035
30036 2012-08-24 16:30:33 +0300  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30037
30038         * gst/vaapi/gstvaapisink.c:
30039         * gst/vaapi/gstvaapisink.h:
30040           vaapisink: retain VA surface until another one is displayed.
30041           Keep VA surface proxy associated with the surface that is currently
30042           being displayed. This makes sure that surface is not released back
30043           to the pool of surfaces free to use for decoding. This is necessary
30044           with VA driver implementations that support rendering to an overlay
30045           pipe. Otherwise, there could be cases where we are decoding into a
30046           surface that is being displayed, hence some flickering.
30047
30048 2012-08-24 14:54:16 +0300  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30049
30050         * gst/vaapi/gstvaapisink.h:
30051           vaapisink: fix build with older toolchains.
30052           Don't re-declare GstVaapiTexture if USE_GLX mode is set.
30053
30054 2012-08-29 10:13:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30055
30056         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30057           display: partially revert 8ebe4d6.
30058           Don't try to fix up the initial values, this could make things worse.
30059           Simply assume the driver does not support the capability in this case.
30060
30061 2012-08-28 16:08:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30062
30063         * tests/test-display.c:
30064           tests: dump VA display properties.
30065
30066 2012-08-28 18:11:32 +0300  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30067
30068         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30069           display: fix validation process of properties during discovery.
30070           Some VA drivers (e.g. EMGD) can have completely random values for initial
30071           display attributes. So, try to improve the discovery process to check the
30072           initial display attribute values actually fall within valid bounds. If not,
30073           try to reset those to some sensible values like the default value reported
30074           through vaQueryDisplayAttributes().
30075
30076 2012-08-28 13:59:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30077
30078         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30079         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30080           display: add color balance properties.
30081           Add support for hue, saturation, brightness and contrast attributes.
30082
30083 2012-08-28 14:05:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30084
30085         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30086           display: initialize default attribute values.
30087           Ensure the display attribute is actually supported by trying to retrieve
30088           its current value during GstVaapiDisplay creation.
30089
30090 2012-08-28 11:09:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30091
30092         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30093           display: raise "notify" for property changes.
30094
30095 2012-08-28 10:55:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30096
30097         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30098         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30099           display: expose display attributes as GObject properties.
30100           Expose VA display "render-mode" and "rotation" attributes as standard
30101           GObject properties.
30102
30103 2012-08-28 16:24:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30104
30105         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30106           display: install properties in batch.
30107           Use g_object_class_install_properties() to install GstVaapiDisplay properties.
30108           It is useful to maintain properties as GParamSpec so that to be able to raise
30109           "notify" signals by id instead of by name in the future.
30110
30111 2012-08-27 19:00:37 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30112
30113         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30114           display: fix gst_vaapi_display_has_property().
30115           Append the "render-mode" and "rotation" properties, should they be supported
30116           by the underlying VA driver.
30117
30118 2012-08-22 02:18:11 -0400  Wind Yuan <feng.yuan@intel.com>
30119
30120         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30121         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30122         * gst-libs/gst/vaapi/gstvaapitypes.h:
30123         * gst-libs/gst/vaapi/gstvaapiutils.c:
30124         * gst-libs/gst/vaapi/gstvaapiutils.h:
30125         * gst-libs/gst/vaapi/gstvaapivalue.c:
30126         * gst-libs/gst/vaapi/gstvaapivalue.h:
30127           display: add support for rotation modes.
30128           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30129
30130 2012-08-27 18:11:37 +0300  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30131
30132         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30133         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30134         * gst-libs/gst/vaapi/gstvaapitypes.h:
30135         * gst-libs/gst/vaapi/gstvaapivalue.c:
30136         * gst-libs/gst/vaapi/gstvaapivalue.h:
30137           display: add support for rendering modes.
30138           A rendering mode can be "overlay" or "texture"'ed blit.
30139           The former mode implies that a VA surface used for rendering can't be
30140           re-used right away for decoding, so the sink shall make provisions to
30141           retain the associated surface proxy until the next surface is to be
30142           displayed.
30143           The latter mode implies that the VA surface is implicitly copied to an
30144           intermediate backing store, or back buffer of a frame buffer, so the
30145           associated surface proxy can be disposed right away.
30146
30147 2012-08-27 17:02:49 +0300  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30148
30149         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30150         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30151         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30152           display: add initial support for display attributes.
30153           The VA display attributes are mapped to properties so that to maintain the
30154           GStreamer terminology. Properties are to be identified by name, but internal
30155           functions are available to lookup the property by the actual VA display
30156           attribute type.
30157
30158 2012-08-24 11:36:16 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30159
30160         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30161           jpeg: fix end-of-image (EOI) handler.
30162           decode_current_picture() was converted to return a gboolean instead
30163           of a GstVaapiDecoderStatus, so we were not getting out of the decode
30164           loop as expected, or could cause an error instead.
30165           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30166
30167 2012-08-24 18:41:47 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30168
30169         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
30170           mpeg2: include start code into VA slice data buffer.
30171           Integrate the start code prefix in the slice data buffer that is submitted
30172           to the hardware. VA-API specifies that slice_data_offset is the offset to
30173           the first byte of slice data. And, for MPEG-2, slice() data begins with
30174           the slice_start_code. Some VA driver implementations (EMGD) expect this.
30175
30176 2012-06-28 01:08:03 +0900  Javier Jardón <jjardon@gnome.org>
30177
30178         * autogen.sh:
30179           autogen: fix configure script generation when srcdir != builddir.
30180           This patch allows for regenerating the configure script from a build
30181           directory that is not the actual source directory.
30182           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30183
30184 2012-06-28 00:22:03 +0900  Javier Jardón <jjardon@gnome.org>
30185
30186         * configure.ac:
30187           configure: use new libtool syntax.
30188           This now requires libtool >= 2.2 to regenerate the configure script.
30189           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30190
30191 2012-08-08 12:50:41 +0900  Javier Jardón <jjardon@gnome.org>
30192
30193         * gst-libs/gst/vaapi/gstvaapidecoder.c:
30194           decoder: use g_object_notify_by_pspec().
30195           Use g_object_notify_by_pspec() instead of g_object_notify() so that to
30196           avoid a property name lookup. i.e. this makes notifications faster to
30197           the `vaapidecode' element.
30198           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30199
30200 2012-08-06 19:21:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30201
30202         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30203           wayland: handle de-interlacing flags.
30204           VA/Wayland API was updated to allow flags for bob deinterlacing.
30205           More elaborated filters will require a complete VA/VPP pipeline.
30206
30207 2012-08-02 18:27:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30208
30209         * gst-libs/gst/codecparsers/gstjpegparser.c:
30210           jpeg: fix default quantization tables.
30211           Two elements in the luminance quantization table were wrong. So,
30212           gst_jpeg_get_default_quantization_tables() now reconstructs tables
30213           in zig-zag order from the standard ones (Tables K.1 and K.2).
30214
30215 2012-08-02 15:17:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30216
30217         * gst-libs/gst/codecparsers/gstjpegparser.c:
30218           jpeg: compute default Huffman tables.
30219           ... instead of having them pre-calculated. This saves around 1.5 KB
30220           of data in the DSO but requires gst_jpeg_get_default_huffman_tables()
30221           to do more work. Though, the client application may have to call that
30222           function at most once, only.
30223
30224 2012-08-01 18:30:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30225
30226         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30227           display: drop VAProfileNone entries from debug messages.
30228
30229 2012-07-31 18:24:14 +0800  Yan Yin <yan.yin@intel.com>
30230
30231         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30232           display: query for supported display attributes.
30233           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30234
30235 2012-07-31 18:22:48 +0800  Yan Yin <yan.yin@intel.com>
30236
30237         * gst-libs/gst/vaapi/gstvaapiutils.c:
30238         * gst-libs/gst/vaapi/gstvaapiutils.h:
30239           utils: add string_of_VADisplayAttributeType() helper.
30240           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30241
30242 2012-08-01 15:46:35 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30243
30244         * gst/vaapi/gstvaapisink.c:
30245           vaapisink: handle VA/DRM API.
30246           This is not useful in practice but for raw performance evaluation when
30247           the sink is invoked with display=drm sync=false. fakesink could also be
30248           used though.
30249
30250 2012-08-01 15:46:19 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30251
30252         * gst/vaapi/Makefile.am:
30253         * gst/vaapi/gstvaapipluginutil.c:
30254           plugins: add support for headless pipelines.
30255
30256 2012-08-01 15:44:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30257
30258         * tests/Makefile.am:
30259         * tests/output.c:
30260         * tests/test-display.c:
30261         * tests/test-windows.c:
30262           tests: add support for headless decoding.
30263
30264 2012-08-01 15:44:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30265
30266         * NEWS:
30267         * configure.ac:
30268         * debian.upstream/Makefile.am:
30269         * debian.upstream/control.in:
30270         * debian.upstream/libgstvaapi-drm.install.in:
30271         * gst-libs/gst/vaapi/Makefile.am:
30272         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30273         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30274         * gst-libs/gst/vaapi/gstvaapidisplay_drm.c:
30275         * gst-libs/gst/vaapi/gstvaapidisplay_drm.h:
30276         * gst-libs/gst/vaapi/gstvaapidisplay_drm_priv.h:
30277         * gst-libs/gst/vaapi/gstvaapiwindow_drm.c:
30278         * gst-libs/gst/vaapi/gstvaapiwindow_drm.h:
30279         * pkgconfig/Makefile.am:
30280         * pkgconfig/gstreamer-vaapi-drm.pc.in:
30281           Add initial support for VA/DRM.
30282
30283 2012-07-31 17:58:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30284
30285         * configure.ac:
30286         * gst-libs/gst/vaapi/Makefile.am:
30287           Fix build without X11 (again).
30288           Don't try to build libgstvaapi-x11.so.* if X11 was disabled. Also shuffle
30289           files list wrt. x11, glx and wayland backends.
30290
30291 2012-07-31 11:51:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30292
30293         * configure.ac:
30294         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30295         * gst-libs/gst/vaapi/gstvaapicompat.h:
30296         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30297           jpeg: update to the latest VA-API changes (0.32.1+).
30298
30299 2012-07-27 14:27:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30300
30301         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30302         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30303         * gst/vaapi/gstvaapisink.c:
30304           wayland: implement display ::get_size*() hooks.
30305
30306 2012-07-27 10:45:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30307
30308         * gst/vaapi/gstvaapipluginutil.c:
30309           plugins: prefer X11 rendering over GLX.
30310           Prefer X11 display over GLX so that "vaapisink" uses X11, i.e. vaPutSurface(),
30311           for rendering instead of texturing.
30312
30313 2012-07-26 09:28:51 -0400  Kristian Høgsberg <krh@bitplanet.net>
30314
30315         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30316           wayland: use scale fullscreen method.
30317           This makes the compositor scale the surface to fit and preserves aspect
30318           ratio.
30319           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30320
30321 2012-07-26 09:27:47 -0400  Kristian Høgsberg <krh@bitplanet.net>
30322
30323         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30324           wayland: respond to ping/pong protocol so we're not deemed unresponsive.
30325           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30326
30327 2012-07-25 10:39:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30328
30329         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30330           wayland: fix double disconnect of display.
30331
30332 2012-07-24 19:58:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30333
30334         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30335           wayland: mangle display name for cache lookups.
30336
30337 2012-07-24 15:43:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30338
30339         * configure.ac:
30340         * debian.upstream/Makefile.am:
30341         * debian.upstream/control.in:
30342         * debian.upstream/libgstvaapi-wayland.install.in:
30343         * pkgconfig/Makefile.am:
30344         * pkgconfig/gstreamer-vaapi-wayland.pc.in:
30345           wayland: add packaging files.
30346
30347 2012-07-24 15:07:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30348
30349         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30350         * gst/vaapi/gstvaapipluginutil.c:
30351         * gst/vaapi/gstvaapisink.c:
30352         * pkgconfig/Makefile.am:
30353           Fix build without X11.
30354
30355 2012-07-24 09:45:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30356
30357         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30358         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30359         * gst/vaapi/Makefile.am:
30360         * gst/vaapi/gstvaapipluginutil.c:
30361         * gst/vaapi/gstvaapisink.c:
30362           plugins: add support for Wayland.
30363
30364 2012-07-23 12:56:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30365
30366         * tests/Makefile.am:
30367         * tests/output.c:
30368         * tests/test-display.c:
30369         * tests/test-windows.c:
30370           tests: add support for Wayland.
30371
30372 2012-07-19 10:27:23 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
30373
30374         * NEWS:
30375         * configure.ac:
30376         * gst-libs/gst/vaapi/Makefile.am:
30377         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.c:
30378         * gst-libs/gst/vaapi/gstvaapidisplay_wayland.h:
30379         * gst-libs/gst/vaapi/gstvaapidisplay_wayland_priv.h:
30380         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
30381         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.c:
30382         * gst-libs/gst/vaapi/gstvaapiwindow_wayland.h:
30383           Add initial support for VA/Wayland.
30384           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30385
30386 2012-07-25 15:11:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30387
30388         * gst/vaapi/gstvaapipluginbuffer.c:
30389           plugins: fix creation of video buffer from surface proxy.
30390           Fix a regression introduced with commit 8ef490a.
30391
30392 2012-07-25 14:51:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30393
30394         * gst/vaapi/gstvaapipluginbuffer.c:
30395         * gst/vaapi/gstvaapipluginutil.c:
30396           plugins: use new display types more.
30397           In particular, simplify gst_vaapi_reply_to_query() with display types.
30398           Likewise for creating new video buffers.
30399
30400 2012-07-25 10:02:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30401
30402         * gst/vaapi/gstvaapidecode.c:
30403         * gst/vaapi/gstvaapidownload.c:
30404         * gst/vaapi/gstvaapipluginutil.c:
30405         * gst/vaapi/gstvaapipluginutil.h:
30406         * gst/vaapi/gstvaapipostproc.c:
30407         * gst/vaapi/gstvaapisink.c:
30408         * gst/vaapi/gstvaapiupload.c:
30409           plugins: fix display type selection and propagation.
30410           If vaapisink is in the GStreamer pipeline, then we shall allocate a
30411           unique GstVaapiDisplay and propagate it upstream. i.e. subsequent
30412           queries from vaapidecode shall get a valid answer from vaapisink.
30413
30414 2012-07-25 11:37:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30415
30416         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30417           display: fix destruction of mutex.
30418
30419 2012-07-25 09:16:02 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30420
30421         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30422         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30423         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
30424         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
30425         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30426         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
30427         * gst/vaapi/gstvaapipluginutil.c:
30428         * gst/vaapi/gstvaapipluginutil.h:
30429         * gst/vaapi/gstvaapisink.c:
30430           display: add display types.
30431           Move display types from gstvaapipluginutil.* to gstvaapidisplay.* so that
30432           we could simplify characterization of a GstVaapiDisplay. Also rename "auto"
30433           type to "any", and add a "display-type" attribute.
30434
30435 2012-07-24 19:43:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30436
30437         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
30438           display: use prefixed display names for cache lookups.
30439           This improves display name comparisons by always allocating a valid display
30440           name. This also helps to disambiguate lookups by name in the global display
30441           cache, should a new backend be implemented.
30442
30443 2012-07-24 16:14:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30444
30445         * gst/vaapi/gstvaapipluginutil.h:
30446           plugins: declare helper functions as internal.
30447
30448 2012-07-24 14:31:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30449
30450         * docs/reference/libs/libs-sections.txt:
30451         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30452         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30453         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30454         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30455         * gst/vaapi/Makefile.am:
30456         * gst/vaapi/gstvaapidecode.c:
30457         * gst/vaapi/gstvaapidownload.c:
30458         * gst/vaapi/gstvaapipluginbuffer.c:
30459         * gst/vaapi/gstvaapipluginbuffer.h:
30460         * gst/vaapi/gstvaapipostproc.c:
30461         * gst/vaapi/gstvaapiupload.c:
30462           videobuffer: drop deprecated functions.
30463           Move video buffer creation routines to plugin elements. That exclusively
30464           uses *_typed_new*() variants.
30465
30466 2012-07-24 14:09:09 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30467
30468         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30469         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30470           videobuffer: mark video buffer creation routines as deprecated.
30471           The vdeo buffer creation routines shall actually be internal to gstreamer-vaapi
30472           plugin elements. So deprecate any explicit creation routines that are not the
30473           new *_typed_new*() variants.
30474
30475 2012-07-24 13:52:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30476
30477         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30478         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
30479         * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
30480           videobuffer: factor out base and GLX implementations.
30481           Introduce new typed constructors internal to gstreamer-vaapi plugin elements.
30482           This avoids duplication of code, and makes it possible to further implement
30483           generic video buffer creation routines that automatically map to base or GLX
30484           variants.
30485
30486 2012-07-24 10:58:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30487
30488         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
30489           utils: fix gl_create_context() with parent context set.
30490           If GLX window was created from a foreign Display, then that same Display shall
30491           be used for subsequent glXMakeCurrent(). This means that gl_create_context()
30492           will now use the same Display that the parent, if available.
30493           This fixes cluttersink with the Intel GenX VA driver.
30494
30495 2012-07-23 18:37:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30496
30497         * gst/vaapi/gstvaapidecode.c:
30498         * gst/vaapi/gstvaapidownload.c:
30499         * gst/vaapi/gstvaapipluginutil.c:
30500         * gst/vaapi/gstvaapipluginutil.h:
30501         * gst/vaapi/gstvaapipostproc.c:
30502         * gst/vaapi/gstvaapisink.c:
30503         * gst/vaapi/gstvaapiupload.c:
30504           pluginutils: improve automatic display type selection.
30505
30506 2012-07-23 18:01:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30507
30508         * gst/vaapi/gstvaapipluginutil.c:
30509         * gst/vaapi/gstvaapipluginutil.h:
30510           pluginutils: cosmetics (indentation fixes).
30511
30512 2012-07-23 17:54:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30513
30514         * configure.ac:
30515           configure: simplify video outputs summary.
30516
30517 2012-07-23 17:49:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30518
30519         * configure.ac:
30520         * gst/vaapi/gstvaapipluginutil.c:
30521         * gst/vaapi/gstvaapipluginutil.h:
30522         * gst/vaapi/gstvaapisink.c:
30523         * gst/vaapi/gstvaapisink.h:
30524           configure: drop check for --enable-vaapisink-glx.
30525           vaapisink is now built with support for multiple display types, whenever
30526           they are enabled. The new "display" attribute is used to select a particular
30527           renderer.
30528
30529 2012-07-23 16:15:38 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30530
30531         * configure.ac:
30532         * gst-libs/gst/vaapi/gstvaapicompat.h:
30533         * gst/vaapi/Makefile.am:
30534         * gst/vaapi/gstvaapidecode.c:
30535         * gst/vaapi/gstvaapidownload.c:
30536         * gst/vaapi/gstvaapipluginutil.c:
30537         * gst/vaapi/gstvaapipostproc.c:
30538         * gst/vaapi/gstvaapiupload.c:
30539         * tests/test-display.c:
30540           configure: drop check for --enable-vaapi-glx.
30541           This flag is obsolete. It was meant to explicitly enable/disable VA/GLX API
30542           support, or fallback to TFP+FBO if this API is not found. Now, we check for
30543           the VA/GLX API by default if --enable-glx is set. If this API is not found,
30544           we now default to use TFP+FBO.
30545           Note: TFP+FBO, i.e. using vaPutSurface() is now also a deprecated usage and
30546           will be removed in the future. If GLX rendering is requested, then the VA/GLX
30547           API shall be used as it covers most usages. e.g. AMD driver can't render to
30548           an X pixmap yet.
30549
30550 2012-07-23 15:20:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30551
30552         * tests/output.c:
30553           tests: allow GLX output, if available and selected.
30554
30555 2012-07-23 15:17:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30556
30557         * tests/Makefile.am:
30558         * tests/output.c:
30559         * tests/output.h:
30560         * tests/test-decode.c:
30561         * tests/test-subpicture.c:
30562         * tests/test-surfaces.c:
30563           tests: use common display and window creation routines.
30564           Add new --output option to select the renderer. Use --list-outputs to
30565           print a list of supported renderers.
30566
30567 2012-07-23 14:15:42 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30568
30569         * tests/Makefile.am:
30570           tests: move encoded bitstreams to libutils.la.
30571
30572 2012-07-23 14:11:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30573
30574         * tests/Makefile.am:
30575           tests: build convenience library for common utilities.
30576
30577 2012-07-20 16:37:01 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30578
30579         * tests/Makefile.am:
30580         * tests/test-display.c:
30581           tests: simplify build with various display options.
30582
30583 2012-07-23 13:28:42 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30584
30585         * configure.ac:
30586           configure: improve checks for X11.
30587
30588 2012-07-20 15:57:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30589
30590         * tests/Makefile.am:
30591           configure: fix previous commit for GLX deps.
30592
30593 2012-07-20 14:44:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30594
30595         * configure.ac:
30596         * gst-libs/gst/vaapi/Makefile.am:
30597           configure: improve checks for GLX.
30598
30599 2012-07-20 11:45:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30600
30601         * configure.ac:
30602         * gst-libs/gst/vaapi/gstvaapicompat.h:
30603         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30604         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30605         * gst-libs/gst/vaapi/gstvaapiutils.h:
30606           Drop support for obsolete VA-API versions < 0.30.4.
30607
30608 2012-07-20 11:16:27 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30609
30610         * configure.ac:
30611         * gst-libs/gst/Makefile.am:
30612         * gst-libs/gst/gstutils_version.h.in:
30613         * gst/vaapi/gstvaapisink.c:
30614           vaapisink: drop checks for new APIs used by default.
30615           GStreamer -base plugins >= 0.10.31 are now required, so the checks for
30616           new APIs like GstXOverlay::set_window_handle() and ::set_render_rectangle()
30617           are no longer necessary.
30618
30619 2012-07-20 14:05:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30620
30621         * configure.ac:
30622           configure: cosmetics and some minor changes.
30623           - Better grouping of feature checks
30624           - Sort list of config files to generate
30625
30626 2012-07-19 17:55:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30627
30628         * configure.ac:
30629         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30630         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30631         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30632         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
30633         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
30634         * gst-libs/gst/vaapi/gstvaapiutils.h:
30635         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
30636         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
30637           Use standard G_GNUC_INTERNAL keyword instead of attribute_hidden.
30638
30639 2012-07-19 17:41:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30640
30641         * gst-libs/gst/vaapi/Makefile.am:
30642         * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
30643         * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
30644           Drop obsolete GstVaapiTSB.
30645           It has been replaced with a GstAdapter and gst_adapter_prev_pts().
30646
30647 2012-07-19 17:27:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30648
30649         * docs/reference/libs/libs-sections.txt:
30650           docs: add missing entries for the JPEG decoder.
30651
30652 2012-07-19 17:16:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30653
30654         * configure.ac:
30655         * gst-libs/gst/vaapi/Makefile.am:
30656         * gst/vaapi/gstvaapidecode.c:
30657         * tests/test-decode.c:
30658         * tests/test-subpicture.c:
30659           Drop all references to USE_CODEC_PARSERS.
30660
30661 2012-07-19 17:00:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30662
30663         * NEWS:
30664         * configure.ac:
30665         * docs/reference/libs/libs-sections.txt:
30666         * docs/reference/libs/libs.core.types:
30667         * gst-libs/gst/vaapi/Makefile.am:
30668         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
30669         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30670         * gst/vaapi/gstvaapidecode.c:
30671         * gst/vaapi/gstvaapidecode.h:
30672         * tests/test-decode.c:
30673         * tests/test-subpicture.c:
30674           Drop FFmpeg-based decoders.
30675           GStreamer codecparsers-based decoders are the only supported decoders now.
30676           Though, FFmpeg decoders are still available in gstreamer-vaapi 0.3.x series.
30677
30678 2012-07-01 05:55:05 +0900  Javier Jardón <jjardon@gnome.org>
30679
30680         * configure.ac:
30681         * debian.upstream/control.in:
30682           configure: bump glib required version to 2.28.
30683           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30684
30685 2012-06-29 08:45:47 +0900  Javier Jardón <jjardon@gnome.org>
30686
30687         * gst/vaapi/gstvaapidecode.h:
30688         * gst/vaapi/gstvaapidownload.h:
30689         * gst/vaapi/gstvaapipostproc.h:
30690         * gst/vaapi/gstvaapisink.h:
30691         * gst/vaapi/gstvaapiupload.h:
30692           plugins: declare _get_type() functions as const.
30693           Declaring a function as const enables better optimization of calls to
30694           the function.
30695           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30696
30697 2012-07-01 05:50:17 +0900  Javier Jardón <jjardon@gnome.org>
30698
30699         * gst/vaapi/gstvaapidecode.c:
30700         * gst/vaapi/gstvaapidownload.c:
30701         * gst/vaapi/gstvaapipostproc.c:
30702         * gst/vaapi/gstvaapisink.c:
30703         * gst/vaapi/gstvaapiupload.c:
30704           plugins: use g_clear_object() wherever applicable.
30705           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30706
30707 2012-06-29 15:19:51 +0900  Javier Jardón <jjardon@gnome.org>
30708
30709         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
30710         * gst-libs/gst/vaapi/gstvaapicontext.h:
30711         * gst-libs/gst/vaapi/gstvaapidecoder.h:
30712         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
30713         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
30714         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
30715         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
30716         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
30717         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
30718         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
30719         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
30720         * gst-libs/gst/vaapi/gstvaapidisplay.h:
30721         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
30722         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
30723         * gst-libs/gst/vaapi/gstvaapiimage.h:
30724         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
30725         * gst-libs/gst/vaapi/gstvaapiobject.h:
30726         * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
30727         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
30728         * gst-libs/gst/vaapi/gstvaapisurface.h:
30729         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
30730         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
30731         * gst-libs/gst/vaapi/gstvaapitexture.h:
30732         * gst-libs/gst/vaapi/gstvaapivalue.h:
30733         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
30734         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
30735         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
30736         * gst-libs/gst/vaapi/gstvaapivideopool.h:
30737         * gst-libs/gst/vaapi/gstvaapivideosink.h:
30738         * gst-libs/gst/vaapi/gstvaapiwindow.h:
30739         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
30740         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
30741           libs: declare _get_type() functions as const.
30742           Declaring a function as const enables better optimization of calls
30743           to the function.
30744           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30745
30746 2012-07-01 05:34:15 +0900  Javier Jardón <jjardon@gnome.org>
30747
30748         * gst-libs/gst/vaapi/glibcompat.h:
30749         * gst-libs/gst/vaapi/gstvaapicontext.c:
30750         * gst-libs/gst/vaapi/gstvaapidisplay.c:
30751         * gst-libs/gst/vaapi/gstvaapiobject.c:
30752         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
30753         * gst-libs/gst/vaapi/gstvaapisurface.c:
30754         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
30755         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
30756         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
30757         * gst-libs/gst/vaapi/gstvaapivideopool.c:
30758           libs: use g_clear_object() wherever applicable.
30759           This is a preferred thread-safe version. Also add an inline version of
30760           g_clear_object() if compiling with glib < 2.28.
30761           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30762
30763 2012-07-01 06:02:22 +0900  Javier Jardón <jjardon@gnome.org>
30764
30765         * .gitignore:
30766         * configure.ac:
30767         * docs/reference/libs/Makefile.am:
30768         * gst-libs/gst/vaapi/Makefile.am:
30769         * gst-libs/gst/vaapi/gstvaapimarshal.list:
30770         * gst-libs/gst/vaapi/gstvaapiobject.c:
30771           libs: use generic g_cclosure_marshal_VOID__VOID().
30772           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30773
30774 2012-07-19 14:29:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30775
30776         * configure.ac:
30777         * gst-libs/gst/vaapi/glibcompat.h:
30778           glibcompat: drop explicit check for g_list_free_full().
30779
30780 2012-07-19 13:58:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30781
30782         * configure.ac:
30783           Bump version for development.
30784
30785 2012-07-19 13:57:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30786
30787         * gst-libs/gst/codecparsers/Makefile.am:
30788           jpeg: fix make dist.
30789
30790 2012-06-28 00:39:10 +0900  Javier Jardón <jjardon@gnome.org>
30791
30792         * autogen.sh:
30793         * configure.ac:
30794         * docs/Makefile.am:
30795           configure: fix build without gtk-doc support.
30796           Also do not generate tamplate files as all the documentation is inline.
30797           Drop un-needed code in autogen.sh as well.
30798           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30799
30800 2012-06-28 00:27:31 +0900  Javier Jardón <jjardon@gnome.org>
30801
30802         * Makefile.am:
30803         * autogen.sh:
30804         * configure.ac:
30805           configure: put m4 macros and autogenerated files into m4/ directory.
30806           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30807
30808 2012-06-28 00:20:12 +0900  Javier Jardón <jjardon@gnome.org>
30809
30810         * configure.ac:
30811           configure: drop deprecated autoconf macros.
30812           Bump autoconf required version to 2.58, needed for AS_HELP_STRING macro.
30813           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30814
30815 2012-06-28 00:04:19 +0900  Javier Jardón <jjardon@gnome.org>
30816
30817         * configure.ac:
30818           configure: don't use AC_SUBST for some variables.
30819           PKG_CHECK_MODULES already does this for us.
30820           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30821
30822 2012-07-19 11:43:03 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30823
30824         * gst/vaapi/gstvaapidecode.c:
30825         * gst/vaapi/gstvaapidownload.c:
30826         * gst/vaapi/gstvaapipostproc.c:
30827         * gst/vaapi/gstvaapiupload.c:
30828           plugins: add support for GstImplementsInterface.
30829
30830 2012-07-01 02:58:36 +0900  Javier Jardón <jjardon@gnome.org>
30831
30832         * configure.ac:
30833         * gst/vaapi/gstvaapidecode.c:
30834         * gst/vaapi/gstvaapidownload.c:
30835         * gst/vaapi/gstvaapipostproc.c:
30836         * gst/vaapi/gstvaapisink.c:
30837         * gst/vaapi/gstvaapiupload.c:
30838           plugins: use G_DEFINE_TYPE_* instead of deprecated GST_BOILERPLATE_*.
30839           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30840
30841 2012-07-01 03:57:13 +0900  Javier Jardón <jjardon@gnome.org>
30842
30843         * configure.ac:
30844         * gst/vaapi/gstvaapisink.c:
30845           plugins: do not use deprecated GStreamer -base symbols.
30846           Bump GStreamer plugins -base required version to 0.10.31, needed for
30847           gst_x_overlay_got_window_handle().
30848           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30849
30850 2012-07-01 03:57:13 +0900  Javier Jardón <jjardon@gnome.org>
30851
30852         * configure.ac:
30853         * gst/vaapi/gstvaapidecode.c:
30854         * gst/vaapi/gstvaapidownload.c:
30855         * gst/vaapi/gstvaapipostproc.c:
30856         * gst/vaapi/gstvaapisink.c:
30857         * gst/vaapi/gstvaapiupload.c:
30858           plugins: do not use deprecated core GStreamer symbols.
30859           Bump GStreamer required version to 0.10.14, needed for
30860           gst_element_class_set_details_simple().
30861           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30862
30863 2012-07-19 10:54:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30864
30865         * tests/test-decode.c:
30866           tests: fix build without JPEG decoder support.
30867
30868 2012-07-17 13:44:45 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30869
30870         * tests/Makefile.am:
30871         * tests/test-decode.c:
30872         * tests/test-jpeg.c:
30873         * tests/test-jpeg.h:
30874           tests: add test for JPEG decoding.
30875
30876 2012-07-17 13:43:32 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30877
30878         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30879           jpeg: update to match latest parser API.
30880
30881 2012-07-16 17:35:19 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30882
30883         * gst-libs/gst/codecparsers/gstjpegparser.c:
30884         * gst-libs/gst/codecparsers/gstjpegparser.h:
30885           codecparsers: jpeg: tweak parser API.
30886           ... to allow for more consistent parsing API among various codec parsers.
30887           In particular, drop use of GList.
30888
30889 2012-07-16 16:24:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30890
30891         * configure.ac:
30892           jpeg: fix configure check for VA/JPEG decoding API.
30893
30894 2012-06-26 15:18:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30895
30896         * gst-libs/gst/vaapi/gstvaapiprofile.c:
30897           jpeg: fix build with VA-API < 0.32.0.
30898
30899 2012-06-26 15:04:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30900
30901         * NEWS:
30902           NEWS: updates.
30903
30904 2012-06-26 15:02:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30905
30906         * configure.ac:
30907           Bump version for development.
30908
30909 2012-06-26 14:46:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30910
30911         * NEWS:
30912         * configure.ac:
30913           0.3.7.
30914
30915 2012-06-26 13:34:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30916
30917         * NEWS:
30918           NEWS: updates.
30919
30920 2012-06-25 16:07:55 +0800  Yan Yin <yan.yin@intel.com>
30921
30922         * gst/vaapi/gstvaapipluginutil.c:
30923           vaapiplugin: fix build when compiling without GLX.
30924           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30925
30926 2012-06-26 11:03:25 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30927
30928         * configure.ac:
30929           configure: disable FFmpeg-based decoders.
30930           FFmpeg decoders are still available through the --enable-ffmpeg option
30931           but are no longer maintained.
30932
30933 2012-06-25 17:25:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30934
30935         * gst-libs/gst/vaapi/Makefile.am:
30936           Fix build with recent GStreamer stack.
30937
30938 2012-06-25 17:10:49 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30939
30940         * configure.ac:
30941         * gst-libs/gst/vaapi/gstvaapicompat.h:
30942         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30943           jpeg: update to current VA/JPEG decoding API.
30944
30945 2012-06-21 16:06:47 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30946
30947         * gst-libs/gst/codecparsers/gstjpegparser.c:
30948         * gst-libs/gst/codecparsers/gstjpegparser.h:
30949         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30950           codecparsers: jpeg: track valid quantization and Huffman tables.
30951           Add valid flag to GstJpegQuantTable and GstJpegHuffmanTable so that
30952           to determine whether a table actually changed since the last user
30953           synchronization point. That way, this makes it possible for some
30954           hardware accelerated decoding solution to upload only those tables
30955           that changed.
30956
30957 2012-06-05 10:10:22 +0800  Wind Yuan <feng.yuan@intel.com>
30958
30959         * gst-libs/gst/codecparsers/gstjpegparser.c:
30960           codecparsers: jpeg: use U_READ_UINT*() wherever possible.
30961           Use GstByteReader *_unchecked() variants as much as possible.
30962           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30963
30964 2012-06-04 16:20:13 +0800  Wind Yuan <feng.yuan@intel.com>
30965
30966         * gst-libs/gst/codecparsers/gstjpegparser.c:
30967         * gst-libs/gst/codecparsers/gstjpegparser.h:
30968         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30969           jpeg: add new GstJpegHuffmanTables structure.
30970           Add new GstJpegHuffmanTables helper structure to hold all possible
30971           AC/DC Huffman tables available to all components.
30972           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30973
30974 2012-06-04 15:52:19 +0800  Wind Yuan <feng.yuan@intel.com>
30975
30976         * gst-libs/gst/codecparsers/gstjpegparser.c:
30977         * gst-libs/gst/codecparsers/gstjpegparser.h:
30978         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30979           jpeg: make gst_jpeg_parse() support multiple scans.
30980           gst_jpeg_parse() now gathers all scans available in the supplied
30981           buffer. A scan comprises of the scan header and any entropy-coded
30982           segments or restart marker following it. The size and offset to
30983           the associated data (ECS + RST segments) are append to a new
30984           GstJpegScanOffsetSize structure.
30985           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30986
30987 2012-04-19 23:50:14 +0800  Wind Yuan <feng.yuan@intel.com>
30988
30989         * gst-libs/gst/codecparsers/gstjpegparser.c:
30990         * gst-libs/gst/codecparsers/gstjpegparser.h:
30991         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
30992           jpeg: update to match latest parser API.
30993           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30994
30995 2012-04-13 01:58:39 -0400  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
30996
30997         * gst-libs/gst/codecparsers/gstjpegparser.h:
30998           jpeg: simplify and optimize parser API.
30999
31000 2012-04-18 22:30:45 -0400  Wind Yuan <feng.yuan@intel.com>
31001
31002         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31003           mpeg: fix picture used to determine backward_reference_vop_coding_type.
31004           Complete fix brought by bf9f77b1afb0829b97e2d502057aec973c5fd7f5
31005           but Gwenole did not apply all the bits.
31006           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31007
31008 2012-04-27 04:13:00 -0400  Wind Yuan <feng.yuan@intel.com>
31009
31010         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31011           mpeg4: map Simple_Scalable profile to Advanced_Simple profile.
31012           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31013
31014 2012-04-27 04:10:17 -0400  Wind Yuan <feng.yuan@intel.com>
31015
31016         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31017           mpeg4: handle skipped frames (vop_hdr->coded = 0).
31018           Gracefully skip non VOP coded frames.
31019           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31020
31021 2012-04-26 04:00:41 -0400  Wind Yuan <feng.yuan@intel.com>
31022
31023         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31024           mpeg4: fix timestamp issues on too fast playback.
31025           Improve generation of presentation timestamps to be less sensitive
31026           to input stream errors. In practise, GOP is also a synchronization
31027           point for PTS calculation.
31028           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31029
31030 2012-04-16 10:02:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31031
31032         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31033           Fix build without JPEG decoder.
31034
31035 2012-04-12 11:48:24 +0200  Wind Yuan <feng.yuan@intel.com>
31036
31037         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31038           mpeg4: fix VOP coding type of backward reference pictures.
31039           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31040
31041 2012-04-11 23:02:45 -0400  Wind Yuan <feng.yuan@intel.com>
31042
31043         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31044           mpeg4: fix handling of temporal reference distances.
31045           TRD and TRB fields are not large enough to hold the difference of PTS
31046           expressed with nanosecond resolution. So, compute them from the original
31047           VOP info.
31048           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31049
31050 2012-04-12 11:00:22 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31051
31052         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31053           dpb: mpeg2: cosmetics.
31054           Define MAX_MPEG2_REFERENCES to 2 and avoid magic numbers all around.
31055
31056 2012-02-10 00:21:04 +0800  Wind Yuan <feng.yuan@intel.com>
31057
31058         * configure.ac:
31059         * gst-libs/gst/vaapi/Makefile.am:
31060         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31061         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31062         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.c:
31063         * gst-libs/gst/vaapi/gstvaapidecoder_jpeg.h:
31064         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31065         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31066         * gst-libs/gst/vaapi/gstvaapiprofile.c:
31067         * gst-libs/gst/vaapi/gstvaapiprofile.h:
31068         * gst/vaapi/gstvaapidecode.c:
31069           Add initial JPEG decoder.
31070           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31071
31072 2012-02-10 00:21:04 +0800  Wind Yuan <feng.yuan@intel.com>
31073
31074         * configure.ac:
31075         * gst-libs/gst/Makefile.am:
31076         * gst-libs/gst/codecparsers/Makefile.am:
31077         * gst-libs/gst/codecparsers/gstjpegparser.c:
31078         * gst-libs/gst/codecparsers/gstjpegparser.h:
31079         * gst-libs/gst/vaapi/Makefile.am:
31080           codecparsers: add JPEG parser.
31081           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31082
31083 2012-04-10 13:29:10 +0200  Wind Yuan <feng.yuan@intel.com>
31084
31085         * gst/vaapi/gstvaapidecode.c:
31086           vaapidecode: fix VA display type.
31087           Fix typo whereby plain VADisplay type was used instead of the GstVaapiDisplay
31088           wrapper.
31089           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31090
31091 2012-04-10 14:28:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31092
31093         * gst/vaapi/gstvaapidecode.c:
31094           vaapidecode: fix includes when compiling for a single API.
31095
31096 2012-04-02 18:42:12 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31097
31098         * NEWS:
31099         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31100           mpeg2: fix calculation of macroblock_offset.
31101           Fix decoding of streams with extra slice() information before the first
31102           macroblock(). e.g. this fixes sony-ct3.bs from conformance test.
31103
31104 2012-04-02 18:09:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31105
31106         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31107           mpeg2: fix interpolation of GOP TSN from new PTS.
31108           New GOP TSN base could be mis-calculated. In particular, this fixes
31109           decoding of uruseiyatsura.vob from <http://samples.mplayerhq.hu/>.
31110
31111 2012-04-02 16:07:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31112
31113         * NEWS:
31114         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31115         * gst-libs/gst/vaapi/gstvaapiprofile.h:
31116           mpeg2: fix decoding of high profile streams.
31117           Allow MPEG-2 High profile streams only if the HW supports that profile
31118           or no High profile specific bits are used, and thus Main profile could
31119           be used instead. i.e. chroma_format is 4:2:0, intra_dc_precision is not
31120           set to 11 and no sequence_scalable_extension() was parsed.
31121
31122 2012-04-02 14:51:06 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31123
31124         * NEWS:
31125         * gst/vaapi/gstvaapidecode.c:
31126           vaapidecode: report unsupported codec profiles.
31127           Try to gracefully abort when the HW does not support the requested
31128           profile. There is no fallback unless profiles are correctly parsed
31129           and matched through caps beforehand.
31130
31131 2012-02-07 15:23:22 +0100  Holger Kaelberer <holger.k@elberer.de>
31132
31133         * NEWS:
31134         * gst/vaapi/gstvaapisink.c:
31135           vaapisink: don't resize a 'foreign' X-window.
31136           Don't forcibly resize foreign X windows. The user is responsible for
31137           their size and vaapisink shall not change this.
31138           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31139
31140 2012-02-07 15:21:05 +0100  Holger Kaelberer <holger.k@elberer.de>
31141
31142         * NEWS:
31143         * gst/vaapi/gstvaapisink.c:
31144         * gst/vaapi/gstvaapisink.h:
31145           vaapisink: recalculate render rect only if caps are negotiated.
31146           Fix gst_vaapisink_xoverlay_set_window_handle() when it is called before
31147           caps got negotiated. Besides, when a foreign window is provided by the
31148           user, so should the render rect.
31149           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31150
31151 2012-04-02 13:07:34 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31152
31153         * configure.ac:
31154           Bump version for development.
31155
31156 2012-04-02 10:07:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31157
31158         * configure.ac:
31159           0.3.6.
31160
31161 2012-04-02 12:52:54 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31162
31163         * docs/reference/libs/libs-docs.xml.in:
31164         * docs/reference/libs/libs-sections.txt:
31165         * docs/reference/plugins/plugins-docs.xml.in:
31166         * docs/reference/plugins/plugins-sections.txt:
31167         * docs/reference/plugins/plugins.types:
31168         * gst-libs/gst/vaapi/gstvaapiimage.c:
31169         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31170         * gst/vaapi/gstvaapipostproc.c:
31171           Fix a few documentation issues.
31172
31173 2012-04-02 10:05:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31174
31175         * NEWS:
31176         * README:
31177           Update introduction and changelog.
31178
31179 2012-04-02 11:29:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31180
31181         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31182         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31183         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31184           mpeg2: allocate dummy picture for first field based I-frame.
31185           In P-pictures, prediction shall be made from the two most recently
31186           decoded reference fields. However, when the first I-frame is a field,
31187           the next field of the current picture could be a P-picture but only a
31188           single field was decoded so far. In this case, create a dummy picture
31189           with POC = -1 that will be used as reference.
31190           Some VA drivers would error out if P-pictures don't have a forward
31191           reference picture. This is true in general but not in this very specific
31192           initial case.
31193
31194 2012-04-02 10:43:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31195
31196         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31197           mpeg2: fix simple to main profile fallback.
31198           Allow fallback from simple to main profile when the HW decoder does
31199           not support the former profile and that no sequence_header_extension()
31200           is available to point out this.
31201
31202 2012-03-30 03:04:40 -0400  Wind Yuan <feng.yuan@intel.com>
31203
31204         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31205           mpeg4: improve error checking while decoding packets.
31206           decode_picture() could return an error when an MPEG-4 profile is not
31207           supported for example. In this case, the underlying VA context is not
31208           allocated and no other proper action can be taken. Likewise on exit
31209           from decode_slice().
31210           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31211
31212 2012-03-30 17:03:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31213
31214         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31215         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31216         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31217         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31218           decoder: use POC to maintain the DPB.
31219           Introduce a POC field in GstVaapiPicture so that to store simpler sequential
31220           numbers. A signed 32-bit integer should be enough for 1 year of continuous
31221           video streaming at 60 Hz.
31222           Use this new POC value to maintain the DPB, instead of 64-bit timestamps.
31223           This also aligns with H.264 that will be migrated to GstVaapiDpb infrastructure.
31224
31225 2012-03-30 16:23:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31226
31227         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31228           mpeg2: rework generation of presentation timestamps.
31229           Always prefer PTS from the demuxer layer for GOP times. If this is invalid,
31230           i.e. demuxer could not determine the PTS or the generated PTS is lower than
31231           max PTS from past pictures, then try to fix it up based on the duration of
31232           a frame.
31233           For picture PTS, simply use the GOP PTS formerly computed then use TSN to
31234           reconstruct a current time. Also now handle wrapped TSN correctly.
31235
31236 2012-03-30 17:07:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31237
31238         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31239           mpeg2: ignore empty user-data packets.
31240           Fix tcela-8.bits conformance test.
31241
31242 2012-03-29 11:13:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31243
31244         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31245           mpeg2: review and report errors accordingly.
31246           Use GST_ERROR() to report real errors instead of hiding them into
31247           GST_DEBUG().
31248
31249 2012-03-28 19:15:47 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31250
31251         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31252           mpeg2: fix invalid interlaced frame in progressive sequence.
31253           Some streams, badly constructed, could have signaled an interlaced
31254           frame while the sequence was meant to be progressive. Warn and force
31255           frame to be progressive in this case.
31256
31257 2012-03-28 16:08:29 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31258
31259         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31260         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31261           mpeg2: add support for interlaced streams.
31262           Pictures are submitted to the HW for rendering only when both fields
31263           are decoded or current picture is a full frame.
31264
31265 2012-03-28 14:36:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31266
31267         * gst-libs/gst/vaapi/Makefile.am:
31268         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.c:
31269         * gst-libs/gst/vaapi/gstvaapidecoder_dpb.h:
31270         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31271           mpeg2: add new decoded picture buffer infrastructure.
31272           Decoded pictures are now maintained into DPB, similarly to H.264.
31273           The same mechanism could be re-used for VC-1 and MPEG-4:2 codecs.
31274
31275 2012-03-28 17:50:28 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31276
31277         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31278         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31279         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31280           decoder: add first-field flag to picture.
31281           Add first-field (FF) flag to GstVaapiPicture, thus not requiring is_first_field
31282           member in each decoder. Rather, when a GstVaapiPicture is created, it is considered
31283           as the first field. Any subsequent allocated field will become the second field.
31284
31285 2012-03-28 16:05:58 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31286
31287         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31288         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31289         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31290         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31291           decoder: allow pictures to be cloned for field decoding.
31292           Add gst_vaapi_picture_new_field() function that clones a picture, while
31293           preserving the parent picture surface. i.e. the surface proxy reference
31294           count is increased and other fields copied as is. Besides, the picture
31295           is reset into a "non-output" mode.
31296
31297 2012-03-28 16:07:44 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31298
31299         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31300         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31301         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31302           decoder: rework picture field flags.
31303           Add top-field-first (TFF) and interlaced flags to GstVaapiPicture so they
31304           could be propagated to the surface proxy when it is pushed for rendering.
31305           Besides, top and bottom fields are now expressed with picture structure flags
31306           from GstVaapiSurfaceRenderFlags.
31307
31308 2012-03-28 14:28:26 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31309
31310         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31311         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31312           decoder: add OUTPUT flag to pictures.
31313           Allow pictures to be marked as output gst_vaapi_picture_output().
31314
31315 2012-03-28 14:24:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31316
31317         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31318         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31319         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31320           decoder: fix semantics of SKIPPED pictures.
31321           If GstVaapiPicture has flag SKIPPED set, this means gst_vaapi_picture_output()
31322           will not push the underlying surface for rendering. Besides, VC-1 skipped P-frame
31323           has nothing to do with rendering. This only means that the currently decoded
31324           picture is just a copy of its reference picture.
31325
31326 2012-03-28 15:16:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31327
31328         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31329         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31330         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31331         * gst/vaapi/gstvaapipostproc.c:
31332           vaapipostproc: get "interlaced" attribute from surface proxy.
31333           Add new "interlaced" attribute to GstVaapiSurfaceProxy. Use this in
31334           vaapipostproc so that to handles cases where bitstream is interlaced
31335           but almost only frame pictures are generated. In this case, we should
31336           not be alternating between top/bottom fields.
31337
31338 2012-03-26 14:37:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31339
31340         * README:
31341         * debian.upstream/control.in:
31342         * gst/vaapi/Makefile.am:
31343         * gst/vaapi/gstvaapi.c:
31344         * gst/vaapi/gstvaapipostproc.c:
31345         * gst/vaapi/gstvaapipostproc.h:
31346           vaapipostproc: add new element for video postprocessing.
31347           Add vaapipostproc element for video postprocessing. So far, only basic
31348           bob deinterlacing is implemented. Interlaced mode is automatically
31349           detected based on sink caps ("interlaced" field).
31350
31351 2012-03-26 12:01:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31352
31353         * docs/reference/libs/libs-sections.txt:
31354         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31355         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31356         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31357         * gst/vaapi/gstvaapisink.c:
31358           videobuffer: add surface render flags.
31359           Allow rendering flags, as a combination of GstVaapiSurfaceRenderFlags,
31360           to be set to the video buffer. In particular, this is mostly useful for
31361           basic deinterlacing.
31362
31363 2012-03-23 17:13:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31364
31365         * gst-libs/gst/vaapi/gstvaapicompat.h:
31366           compat: add compatibility glue with VA-API 0.34+ (WIP).
31367
31368 2012-03-23 17:11:18 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31369
31370         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31371           h264: skip all Filler Data NALs.
31372
31373 2012-03-22 03:28:22 -0400  Wind Yuan <feng.yuan@intel.com>
31374
31375         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31376           mpeg4: check for decoder status prior to decoding packet.
31377           Make sure there is a VA surface free prior to decoding the current frame.
31378           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31379
31380 2012-03-15 04:58:04 -0400  Wind Yuan <feng.yuan@intel.com>
31381
31382         * gst/vaapi/gstvaapidecode.c:
31383         * gst/vaapi/gstvaapidecode.h:
31384           decode: delay NEWSEGMENT event if vaapidecode element was not linked.
31385           Rationale: playbin2 links all elements at run-time. Once vaapidecode
31386           is created and a NEWSEGMENT event arrives, downstream element may not
31387           be ready yet. So, delay this event until next element is chained in,
31388           otherwise basesink could output "Received buffer without a new-segment.
31389           Assuming timestamps start from 0".
31390           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31391
31392 2012-03-13 20:33:41 -0400  Wind Yuan <feng.yuan@intel.com>
31393
31394         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31395           mpeg2: fix GOP timestamps when incorrect data is received.
31396           Some streams have incorrect GOP timestamps, or nothing set at all.
31397           i.e. GOP time is 00:00:00 for all GOPs. Try to recover in this case
31398           from demuxer timestamps, which are monotonic.
31399           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31400
31401 2012-03-13 02:03:31 -0400  Wind Yuan <feng.yuan@intel.com>
31402
31403         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31404           mpeg2: don't decode anything before the first sequence_header().
31405           Skip all pictures prior to the first sequence_header(). Besides,
31406           skip all picture_data() if there was no prior picture_header().
31407           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31408
31409 2012-02-07 15:57:14 +0100  Holger Kaelberer <holger.k@elberer.de>
31410
31411         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31412           ffmpeg: add support for interlaced streams.
31413           Evaluate interlaced stream properties.
31414           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31415
31416 2012-02-07 15:54:15 +0100  Holger Kaelberer <holger.k@elberer.de>
31417
31418         * gst/vaapi/gstvaapidecode.c:
31419           vaapidecode: propagate interlaced and TFF properties downstream.
31420           Propagate "interlaced" caps downstream and set "tff" buffer flag
31421           appropriately to output buffers for interlaced pictures.
31422           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31423
31424 2012-02-07 15:54:15 +0100  Holger Kaelberer <holger.k@elberer.de>
31425
31426         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31427         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31428           decoder: maintain caps for interlaced streams.
31429           Extend GstVaapiDecoder base object to maintain caps with "interlaced"
31430           property.
31431           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31432
31433 2012-02-07 15:54:15 +0100  Holger Kaelberer <holger.k@elberer.de>
31434
31435         * docs/reference/libs/libs-sections.txt:
31436         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31437         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31438           surfaceproxy: add TFF property.
31439           Add TFF (top-field-first) property to GstVaapiSurfaceProxy.
31440           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31441
31442 2012-03-16 14:21:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31443
31444         * AUTHORS:
31445           AUTHORS: update to match current authors.
31446
31447 2012-02-28 11:58:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31448
31449         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31450           mpeg2: fix is_first_field calculation.
31451           Reset is_first_field for frame pictures. Factor out locations where
31452           the flag is updated.
31453
31454 2012-02-24 12:56:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31455
31456         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31457           mpeg2: catch incorrect picture_structure from bitstreams.
31458           Assume "frame" picture structure if the syntax element was zero or if
31459           progressive_frame is set.
31460
31461 2012-02-24 12:53:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31462
31463         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31464           mpeg2: fix slice_vertical_position calculation (again).
31465           VA-API expects slice_vertical_position as the initial position from the
31466           bitstream. i.e. the direct slice() information. VA drivers will be fixed
31467           accordingly.
31468
31469 2012-03-02 15:03:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31470
31471         * gst/vaapi/gstvaapidecode.c:
31472           Revert "vaapidecode: fix another pad template ref leak" (Holger Kaelberer)
31473           This reverts commit 2f127d6af473afd647a2c88f75faafd1cd718437.
31474           For gst_element_class_get_pad_template(), no unreferencing is necessary
31475           according to the GStreamer documentation.
31476
31477 2012-03-02 13:41:16 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31478
31479         * configure.ac:
31480         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31481           h264: fix slice_data_bit_offset calculation.
31482           Unlike what VA-API documentation defines, the slice_data_bit_offset
31483           represents the offset to the first macroblock in the slice data, minus
31484           any emulation prevention bytes in the slice_header().
31485           This fix copes with binary-only VA drivers that won't be fixed any
31486           time soon. Besides, this aligns with the current FFmpeg behaviour
31487           that was based on those proprietary drivers implementing the API
31488           incorrectly.
31489
31490 2012-02-21 02:11:20 -0500  Wind Yuan <feng.yuan@intel.com>
31491
31492         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31493           h264: skip all Access Unit (AU) NALs.
31494           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31495
31496 2012-02-29 03:08:46 -0500  Wind Yuan <feng.yuan@intel.com>
31497
31498         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31499           h264: fix modification process of reference picture lists.
31500           Construction of RefPicList0/1 could be off by one element.
31501           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31502
31503 2012-02-12 11:21:52 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31504
31505         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31506           mpeg2: fix size calculation from sequence_extension().
31507           Original values from sequence_header() are 12-bit and the remaining
31508           2 most significant bits are coming from sequence_extension().
31509           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31510
31511 2012-02-23 16:39:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31512
31513         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31514           mpeg2: fix slice_vertical_position calculation.
31515           Make sure to adjust slice_vertical_position if picture structure
31516           is a top or bottom field.
31517
31518 2012-02-23 16:23:27 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31519
31520         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31521           decoder: add picture structure flags.
31522
31523 2012-02-23 14:42:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31524
31525         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31526           mpeg2: fix decoding at end-of-sequence.
31527
31528 2012-02-23 14:17:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31529
31530         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31531           mpeg2: fix slice_horizontal_position calculation.
31532
31533 2012-02-23 16:14:02 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31534
31535         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31536           mpeg2: drop useless mb_y and mb_height members.
31537
31538 2012-02-23 11:19:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31539
31540         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31541           mpeg2: fix decoding of multiple slices with same slice_vertical_position.
31542           6.3.15 says that "some slices may have the same slice_vertical_position,
31543           since slices may start and finish anywhere". So, we can't submit the current
31544           picture to the HW right away since subsequent slices would be missing.
31545
31546 2012-02-15 14:08:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31547
31548         * gst-libs/gst/vaapi/gstvaapiimage.c:
31549           image: fix source stride in picture copy.
31550
31551 2012-02-13 10:10:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31552
31553         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31554           decoder: fix double buffer free with some VA drivers.
31555           vaRenderPicture() implicitly disposes VA buffers. Some VA drivers would
31556           push the VA buffer object into a list of free buffers to be re-used. However,
31557           reference pictures (and data) that was kept would explicitly release the VA
31558           buffer object later on, thus possibly destroying a valid (re-used) object.
31559           Besides, some other VA drivers don't support correctly the vaRenderPicture()
31560           semantics for VA buffers disposal and would leak memory if there is no explicit
31561           vaDestroyBuffer(). The temporary workaround is to explcitily destroy VA buffers
31562           right after vaRenderPicture(). All VA drivers need to be aligned.
31563
31564 2012-02-08 18:08:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31565
31566         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31567           h264: complete any current picture decoder before SPS / PPS change.
31568           This ensures the VA context is clear when the encoded resolution
31569           changes. i.e. make sure older picture is decoded with the older
31570           VA context before it changes.
31571
31572 2012-02-08 18:07:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31573
31574         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31575           h264: create VA context earlier when SPS is parsed.
31576
31577 2012-02-08 17:57:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31578
31579         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31580           h264: don't allocate too big data structures on stack.
31581
31582 2012-02-07 11:07:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31583
31584         * gst-libs/gst/vaapi/glibcompat.h:
31585         * gst-libs/gst/vaapi/gstvaapidisplay.c:
31586         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31587           glib: map deprecated API to glib >= 2.32 equivalents.
31588           GStaticMutex and GStaticRecMutex are now replaced with GMutex and
31589           GRecMutex, which no longer require any prior call to g_thread_init().
31590
31591 2012-02-07 10:01:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31592
31593         * gst-libs/gst/vaapi/gstvaapiutils.h:
31594         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
31595         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
31596           glib: fix includes.
31597
31598 2012-02-07 10:05:53 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31599
31600         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31601         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31602         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31603         * gst-libs/gst/vaapi/gstvaapidisplay.c:
31604           cosmetics: fix warnings (drop unused variables).
31605
31606 2012-02-06 16:11:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31607
31608         * gst/vaapi/gstvaapidecode.c:
31609           vaapidecode: fix another pad template ref leak.
31610
31611 2012-02-06 15:54:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31612
31613         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31614         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31615         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31616           mpeg2: fix crash when there is no free surface to decode into.
31617
31618 2012-01-31 16:38:58 +0800  Zhao Halley <halley.zhao@intel.com>
31619
31620         * gst-libs/gst/vaapi/gstvaapidisplay.c:
31621           display: skip profiles which have no entrypoints.
31622           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31623
31624 2012-02-05 18:28:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31625
31626         * gst/vaapi/gstvaapiupload.c:
31627           vaapiupload: use g_object_unref() for GstVaapiImage.
31628
31629 2012-02-05 18:24:08 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31630
31631         * gst/vaapi/gstvaapidecode.c:
31632         * gst/vaapi/gstvaapidownload.c:
31633         * gst/vaapi/gstvaapisink.c:
31634         * gst/vaapi/gstvaapiupload.c:
31635           plugins: fix pad template ref leaks.
31636
31637 2012-02-02 09:23:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31638
31639         * configure.ac:
31640           Bump version for development.
31641
31642 2012-02-01 23:34:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31643
31644         * NEWS:
31645         * configure.ac:
31646           0.3.4.
31647
31648 2012-02-01 23:32:47 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31649
31650         * README:
31651           README: updates.
31652           Mention codecparsers-based decoders, FFmpeg is now optional. Update
31653           list of support HW.
31654
31655 2012-02-01 23:28:23 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31656
31657         * NEWS:
31658           NEWS: updates.
31659
31660 2012-01-31 11:34:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31661
31662         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31663           decoder: allocate proxy surface earlier.
31664           This simplifies gst_vaapi_picture_output() to only update the presentation
31665           timestamp and submit the proxy to the decoder for output.
31666
31667 2012-01-31 11:26:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31668
31669         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31670           decoder: fix memory leak of VA objects on exit.
31671           On sequence end, if the last decoded picture is not output for rendering,
31672           then the proxy surface is not created. In this case, the original surface
31673           must be released explicitly to the context.
31674
31675 2012-01-31 10:47:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31676
31677         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31678           mpeg2: use GstAdapter to track input sequence.
31679           This fixes possible memory leaks and improves performance by removing
31680           some extra copies.
31681
31682 2012-01-30 18:25:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31683
31684         * configure.ac:
31685         * gst-libs/gst/vaapi/Makefile.am:
31686         * gst-libs/gst/vaapi/glibcompat.h:
31687         * gst-libs/gst/vaapi/sysdeps.h:
31688           Add glib compatibility glue for older versions.
31689
31690 2012-01-30 18:12:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31691
31692         * gst-libs/gst/vaapi/Makefile.am:
31693         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31694         * gst-libs/gst/vaapi/gstvaapicontext.c:
31695         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31696         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31697         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31698         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31699         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31700         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31701         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31702         * gst-libs/gst/vaapi/gstvaapidisplay.c:
31703         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31704         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31705         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
31706         * gst-libs/gst/vaapi/gstvaapiimage.c:
31707         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
31708         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
31709         * gst-libs/gst/vaapi/gstvaapiobject.c:
31710         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
31711         * gst-libs/gst/vaapi/gstvaapiprofile.c:
31712         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31713         * gst-libs/gst/vaapi/gstvaapisurface.c:
31714         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
31715         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31716         * gst-libs/gst/vaapi/gstvaapitexture.c:
31717         * gst-libs/gst/vaapi/gstvaapiutils.c:
31718         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31719         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31720         * gst-libs/gst/vaapi/gstvaapivalue.c:
31721         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31722         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
31723         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
31724         * gst-libs/gst/vaapi/gstvaapivideopool.c:
31725         * gst-libs/gst/vaapi/gstvaapivideosink.c:
31726         * gst-libs/gst/vaapi/gstvaapiwindow.c:
31727         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
31728         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
31729         * gst-libs/gst/vaapi/sysdeps.h:
31730           Add header for system-dependent definitions.
31731
31732 2012-01-30 10:15:32 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31733
31734         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31735         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31736         * gst-libs/gst/vaapi/gstvaapiutils.c:
31737         * gst-libs/gst/vaapi/gstvaapiutils.h:
31738           decoder: optimize slice data buffers initialization.
31739           VA drivers may have a faster means to transfer user buffers to GPU
31740           buffers than using memcpy(). In particular, on Intel Gen graphics, we
31741           can use pwrite(). This provides for faster upload of bitstream and can
31742           help higher bitrates.
31743           vaapi_create_buffer() helper function was also updated to allow for
31744           un-mapped buffers and pre-initialized data for buffers.
31745
31746 2012-01-27 17:28:50 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31747
31748         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31749           h264: simplify RefPicList reconstruction.
31750
31751 2012-01-27 16:08:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31752
31753         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31754           h264: flush DPB when the end of the sequence is reached.
31755
31756 2012-01-24 15:38:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31757
31758         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31759           h264: handle Decoded Picture Buffer (DPB).
31760
31761 2012-01-24 09:20:25 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31762
31763         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31764           h264: fix pred_weight_table() reconstruction.
31765           Only the explicit pred_weight_table(), possibly with the inferred default
31766           values, shall be required. e.g. don't fill in the table if weighted_pred_flag
31767           is not set for P/SP slices.
31768
31769 2012-01-23 15:03:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31770
31771         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31772           h264: execute reference picture marking process (MMCO).
31773
31774 2012-01-23 15:20:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31775
31776         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31777           h264: fix presentation timestamps.
31778
31779 2012-01-18 13:38:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31780
31781         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31782           h264: execute reference picture marking process (sliding window).
31783
31784 2012-01-17 10:42:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31785
31786         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31787           h264: handle avcC format for decoding buffers.
31788
31789 2011-11-25 14:37:00 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
31790
31791         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31792           h264: handle codec-data.
31793           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31794
31795 2011-08-12 17:43:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31796
31797         * gst-libs/gst/vaapi/Makefile.am:
31798         * gst-libs/gst/vaapi/gstvaapidecoder_h264.c:
31799         * gst-libs/gst/vaapi/gstvaapidecoder_h264.h:
31800         * gst/vaapi/gstvaapidecode.c:
31801         * tests/test-decode.c:
31802           Add initial H.264 decoder.
31803
31804 2012-01-26 15:28:42 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31805
31806         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31807         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31808           decoder: retain proxy surface until the GstVaapiPicture is destroyed.
31809           Keep a valid reference to the proxy in GstVaapiPicture so that frames
31810           marked as "used for reference" could be kept during the lifetime of the
31811           picture. i.e. don't release them too soon as they could be re-used right
31812           away.
31813
31814 2012-01-26 15:19:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31815
31816         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31817         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31818         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31819           decoder: properly reference count pictures.
31820           This fixes cases where a GstVaapiPicture would be destroyed whereas
31821           there is still a valid instance of it in either prev, current or
31822           next picture.
31823
31824 2012-01-26 14:54:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31825
31826         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31827         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31828         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31829         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31830           decoder: simplify output of decoded frames.
31831           Drop obsolete gst_vaapi_decoder_push_surface() that was no longer used.
31832           Change gst_vaapi_decoder_push_surface_proxy() semantics to assume PTS
31833           is already set correctly and reference count increased, if necessary.
31834
31835 2012-01-26 09:48:11 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31836
31837         * gst-libs/gst/vaapi/Makefile.am:
31838         * gst-libs/gst/vaapi/gstvaapicodec_objects.c:
31839         * gst-libs/gst/vaapi/gstvaapicodec_objects.h:
31840         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31841         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
31842         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
31843         * gst-libs/gst/vaapi/gstvaapidecoder_objects.c:
31844         * gst-libs/gst/vaapi/gstvaapidecoder_objects.h:
31845         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31846         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
31847           decoder: rework the internal VA objects API.
31848           The new API simplifies a lot reference counting and makes it more
31849           flexible for future additions/changes. The GstVaapiCodecInfo is
31850           also gone. Rather, new helper macros are provided to allocate
31851           picture, slice and quantization matrix parameter buffers.
31852
31853 2012-01-24 10:21:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31854
31855         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31856         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31857           decoder: allow slices to be attached to pictures later.
31858
31859 2011-11-21 18:39:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31860
31861         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31862         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31863           decoder: add ref_count to GstVaapiPicture.
31864
31865 2012-01-23 11:48:42 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31866
31867         * gst/vaapi/gstvaapisink.c:
31868           vaapisink: cap window size to the maximum display size.
31869
31870 2012-01-18 10:23:41 +0100  Zhao Halley <halley.zhao@intel.com>
31871
31872         * gst-libs/gst/vaapi/gstvaapiprofile.c:
31873         * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31874           profile: match video/x-h263 as H.263 Baseline profile.
31875           HACK: qtdemux does not report profiles for H.263. So, assume plain
31876           "video/x-h263" is H.263 Baseline profile.
31877           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31878
31879 2012-01-18 10:22:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31880
31881         * gst-libs/gst/vaapi/gstvaapidisplay.c:
31882         * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31883           display: report H.263 Baseline profile.
31884           HACK: expose GST_VAAPI_PROFILE_H263_BASELINE for decoding if MPEG-4:2 Simple
31885           profile (VAProfileMPEG4Simple) is supported.
31886
31887 2012-01-24 10:06:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31888
31889         * gst-libs/gst/vaapi/Makefile.am:
31890         * gst-libs/gst/vaapi/gstvaapiworkarounds.h:
31891           Add template for workarounds.
31892
31893 2012-01-18 10:47:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31894
31895         * tests/test-decode.c:
31896           tests: error out if FFmpeg|codecparsers are not supported.
31897
31898 2012-01-18 10:42:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31899
31900         * docs/reference/libs/libs-sections.txt:
31901         * gst-libs/gst/vaapi/gstvaapisurface.h:
31902         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
31903           surface: don't expose gst_vaapi_surface_get_parent_context().
31904           gst_vaapi_surface_get_parent_context() was not meant to be exposed globally.
31905           It's just an internal helper function. However, it's still possible to get
31906           the parent context through the "parent-context" property.
31907
31908 2012-01-16 14:19:00 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31909
31910         * tests/Makefile.am:
31911         * tests/test-subpicture.c:
31912           tests: fix build without FFmpeg.
31913
31914 2012-01-16 14:09:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31915
31916         * configure.ac:
31917           Bump version for development.
31918
31919 2012-01-16 11:05:31 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31920
31921         * NEWS:
31922         * configure.ac:
31923           0.3.3.
31924
31925 2012-01-16 11:03:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31926
31927         * README:
31928         * debian.upstream/copyright:
31929         * gst-libs/gst/vaapi/gstvaapicontext.c:
31930         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31931         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
31932         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31933         * gst-libs/gst/vaapi/gstvaapidisplay.c:
31934         * gst-libs/gst/vaapi/gstvaapidisplay.h:
31935         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31936         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
31937         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31938         * gst-libs/gst/vaapi/gstvaapiimage.c:
31939         * gst-libs/gst/vaapi/gstvaapiimage.h:
31940         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31941         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31942         * gst-libs/gst/vaapi/gstvaapiutils.c:
31943         * gst-libs/gst/vaapi/gstvaapiutils.h:
31944         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31945         * gst-libs/gst/vaapi/gstvaapiwindow.c:
31946         * gst/vaapi/gstvaapi.c:
31947         * gst/vaapi/gstvaapidecode.c:
31948         * gst/vaapi/gstvaapidownload.c:
31949         * gst/vaapi/gstvaapidownload.h:
31950         * gst/vaapi/gstvaapipluginutil.c:
31951         * gst/vaapi/gstvaapipluginutil.h:
31952         * gst/vaapi/gstvaapisink.c:
31953         * gst/vaapi/gstvaapiupload.c:
31954         * gst/vaapi/gstvaapiupload.h:
31955         * tests/test-decode.c:
31956           legal: fix year for some copyright notices.
31957
31958 2012-01-16 10:42:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31959
31960         * gst-libs/gst/vaapi/gstvaapicontext.c:
31961         * gst-libs/gst/vaapi/gstvaapicontext.h:
31962         * gst-libs/gst/vaapi/gstvaapidecoder.h:
31963         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
31964         * gst-libs/gst/vaapi/gstvaapidisplay.c:
31965         * gst-libs/gst/vaapi/gstvaapidisplay.h:
31966         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
31967         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
31968         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
31969         * gst-libs/gst/vaapi/gstvaapiimage.c:
31970         * gst-libs/gst/vaapi/gstvaapiimage.h:
31971         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
31972         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
31973         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
31974         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
31975         * gst-libs/gst/vaapi/gstvaapisurface.c:
31976         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
31977         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
31978         * gst-libs/gst/vaapi/gstvaapiutils.c:
31979         * gst-libs/gst/vaapi/gstvaapiutils.h:
31980         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
31981         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
31982         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
31983         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
31984         * gst-libs/gst/vaapi/gstvaapiwindow.c:
31985         * gst/vaapi/gstvaapidownload.h:
31986         * gst/vaapi/gstvaapisink.h:
31987         * gst/vaapi/gstvaapiupload.h:
31988         * tests/test-decode.c:
31989           legal: add Intel copyright on modified files.
31990
31991 2012-01-16 10:41:10 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
31992
31993         * gst-libs/gst/vaapi/gstvaapi_priv.h:
31994         * gst-libs/gst/vaapi/gstvaapicompat.h:
31995         * gst-libs/gst/vaapi/gstvaapicontext.c:
31996         * gst-libs/gst/vaapi/gstvaapicontext.h:
31997         * gst-libs/gst/vaapi/gstvaapidebug.h:
31998         * gst-libs/gst/vaapi/gstvaapidecoder.c:
31999         * gst-libs/gst/vaapi/gstvaapidecoder.h:
32000         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32001         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
32002         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32003         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32004         * gst-libs/gst/vaapi/gstvaapidisplay.h:
32005         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32006         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
32007         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
32008         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32009         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32010         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
32011         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
32012         * gst-libs/gst/vaapi/gstvaapiimage.c:
32013         * gst-libs/gst/vaapi/gstvaapiimage.h:
32014         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32015         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32016         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
32017         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
32018         * gst-libs/gst/vaapi/gstvaapiobject.c:
32019         * gst-libs/gst/vaapi/gstvaapiobject.h:
32020         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
32021         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
32022         * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
32023         * gst-libs/gst/vaapi/gstvaapiprofile.c:
32024         * gst-libs/gst/vaapi/gstvaapiprofile.h:
32025         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32026         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32027         * gst-libs/gst/vaapi/gstvaapisurface.c:
32028         * gst-libs/gst/vaapi/gstvaapisurface.h:
32029         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
32030         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
32031         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32032         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32033         * gst-libs/gst/vaapi/gstvaapitexture.c:
32034         * gst-libs/gst/vaapi/gstvaapitexture.h:
32035         * gst-libs/gst/vaapi/gstvaapitypes.h:
32036         * gst-libs/gst/vaapi/gstvaapiutils.c:
32037         * gst-libs/gst/vaapi/gstvaapiutils.h:
32038         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32039         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
32040         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32041         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
32042         * gst-libs/gst/vaapi/gstvaapivalue.c:
32043         * gst-libs/gst/vaapi/gstvaapivalue.h:
32044         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32045         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32046         * gst-libs/gst/vaapi/gstvaapivideopool.c:
32047         * gst-libs/gst/vaapi/gstvaapivideopool.h:
32048         * gst-libs/gst/vaapi/gstvaapivideosink.c:
32049         * gst-libs/gst/vaapi/gstvaapivideosink.h:
32050         * gst-libs/gst/vaapi/gstvaapiwindow.c:
32051         * gst-libs/gst/vaapi/gstvaapiwindow.h:
32052         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
32053         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
32054         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
32055         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
32056         * gst/vaapi/gstvaapidecode.c:
32057         * gst/vaapi/gstvaapidecode.h:
32058         * gst/vaapi/gstvaapidownload.c:
32059         * gst/vaapi/gstvaapidownload.h:
32060         * gst/vaapi/gstvaapisink.c:
32061         * gst/vaapi/gstvaapisink.h:
32062         * gst/vaapi/gstvaapiupload.c:
32063         * gst/vaapi/gstvaapiupload.h:
32064         * tests/image.c:
32065         * tests/image.h:
32066         * tests/test-decode.c:
32067         * tests/test-decode.h:
32068         * tests/test-display.c:
32069         * tests/test-h264.c:
32070         * tests/test-h264.h:
32071         * tests/test-mpeg2.c:
32072         * tests/test-mpeg2.h:
32073         * tests/test-surfaces.c:
32074         * tests/test-textures.c:
32075         * tests/test-vc1.c:
32076         * tests/test-vc1.h:
32077         * tests/test-windows.c:
32078           legal: fix copyright notices to include "Copyright" term.
32079
32080 2011-12-09 16:44:03 +0800  Zhao Halley <halley.zhao@intel.com>
32081
32082         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32083         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32084           mpeg4: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32085           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32086
32087 2011-12-09 16:28:11 +0800  Zhao Halley <halley.zhao@intel.com>
32088
32089         * gst-libs/gst/vaapi/Makefile.am:
32090         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.c:
32091         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg4.h:
32092         * gst/vaapi/gstvaapidecode.c:
32093           Add initial MPEG-4 decoder.
32094           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32095
32096 2011-11-18 15:41:40 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32097
32098         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32099         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32100           vc1: replace GstVaapiTSB with GstAdapter (gst-plugins-base >= 0.10.24).
32101           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32102
32103 2011-10-07 11:50:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32104
32105         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32106           vc1: fix codec-data decoding for WMV3 format.
32107
32108 2011-10-07 11:12:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32109
32110         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32111           vc1: fix presentation timestamps.
32112
32113 2011-10-06 15:59:22 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32114
32115         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32116           vc1: fix MV mode packing.
32117
32118 2011-10-05 16:41:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32119
32120         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32121           vc1: handle codec-data.
32122
32123 2011-10-05 15:56:36 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32124
32125         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32126           vc1: handle encapsulated bitstreams.
32127
32128 2011-10-04 17:51:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32129
32130         * gst-libs/gst/vaapi/gstvaapidecoder.c:
32131         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32132         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32133           vc1: fix bitplanes decoding.
32134
32135 2011-10-04 14:15:55 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32136
32137         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32138           vc1: fix BFRACTION reconstruction.
32139
32140 2011-09-30 17:16:23 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32141
32142         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32143           vc1: fix framerate calculation.
32144
32145 2011-09-30 13:40:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32146
32147         * gst-libs/gst/vaapi/Makefile.am:
32148         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.c:
32149         * gst-libs/gst/vaapi/gstvaapidecoder_vc1.h:
32150         * gst/vaapi/gstvaapidecode.c:
32151         * tests/test-decode.c:
32152           Add initial VC-1 decoder.
32153
32154 2012-01-09 17:37:34 +0100  Zhao Halley <halley.zhao@intel.com>
32155
32156         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32157           mpeg2: fix first field detection.
32158           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32159
32160 2012-01-06 16:44:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32161
32162         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32163           mpeg2: fix quantisation matrix construction.
32164
32165 2011-11-18 15:06:07 +0200  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32166
32167         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32168         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32169           mpeg2: replace GstVaapiTSB API with GstAdapter (gst-plugins-base >= 0.10.24).
32170           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32171
32172 2011-09-14 18:11:57 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32173
32174         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32175           mpeg2: fix packets spanning over two buffers.
32176
32177 2011-09-12 18:20:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32178
32179         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32180           mpeg2: ignore system start codes (PES headers).
32181
32182 2011-09-12 18:02:53 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32183
32184         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32185           mpeg2: handle closed_gop.
32186
32187 2011-08-05 11:55:11 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32188
32189         * gst-libs/gst/vaapi/Makefile.am:
32190         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.c:
32191         * gst-libs/gst/vaapi/gstvaapidecoder_mpeg2.h:
32192         * gst/vaapi/gstvaapidecode.c:
32193         * tests/test-decode.c:
32194           Add initial MPEG-2 decoder.
32195
32196 2011-08-12 10:21:19 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32197
32198         * configure.ac:
32199         * gst-libs/gst/vaapi/Makefile.am:
32200         * gst/vaapi/gstvaapidecode.c:
32201         * tests/test-decode.c:
32202           Allow conditional build of GStreamer/FFmpeg bitstream parsers.
32203
32204 2011-08-05 11:53:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32205
32206         * gst-libs/gst/vaapi/gstvaapidecoder.c:
32207         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32208           Add VA decoder helpers.
32209
32210 2011-08-05 11:52:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32211
32212         * gst-libs/gst/vaapi/gstvaapidecoder.h:
32213           decoder: add new error codes.
32214           GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_PROFILE: for unsupported profile
32215           GST_VAAPI_DECODER_STATUS_ERROR_UNSUPPORTED_CHROMA_FORMAT: for unsupported chroma format
32216
32217 2011-09-12 13:00:59 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32218
32219         * gst-libs/gst/vaapi/Makefile.am:
32220         * gst-libs/gst/vaapi/gstvaapiutils_tsb.c:
32221         * gst-libs/gst/vaapi/gstvaapiutils_tsb.h:
32222           Add timestamp buffer store helper utils.
32223
32224 2011-08-04 17:29:41 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32225
32226         * gst-libs/gst/vaapi/gstvaapiutils.c:
32227         * gst-libs/gst/vaapi/gstvaapiutils.h:
32228           Add VA buffer helpers.
32229
32230 2012-01-13 15:03:38 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32231
32232         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32233           utils: slight improvements to gl_bind_texture().
32234
32235 2012-01-13 14:13:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32236
32237         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32238           utils: pretty-print output of gl_get_error_string().
32239
32240 2012-01-13 14:03:29 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32241
32242         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
32243           utils: rewrite gl_perspective() as per OpenGL FAQ 9.085.
32244
32245 2012-01-13 12:09:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32246
32247         * gst-libs/gst/vaapi/gstvaapiutils.c:
32248           utils: simplify string of VAProfile/VAEntrypoint.
32249
32250 2012-01-13 11:46:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32251
32252         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32253         * gst-libs/gst/vaapi/gstvaapiutils.c:
32254         * gst-libs/gst/vaapi/gstvaapiutils.h:
32255           utils: drop string_of_FOURCC() in favor of standard GST_FOURCC_* helpers.
32256
32257 2012-01-12 17:18:47 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32258
32259         * NEWS:
32260           NEWS: updates.
32261
32262 2012-01-12 15:34:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32263
32264         * tests/test-decode.c:
32265           tests: check for shared VA displays (display cache).
32266
32267 2012-01-12 15:30:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32268
32269         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32270           display: always free VA display cache if it is empty.
32271
32272 2012-01-12 15:03:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32273
32274         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32275         * gst-libs/gst/vaapi/gstvaapidisplay.h:
32276         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
32277         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
32278         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
32279           display: use VA display cache for X11 and GLX winsys.
32280
32281 2012-01-12 12:46:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32282
32283         * gst-libs/gst/vaapi/Makefile.am:
32284         * gst-libs/gst/vaapi/gstvaapidisplay.h:
32285         * gst-libs/gst/vaapi/gstvaapidisplaycache.c:
32286         * gst-libs/gst/vaapi/gstvaapidisplaycache.h:
32287           display: implement a VA display cache.
32288
32289 2012-01-11 14:13:06 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32290
32291         * gst/vaapi/gstvaapipluginutil.c:
32292           vaapiplugin: fix gst_vaapi_ensure_display() to use system defaults.
32293           This ensures the display name provided to gst_vaapi_display_*_new()
32294           maps to the system defaults, instead of forcing "" that could be different
32295           from the current DISPLAY name.
32296
32297 2011-08-26 15:44:25 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32298
32299         * gst/vaapi/gstvaapiupload.c:
32300           vaapiupload: only set caps on newly created buffers.
32301           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32302
32303 2012-01-11 14:11:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32304
32305         * gst/vaapi/gstvaapisink.c:
32306           vaapisink: ensure VA display in GstBaseSink::start() hook.
32307           This ensures a VA display is ready by the time upstream elements request
32308           for it.
32309
32310 2011-08-26 15:44:46 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32311
32312         * gst/vaapi/gstvaapisink.c:
32313           vaapisink: don't leak GL texture.
32314           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32315
32316 2012-01-09 16:51:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32317
32318         * gst/vaapi/gstvaapisink.c:
32319           vaapisink: fix calculation of render region.
32320
32321 2012-01-09 11:23:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32322
32323         * gst/vaapi/gstvaapisink.c:
32324           vaapisink: automatically fit video to window.
32325
32326 2012-01-09 10:37:30 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32327
32328         * gst/vaapi/gstvaapisink.c:
32329           vaapisink: implement GstXOverlay::set_render_rectangle().
32330
32331 2012-01-09 11:04:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32332
32333         * gst-libs/gst/vaapi/gstvaapiwindow.c:
32334           window: always check geometry when the window is mapped.
32335
32336 2012-01-06 17:51:59 +0100  Zhao Halley <halley.zhao@intel.com>
32337
32338         * gst-libs/gst/vaapi/gstvaapiutils.c:
32339           Add missing profiles from VA-API 0.32.0.
32340           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32341
32342 2012-01-06 16:48:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32343
32344         * .gitignore:
32345           .gitignore: add test-subpicture.
32346
32347 2012-01-06 11:23:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32348
32349         * configure.ac:
32350           Bump version for development.
32351
32352 2012-01-06 11:20:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32353
32354         * NEWS:
32355         * configure.ac:
32356           0.3.2.
32357
32358 2012-01-06 11:18:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32359
32360         * tests/Makefile.am:
32361           tests: fix make dist (ship with test-subpicture-data.h).
32362
32363 2012-01-05 17:35:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32364
32365         * NEWS:
32366           NEWS: updates.
32367
32368 2012-01-05 17:09:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32369
32370         * gst-libs/gst/vaapi/gstvaapidecoder.c:
32371         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
32372         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32373           decoder: fix possible leak of VA surfaces.
32374           Under some circumstances, we could have leaked a surface, thus not
32375           releasing it to the pool of available surfaces in the VA context.
32376           The strategy is now to use a proxy earlier and automatically ref/unref
32377           whenever necessary. In particular, during the lifetime needed for FFmpeg.
32378
32379 2012-01-05 16:59:57 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32380
32381         * docs/reference/libs/libs-sections.txt:
32382         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32383         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
32384           surfaceproxy: add helper to retrieve the VA surface ID.
32385
32386 2012-01-05 16:44:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32387
32388         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
32389           surfaceproxy: simplify destruction.
32390           Also make sure to always make sure to release the surface back to the
32391           pool of surfaces in the associated VA context, if any.
32392
32393 2012-01-05 16:26:49 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32394
32395         * gst/vaapi/gstvaapidecode.c:
32396           vaapidecode: fix deinitialization order.
32397
32398 2012-01-05 14:50:26 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32399
32400         * gst-libs/gst/vaapi/gstvaapicontext.c:
32401           context: avoid self reference loops with surfaces.
32402
32403 2012-01-05 11:23:01 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32404
32405         * debian.upstream/control.in:
32406           debian: update control.in description for new plugins.
32407
32408 2012-01-05 11:01:56 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32409
32410         * gst/vaapi/gstvaapiupload.c:
32411           vaapiupload: use new gst_vaapi_append_surface_caps() helper.
32412           This also fixes extra structures, beyond the one at index 0, to hold
32413           the right additional values.
32414
32415 2012-01-05 10:55:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32416
32417         * gst/vaapi/gstvaapiupload.c:
32418           vaapiupload: fix sink (YUV) caps to not report type and opengl fields.
32419
32420 2012-01-05 10:50:59 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32421
32422         * README:
32423         * docs/reference/plugins/plugins-docs.xml.in:
32424         * docs/reference/plugins/plugins-sections.txt:
32425         * docs/reference/plugins/plugins.types:
32426         * gst/vaapi/Makefile.am:
32427         * gst/vaapi/gstvaapi.c:
32428         * gst/vaapi/gstvaapidownload.c:
32429         * gst/vaapi/gstvaapidownload.h:
32430           vaapidownload: add new plugin to download pixels from VA surfaces.
32431
32432 2012-01-05 11:00:39 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32433
32434         * gst/vaapi/gstvaapipluginutil.c:
32435         * gst/vaapi/gstvaapipluginutil.h:
32436           vaapipluingutils: add helper to append surface caps to YUV caps.
32437
32438 2012-01-05 10:29:48 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32439
32440         * docs/reference/libs/libs-sections.txt:
32441         * gst-libs/gst/vaapi/gstvaapiimage.c:
32442         * gst-libs/gst/vaapi/gstvaapiimage.h:
32443           image: add helpers to extract pixels to user buffers.
32444
32445 2012-01-04 11:34:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32446
32447         * gst-libs/gst/vaapi/gstvaapiimage.c:
32448           image: simplify initialization of raw images from video buffers.
32449
32450 2012-01-04 11:29:11 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32451
32452         * gst-libs/gst/vaapi/gstvaapiimage.c:
32453           image: fix update from NV12 buffers.
32454
32455 2012-01-03 18:16:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32456
32457         * gst/vaapi/gstvaapiupload.c:
32458           vaapiupload: fix memory leak in _init() function.
32459
32460 2012-01-03 14:34:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32461
32462         * NEWS:
32463         * README:
32464         * debian.upstream/control.in:
32465         * docs/reference/plugins/plugins-docs.xml.in:
32466         * docs/reference/plugins/plugins-sections.txt:
32467         * docs/reference/plugins/plugins.types:
32468         * gst/vaapi/Makefile.am:
32469         * gst/vaapi/gstvaapi.c:
32470         * gst/vaapi/gstvaapiupload.c:
32471         * gst/vaapi/gstvaapiupload.h:
32472           Rename vaapiconvert element to vaapiupload.
32473
32474 2012-01-03 13:54:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32475
32476         * configure.ac:
32477           Bump version for development.
32478
32479 2012-01-03 13:42:12 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32480
32481         * NEWS:
32482         * configure.ac:
32483           0.3.1.
32484
32485 2011-12-14 15:22:24 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32486
32487         * NEWS:
32488           NEWS: updates.
32489
32490 2011-12-14 14:40:37 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32491
32492         * gst-libs/gst/vaapi/gstvaapisurface.c:
32493         * gst-libs/gst/vaapi/gstvaapisurface.h:
32494         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32495         * gst/vaapi/gstvaapisink.c:
32496           surface: apply composition to the parent context, if requested.
32497
32498 2011-12-14 14:35:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32499
32500         * docs/reference/libs/libs-sections.txt:
32501         * gst-libs/gst/vaapi/gstvaapicontext.c:
32502         * gst-libs/gst/vaapi/gstvaapicontext.h:
32503           context: make it possible to apply composition globally.
32504
32505 2011-12-14 14:13:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32506
32507         * gst-libs/gst/vaapi/gstvaapisurface.c:
32508           surface: fix associate subpicture to not report deassociation errors.
32509
32510 2011-12-14 13:46:26 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32511
32512         * gst-libs/gst/vaapi/gstvaapisurface.c:
32513           surface: fix typo in debug message.
32514
32515 2011-12-14 13:16:21 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32516
32517         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32518         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
32519         * gst-libs/gst/vaapi/gstvaapisurface.c:
32520           subpicture: add helper to create subpicture from GstVideoOverlayRectangle.
32521
32522 2011-12-13 16:53:15 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32523
32524         * docs/reference/libs/libs-sections.txt:
32525         * gst-libs/gst/vaapi/Makefile.am:
32526         * gst-libs/gst/vaapi/gstvaapicontext.c:
32527         * gst-libs/gst/vaapi/gstvaapisurface.c:
32528         * gst-libs/gst/vaapi/gstvaapisurface.h:
32529         * gst-libs/gst/vaapi/gstvaapisurface_priv.h:
32530           surface: record parent context.
32531
32532 2011-12-13 15:59:02 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32533
32534         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
32535         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32536         * gst/vaapi/gstvaapidecode.c:
32537         * gst/vaapi/gstvaapisink.c:
32538           Fix warnings.
32539
32540 2011-12-13 15:51:58 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32541
32542         * gst-libs/gst/vaapi/gstvaapisurface.c:
32543         * gst-libs/gst/vaapi/gstvaapisurface.h:
32544         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32545         * gst/vaapi/gstvaapisink.c:
32546           Rename gst_vaapi_surface_update_composition() to gst_vaapi_surface_set_subpictures_from_composition().
32547
32548 2011-12-13 13:40:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32549
32550         * configure.ac:
32551           configure: check for GstVideoOverlayComposition.
32552
32553 2011-12-12 18:42:44 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32554
32555         * NEWS:
32556           NEWS: updates.
32557
32558 2011-11-25 15:00:25 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32559
32560         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32561           converter: add support for GstVideoOverlayComposition planes.
32562           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32563
32564 2011-11-23 16:45:46 -0300  Thibault Saunier <thibault.saunier@collabora.com>
32565
32566         * gst/vaapi/gstvaapisink.c:
32567           vaapisink: handle GstVideoOverlayComposition planes.
32568           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32569
32570 2011-12-12 18:27:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32571
32572         * gst-libs/gst/vaapi/gstvaapisurface.c:
32573           surface: use unscaled overlay rectangle for blending.
32574
32575 2011-12-12 18:37:13 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32576
32577         * gst-libs/gst/vaapi/gstvaapisurface.c:
32578           surface: fix VA image leak when an error occurred.
32579
32580 2011-11-25 14:59:56 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32581
32582         * gst-libs/gst/vaapi/gstvaapisurface.c:
32583         * gst-libs/gst/vaapi/gstvaapisurface.h:
32584           surface: add helper to handle GstVideoOverlayComposition.
32585           This helper resets the subpictures to reflect the current composition
32586           layers provided with the buffers.
32587           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32588
32589 2011-12-12 18:13:19 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32590
32591         * docs/reference/libs/libs-sections.txt:
32592         * gst-libs/gst/vaapi/Makefile.am:
32593         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
32594         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
32595         * gst/vaapi/gstvaapiconvert.c:
32596           image: add gst_vaapi_image_format_from_video() helper.
32597
32598 2011-12-12 16:34:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32599
32600         * gst-libs/gst/vaapi/gstvaapiimage.c:
32601         * gst-libs/gst/vaapi/gstvaapiimage.h:
32602           image: allow updates from GstVaapiImageRaw.
32603
32604 2011-12-12 14:34:03 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32605
32606         * gst-libs/gst/vaapi/gstvaapiimage.c:
32607         * gst-libs/gst/vaapi/gstvaapiimage.h:
32608         * gst/vaapi/gstvaapiconvert.c:
32609         * tests/test-subpicture.c:
32610           image: allow partial updates.
32611
32612 2011-12-12 15:31:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32613
32614         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
32615           subpicture: fix doc for gst_vaapi_subpicture_set_image().
32616
32617 2011-12-12 13:39:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32618
32619         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32620           display: fix has_image_format() to check against subpicture formats.
32621
32622 2011-10-17 18:43:15 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32623
32624         * tests/test-subpicture.c:
32625           tests: fix subpicture test.
32626
32627 2011-10-14 13:00:12 -0300  Thibault Saunier <thibault.saunier@collabora.com>
32628
32629         * tests/Makefile.am:
32630         * tests/test-subpicture-data.c:
32631         * tests/test-subpicture-data.h:
32632         * tests/test-subpicture.c:
32633           tests: add test for subpictures.
32634           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32635
32636 2011-11-25 12:28:04 -0500  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32637
32638         * gst/vaapi/gstvaapiconvert.c:
32639         * gst/vaapi/gstvaapidecode.c:
32640           Add missing video context queries.
32641           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32642
32643 2011-12-12 13:22:07 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32644
32645         * configure.ac:
32646           Bump version for development.
32647
32648 2011-12-12 10:04:32 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32649
32650         * gst-libs/gst/video/Makefile.am:
32651         * gst-libs/gst/video/gstbasevideocodec.c:
32652         * gst-libs/gst/video/gstbasevideocodec.h:
32653         * gst-libs/gst/video/gstbasevideodecoder.c:
32654         * gst-libs/gst/video/gstbasevideodecoder.h:
32655         * gst-libs/gst/video/gstbasevideoutils.c:
32656         * gst-libs/gst/video/gstbasevideoutils.h:
32657           Drop unused copy of GstBaseVideoDecoder.
32658
32659 2011-12-09 11:46:45 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32660
32661         * NEWS:
32662         * configure.ac:
32663           0.3.0.
32664
32665 2011-12-09 11:38:43 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32666
32667         * README:
32668           README: update dependencies.
32669
32670 2011-12-09 11:38:34 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32671
32672         * NEWS:
32673           NEWS: updates.
32674
32675 2011-12-09 11:20:04 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32676
32677         * configure.ac:
32678           configure: check for GstBaseSink 'query' vfunc.
32679
32680 2011-12-09 10:45:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32681
32682         * gst/vaapi/Makefile.am:
32683           vaapiplugin: include local build dir to CFLAGS for generated files.
32684
32685 2011-12-09 10:44:52 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32686
32687         * autogen.sh:
32688           autogen: don't configure if NO_CONFIGURE variable is set.
32689
32690 2011-12-08 11:54:59 +0100  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32691
32692         * gst/vaapi/gstvaapidecode.c:
32693         * gst/vaapi/gstvaapidecode.h:
32694           vaapidecode: return sink caps template if decoder is in NULL state.
32695           Otherwise, the decoder would always create its own X display instead
32696           of probing it from the downstream element, which is not reliable.
32697           e.g. DISPLAY is not :0 or when running on Wayland.
32698           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32699
32700 2011-12-08 15:44:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32701
32702         * gst/vaapi/gstvaapiconvert.c:
32703         * gst/vaapi/gstvaapidecode.c:
32704           vaapiplugin: properly set surface type to "vaapi" in caps.
32705
32706 2011-12-08 15:16:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32707
32708         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
32709           decoder: drop unused headers.
32710
32711 2011-11-04 19:47:25 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32712
32713         * gst/vaapi/gstvaapiconvert.c:
32714         * gst/vaapi/gstvaapidecode.c:
32715           vaapiplugin: properly set opengl support in caps.
32716           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32717
32718 2011-11-04 20:07:52 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32719
32720         * gst/vaapi/gstvaapiconvert.c:
32721         * gst/vaapi/gstvaapidecode.c:
32722           vaapiplugin: allocate GLX buffers when supported.
32723           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32724
32725 2011-11-04 19:47:09 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32726
32727         * gst-libs/gst/vaapi/Makefile.am:
32728         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32729         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.c:
32730         * gst-libs/gst/vaapi/gstvaapivideobuffer_glx.h:
32731         * gst-libs/gst/vaapi/gstvaapivideobuffer_priv.h:
32732         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.c:
32733         * gst-libs/gst/vaapi/gstvaapivideoconverter_glx.h:
32734           videobuffer: add GLX buffer support.
32735           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32736
32737 2011-10-06 16:06:15 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32738
32739         * gst-libs/gst/vaapi/Makefile.am:
32740         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
32741         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
32742           Port to GstSurfaceBuffer interface.
32743           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32744
32745 2011-10-06 16:04:37 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32746
32747         * gst/vaapi/gstvaapidecode.c:
32748         * gst/vaapi/gstvaapisink.c:
32749           Don't use downstream buffer allocation.
32750           With the new video/x-surface abstraction, we can't rely on having a VA
32751           specific sink downstream. Also, there was no particular reason to do that.
32752           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32753
32754 2011-11-04 17:16:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32755
32756         * gst-libs/gst/vaapi/Makefile.am:
32757         * gst-libs/gst/vaapi/gstvaapicontext.c:
32758         * gst-libs/gst/vaapi/gstvaapisurface.h:
32759         * gst/vaapi/gstvaapiconvert.c:
32760         * gst/vaapi/gstvaapisink.c:
32761         * tests/Makefile.am:
32762         * tests/test-surfaces.c:
32763           Change caps to use new video/x-surface generic type.
32764           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32765
32766 2011-11-04 16:50:15 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.co.uk>
32767
32768         * configure.ac:
32769         * gst-libs/gst/vaapi/Makefile.am:
32770         * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
32771         * gst/vaapi/Makefile.am:
32772         * gst/vaapi/gstvaapiconvert.c:
32773         * gst/vaapi/gstvaapidecode.c:
32774         * gst/vaapi/gstvaapipluginutil.c:
32775         * gst/vaapi/gstvaapipluginutil.h:
32776         * gst/vaapi/gstvaapisink.c:
32777         * gst/vaapi/gstvaapisink.h:
32778           Port to GstVideoContext interface.
32779           This new interface allows for upstream and downstream display sharing
32780           that works in both static and dynamic pipelines.
32781           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32782
32783 2011-12-08 14:57:36 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32784
32785         * gst/vaapi/gstvaapisink.c:
32786           vaapisink: use GST_ERROR to print error messages.
32787
32788 2011-12-08 13:30:51 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32789
32790         * gst/vaapi/Makefile.am:
32791           vaapiplugin: link against VA/GLX when enabled.
32792
32793 2011-12-07 19:09:55 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32794
32795         * gst/vaapi/gstvaapiconvert.c:
32796         * gst/vaapi/gstvaapisink.c:
32797           Add Intel copyright information.
32798
32799 2011-12-07 19:04:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32800
32801         * gst/vaapi/gstvaapisink.c:
32802           vaapisink: allow compatibility with gst-plugins-base < 0.10.31.
32803
32804 2011-12-07 18:40:35 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32805
32806         * .gitignore:
32807         * configure.ac:
32808         * gst-libs/gst/Makefile.am:
32809         * gst-libs/gst/gstutils_version.h.in:
32810           Add new GStreamer version check utilities.
32811
32812 2011-07-28 11:14:49 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
32813
32814         * gst/vaapi/gstvaapisink.c:
32815           vaapisink: replace the deprecated xoverlay API with the new one.
32816           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32817
32818 2011-12-07 17:31:09 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32819
32820         * configure.ac:
32821           configure: allow for pre-releases.
32822
32823 2011-10-13 17:08:13 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32824
32825         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32826           display: destroy display on creation failure.
32827           This allows element to detect that the display creation has actually
32828           failed.
32829           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32830
32831 2011-10-13 17:07:35 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32832
32833         * gst-libs/gst/vaapi/gstvaapidisplay.c:
32834           display: don't crash when config is empty.
32835           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32836
32837 2011-12-07 14:42:14 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32838
32839         * README:
32840         * debian.upstream/copyright:
32841           doc: mention Collabora copyrights.
32842
32843 2011-12-07 14:40:20 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32844
32845         * .gitignore:
32846           .gitignore: refine for generated docs.
32847
32848 2011-09-14 15:12:41 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32849
32850         * configure.ac:
32851         * docs/reference/plugins/Makefile.am:
32852         * gst/Makefile.am:
32853         * gst/vaapi/Makefile.am:
32854         * gst/vaapi/gstvaapi.c:
32855         * gst/vaapi/gstvaapiconvert.c:
32856         * gst/vaapi/gstvaapiconvert.h:
32857         * gst/vaapi/gstvaapidecode.c:
32858         * gst/vaapi/gstvaapidecode.h:
32859         * gst/vaapi/gstvaapisink.c:
32860         * gst/vaapi/gstvaapisink.h:
32861         * gst/vaapiconvert/Makefile.am:
32862         * gst/vaapidecode/Makefile.am:
32863           Group all plugins into the same bundle
32864           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32865
32866 2011-07-21 14:31:30 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32867
32868         * configure.ac:
32869           Bump version for development.
32870
32871 2011-12-07 14:17:32 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32872
32873         * configure.ac:
32874         * debian.upstream/control.in:
32875           debian: build against upstream libva packages.
32876
32877 2011-12-07 13:52:17 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32878
32879         * docs/reference/libs/Makefile.am:
32880         * docs/reference/plugins/Makefile.am:
32881         * tests/Makefile.am:
32882           Fix build on Ubuntu 11.10 (Oneric).
32883
32884 2011-12-07 13:14:28 +0100  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32885
32886         * NEWS:
32887           0.2.7.
32888
32889 2011-09-12 16:20:16 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32890
32891         * .gitignore:
32892           Adding ignore file
32893           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32894
32895 2011-10-24 16:18:16 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
32896
32897         * gst/vaapiconvert/gstvaapiconvert.c:
32898         * gst/vaapidecode/gstvaapidecode.c:
32899         * gst/vaapisink/gstvaapisink.c:
32900           Update license in plugin definition
32901           Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32902
32903 2011-10-12 14:00:50 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32904
32905         * NEWS:
32906         * gst-libs/gst/vaapi/gstvaapidecoder.c:
32907           decoder: fix use of invalid data at the end-of-stream.
32908
32909 2011-10-19 14:47:31 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32910
32911         * gst/vaapiconvert/gstvaapiconvert.c:
32912           vaapiconvert: fix some warnings.
32913
32914 2011-10-19 14:43:56 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32915
32916         * configure.ac:
32917         * debian.upstream/changelog.in:
32918         * debian.upstream/control.in:
32919         * debian.upstream/copyright:
32920         * gst/vaapiconvert/gstvaapiconvert.c:
32921         * gst/vaapidecode/gstvaapidecode.c:
32922         * gst/vaapisink/gstvaapisink.c:
32923           Update with my current e-mail address.
32924
32925 2011-10-19 14:39:21 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32926
32927         * NEWS:
32928         * README:
32929           Splitted-Desktop systems relicensed plugins and tests to LGPL v2.1+.
32930
32931 2011-10-18 09:18:20 +0200  warly <warly@warly.org>
32932
32933         * tests/image.c:
32934         * tests/image.h:
32935         * tests/test-decode.c:
32936         * tests/test-decode.h:
32937         * tests/test-display.c:
32938         * tests/test-h264.c:
32939         * tests/test-h264.h:
32940         * tests/test-mpeg2.c:
32941         * tests/test-mpeg2.h:
32942         * tests/test-surfaces.c:
32943         * tests/test-textures.c:
32944         * tests/test-vc1.c:
32945         * tests/test-vc1.h:
32946         * tests/test-windows.c:
32947           switch tests licence to LGPL v2.1+
32948
32949 2011-10-18 09:06:52 +0200  warly <warly@warly.org>
32950
32951         * COPYING:
32952         * README:
32953         * debian.upstream/copyright:
32954         * gst/vaapiconvert/gstvaapiconvert.c:
32955         * gst/vaapiconvert/gstvaapiconvert.h:
32956         * gst/vaapidecode/gstvaapidecode.c:
32957         * gst/vaapidecode/gstvaapidecode.h:
32958         * gst/vaapisink/gstvaapisink.c:
32959         * gst/vaapisink/gstvaapisink.h:
32960           move plugins to LGPL v2.1+
32961
32962 2011-09-14 13:07:18 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32963
32964         * gst/vaapidecode/gstvaapidecode.c:
32965           vaapidecode: fix sink caps to not expose size information.
32966           This fixes this particular issue:
32967           GStreamer-WARNING **: pad vaapidecode0:sink returned caps which are not
32968           a real subset of its template caps
32969
32970 2011-09-14 11:34:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32971
32972         * NEWS:
32973         * gst/vaapidecode/gstvaapidecode.c:
32974           vaapidecode: fix decoding of MPEG-2 PS files.
32975
32976 2011-09-12 13:00:04 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32977
32978         * gst-libs/gst/vaapi/Makefile.am:
32979           Cosmetics (sort source files).
32980
32981 2011-09-08 14:50:24 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32982
32983         * gst/vaapiconvert/gstvaapiconvert.c:
32984         * gst/vaapiconvert/gstvaapiconvert.h:
32985           vaapiconvert: fix direct-rendering caps detection.
32986
32987 2011-09-08 14:40:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32988
32989         * gst-libs/gst/vaapi/gstvaapiimage.c:
32990           Fix gst_vaapi_image_new_with_image().
32991
32992 2011-09-08 13:09:17 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32993
32994         * gst/vaapiconvert/gstvaapiconvert.c:
32995           vaapiconvert: warn when surface failed to be updated with image.
32996
32997 2011-09-06 18:34:33 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
32998
32999         * gst/vaapiconvert/gstvaapiconvert.c:
33000           vaapiconvert: fix autodetection for vaDeriveImage() support.
33001
33002 2011-09-06 17:47:10 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33003
33004         * gst/vaapiconvert/gstvaapiconvert.c:
33005           vaapiconvert: fix memory leak (VA surface image).
33006
33007 2011-09-05 16:20:20 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33008
33009         * NEWS:
33010         * gst/vaapiconvert/gstvaapiconvert.c:
33011           vaapiconvert: fix direct-rendering mode.
33012
33013 2011-09-06 16:49:43 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33014
33015         * docs/reference/libs/libs-sections.txt:
33016         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33017         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33018           Add gst_vaapi_video_buffer_new_from_buffer().
33019           Add helper function to bind a foreign buffer into a GstVaapiVideoBuffer.
33020           Any image, surface or surface proxy will be inherited from the source buffer
33021           if it is a GstVaapiVideoBuffer.
33022
33023 2011-09-05 17:23:05 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33024
33025         * gst/vaapiconvert/gstvaapiconvert.c:
33026           vaapiconvert: protect access to direct_rendering.
33027
33028 2011-09-05 16:18:14 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33029
33030         * gst/vaapiconvert/gstvaapiconvert.c:
33031           vaapiconvert: use gst_vaapi_display_lookup_downstream() helper to get a VA display.
33032
33033 2011-08-01 14:15:39 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33034
33035         * NEWS:
33036         * README:
33037         * debian.upstream/copyright:
33038         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33039         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33040         * gst-libs/gst/vaapi/gstvaapisurface.h:
33041         * gst/vaapidecode/gstvaapidecode.c:
33042         * gst/vaapidecode/gstvaapidecode.h:
33043           Add Intel copyright information.
33044
33045 2011-07-22 15:59:00 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33046
33047         * NEWS:
33048           Updates.
33049
33050 2011-07-22 15:55:47 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33051
33052         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33053           Fix build with newer FFmpeg versions.
33054
33055 2011-07-22 15:39:51 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33056
33057         * gst/vaapidecode/gstvaapidecode.c:
33058         * gst/vaapidecode/gstvaapidecode.h:
33059           Fix decoding of MPEG-2 TS files.
33060
33061 2011-07-22 15:34:48 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33062
33063         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33064           Report caps update only once per video resolution change.
33065
33066 2011-07-22 15:33:13 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33067
33068         * gst-libs/gst/vaapi/gstvaapisurface.h:
33069           Add canonical form (type name) of VA surface caps.
33070
33071 2011-07-22 15:42:16 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33072
33073         * configure.ac:
33074           Bump version for development.
33075
33076 2011-07-19 17:38:40 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33077
33078         * configure.ac:
33079           Use pretty build output with automake >= 1.11.
33080
33081 2011-07-15 16:08:08 +0200  Gwenole Beauchesne <gwenole.beauchesne@intel.com>
33082
33083         * gst/vaapiconvert/Makefile.am:
33084         * gst/vaapidecode/Makefile.am:
33085         * gst/vaapisink/Makefile.am:
33086         * tests/Makefile.am:
33087           Fix build with libva headers not in a standard include dir.
33088
33089 2011-06-14 15:59:08 +0200  Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33090
33091         * configure.ac:
33092           0.2.6.
33093
33094 2011-06-14 13:52:56 +0200  Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33095
33096         * gst-libs/gst/vaapi/gstvaapi_priv.h:
33097         * gst-libs/gst/vaapi/gstvaapicompat.h:
33098         * gst-libs/gst/vaapi/gstvaapicontext.c:
33099         * gst-libs/gst/vaapi/gstvaapicontext.h:
33100         * gst-libs/gst/vaapi/gstvaapidebug.h:
33101         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33102         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33103         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33104         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33105         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33106         * gst-libs/gst/vaapi/gstvaapidisplay.c:
33107         * gst-libs/gst/vaapi/gstvaapidisplay.h:
33108         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33109         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33110         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33111         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33112         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33113         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33114         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33115         * gst-libs/gst/vaapi/gstvaapiimage.c:
33116         * gst-libs/gst/vaapi/gstvaapiimage.h:
33117         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33118         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33119         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33120         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33121         * gst-libs/gst/vaapi/gstvaapiobject.c:
33122         * gst-libs/gst/vaapi/gstvaapiobject.h:
33123         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33124         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33125         * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33126         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33127         * gst-libs/gst/vaapi/gstvaapiprofile.h:
33128         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33129         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33130         * gst-libs/gst/vaapi/gstvaapisurface.c:
33131         * gst-libs/gst/vaapi/gstvaapisurface.h:
33132         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33133         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33134         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33135         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33136         * gst-libs/gst/vaapi/gstvaapitexture.c:
33137         * gst-libs/gst/vaapi/gstvaapitexture.h:
33138         * gst-libs/gst/vaapi/gstvaapitypes.h:
33139         * gst-libs/gst/vaapi/gstvaapiutils.c:
33140         * gst-libs/gst/vaapi/gstvaapiutils.h:
33141         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33142         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33143         * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33144         * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33145         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33146         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33147         * gst-libs/gst/vaapi/gstvaapivalue.c:
33148         * gst-libs/gst/vaapi/gstvaapivalue.h:
33149         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33150         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33151         * gst-libs/gst/vaapi/gstvaapivideopool.c:
33152         * gst-libs/gst/vaapi/gstvaapivideopool.h:
33153         * gst-libs/gst/vaapi/gstvaapivideosink.c:
33154         * gst-libs/gst/vaapi/gstvaapivideosink.h:
33155         * gst-libs/gst/vaapi/gstvaapiwindow.c:
33156         * gst-libs/gst/vaapi/gstvaapiwindow.h:
33157         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33158         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33159         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33160         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33161         * gst/vaapiconvert/gstvaapiconvert.c:
33162         * gst/vaapiconvert/gstvaapiconvert.h:
33163         * gst/vaapidecode/gstvaapidecode.c:
33164         * gst/vaapidecode/gstvaapidecode.h:
33165         * gst/vaapisink/gstvaapisink.c:
33166         * gst/vaapisink/gstvaapisink.h:
33167         * tests/image.c:
33168         * tests/image.h:
33169         * tests/test-decode.c:
33170         * tests/test-decode.h:
33171         * tests/test-display.c:
33172         * tests/test-h264.c:
33173         * tests/test-h264.h:
33174         * tests/test-mpeg2.c:
33175         * tests/test-mpeg2.h:
33176         * tests/test-surfaces.c:
33177         * tests/test-textures.c:
33178         * tests/test-vc1.c:
33179         * tests/test-vc1.h:
33180         * tests/test-windows.c:
33181           Update copyright notice.
33182
33183 2011-06-14 13:51:41 +0200  Gwenole Beauchesne <gbeauchesne@splitted-desktop.com>
33184
33185         * NEWS:
33186         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
33187         * gst-libs/gst/vaapi/gstvaapisurface.c:
33188         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
33189         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
33190         * gst-libs/gst/vaapi/gstvaapitexture.c:
33191         * gst-libs/gst/vaapi/gstvaapiutils.c:
33192         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33193         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
33194         * gst-libs/gst/vaapi/gstvaapivalue.c:
33195         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33196         * gst-libs/gst/vaapi/gstvaapivideopool.c:
33197         * gst-libs/gst/vaapi/gstvaapivideosink.c:
33198         * gst-libs/gst/vaapi/gstvaapiwindow.c:
33199         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
33200         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
33201           Fix licensing terms.
33202
33203 2010-07-20 11:23:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33204
33205         * NEWS:
33206           0.2.5.
33207
33208 2010-07-20 11:21:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33209
33210         * debian.upstream/copyright:
33211           Fix license terms...
33212
33213 2010-07-01 13:19:29 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33214
33215         * gst/vaapisink/gstvaapisink.c:
33216           Render pretty background only in use-reflection=true mode.
33217
33218 2010-07-01 11:43:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33219
33220         * NEWS:
33221           Updates.
33222
33223 2010-07-01 11:41:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33224
33225         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33226           Drop the GLX 1.3 requirement.
33227
33228 2010-07-01 11:38:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33229
33230         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33231         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33232           Call the GLX/Pixmap related functions through the vtable.
33233
33234 2010-07-01 11:11:18 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33235
33236         * NEWS:
33237         * configure.ac:
33238         * gst-libs/gst/vaapi/Makefile.am:
33239         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33240           Drop dependency on libavformat.
33241
33242 2010-06-22 15:15:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33243
33244         * gst-libs/gst/video/gstbasevideodecoder.c:
33245         * gst-libs/gst/video/gstbasevideodecoder.h:
33246           Add gst_base_video_decoder_update_src_caps(). Don't forcibly set "interlaced" field if upstream elements did not have any.
33247
33248 2010-06-22 14:06:25 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33249
33250         * gst-libs/gst/video/gstbasevideodecoder.c:
33251         * gst-libs/gst/video/gstbasevideoutils.c:
33252         * gst-libs/gst/video/gstbasevideoutils.h:
33253           Drop superfluous functions.
33254
33255 2010-06-22 13:57:33 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33256
33257         * gst-libs/gst/video/gstbasevideodecoder.c:
33258           Really drop any dependency on libgstvideo. i.e. inline the helpers.
33259
33260 2010-06-22 13:48:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33261
33262         * gst-libs/gst/video/gstbasevideodecoder.c:
33263           Further drop dependency on libgstvideo.
33264
33265 2010-06-22 12:57:06 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33266
33267         * gst-libs/gst/video/Makefile.am:
33268         * gst-libs/gst/video/gstbasevideocodec.c:
33269         * gst-libs/gst/video/gstbasevideocodec.h:
33270         * gst-libs/gst/video/gstbasevideodecoder.c:
33271         * gst-libs/gst/video/gstbasevideodecoder.h:
33272         * gst-libs/gst/video/gstbasevideoutils.c:
33273         * gst-libs/gst/video/gstbasevideoutils.h:
33274           Add GstBaseVideoDecoder from gst-plugins-bad git.
33275
33276 2010-06-15 12:36:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33277
33278         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33279           Fix GLX version check.
33280
33281 2010-06-14 14:46:41 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33282
33283         * NEWS:
33284         * configure.ac:
33285           Bump version for development.
33286
33287 2010-06-14 14:14:42 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33288
33289         * NEWS:
33290         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33291           Fix decoding of some H.264 streams. e.g. Ice Age 2 trailer.
33292
33293 2010-06-14 12:58:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33294
33295         * NEWS:
33296           Update changelog.
33297
33298 2010-06-14 09:20:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33299
33300         * gst-libs/gst/vaapi/gstvaapicompat.h:
33301           Fix build with older VA-API 0.29-sds.
33302
33303 2010-05-18 11:22:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33304
33305         * gst/vaapisink/gstvaapisink.c:
33306         * gst/vaapisink/gstvaapisink.h:
33307           Fix upscaling in foreign window (Totem).
33308
33309 2010-05-17 12:32:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33310
33311         * gst/vaapisink/gstvaapisink.c:
33312           Soft validate caps since we only care about video/x-vaapi-surface as input. _setcaps() will check for other fields.
33313
33314 2010-05-17 08:55:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33315
33316         * NEWS:
33317         * gst/vaapisink/gstvaapisink.c:
33318           Fix video rendering rect within an embedder window (Totem).
33319
33320 2010-05-17 08:28:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33321
33322         * NEWS:
33323         * gst/vaapisink/gstvaapisink.c:
33324           Disable GLX rendering when vaapisink uses a foreign X window.
33325
33326 2010-05-17 08:24:42 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33327
33328         * gst/vaapisink/gstvaapisink.c:
33329           Simplify GLX rendering code.
33330
33331 2010-05-17 07:32:10 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33332
33333         * configure.ac:
33334           Bump version for development.
33335
33336 2010-05-16 21:44:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33337
33338         * NEWS:
33339           0.2.3.
33340
33341 2010-05-16 21:35:14 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33342
33343         * gst/vaapidecode/gstvaapidecode.c:
33344           Wait for at most one second for a VA surface to become available.
33345
33346 2010-05-16 21:18:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33347
33348         * README:
33349         * configure.ac:
33350           Build-Requires: gstreamer0.10 >= 0.10.10 for gst_caps_merge().
33351
33352 2010-05-16 21:17:49 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33353
33354         * NEWS:
33355         * README:
33356         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33357           Fix decoder caps to report codec aliases.
33358
33359 2010-05-16 21:04:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33360
33361         * NEWS:
33362         * gst/vaapidecode/gstvaapidecode.c:
33363         * gst/vaapidecode/gstvaapidecode.h:
33364           Fix VC-1 decoding through the playbin2 pipeline.
33365
33366 2010-05-15 15:33:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33367
33368         * docs/reference/libs/libs-sections.txt:
33369         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33370         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33371         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33372         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33373           Regularly update and expose decoder caps.
33374
33375 2010-05-15 09:43:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33376
33377         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33378         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33379         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33380           Add mechanism to reinsert buffer leftovers into the queue.
33381
33382 2010-05-15 06:59:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33383
33384         * NEWS:
33385         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33386           Fix memory leak of encoded buffers.
33387
33388 2010-05-15 05:36:15 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33389
33390         * docs/reference/libs/libs-sections.txt:
33391         * gst-libs/gst/vaapi/gstvaapicontext.c:
33392         * gst-libs/gst/vaapi/gstvaapicontext.h:
33393         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33394         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33395           Check for out-of-free-surfaces condition.
33396
33397 2010-05-15 04:35:00 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33398
33399         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33400           Change GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN value to something more generic (-1).
33401
33402 2010-05-15 04:25:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33403
33404         * gst/vaapisink/gstvaapisink.c:
33405           Improve debug info for gst_vaapisink_ensure_render_rect().
33406
33407 2010-05-14 05:02:05 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33408
33409         * configure.ac:
33410           Bump version for development.
33411
33412 2010-05-13 21:52:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33413
33414         * NEWS:
33415           0.2.2.
33416
33417 2010-05-13 21:39:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33418
33419         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33420           Improve previous fix.
33421
33422 2010-05-13 21:27:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33423
33424         * NEWS:
33425         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33426           Fix a crash in the FFmpeg decoder on close.
33427
33428 2010-05-13 16:41:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33429
33430         * README:
33431           Sort platforms by name.
33432
33433 2010-05-13 09:40:52 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33434
33435         * NEWS:
33436         * configure.ac:
33437           Bump version for development.
33438
33439 2010-05-13 09:38:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33440
33441         * gst/vaapisink/gstvaapisink.c:
33442           Add debug info for _show_frame().
33443
33444 2010-05-13 07:19:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33445
33446         * Makefile.am:
33447           Nuke older build dir.
33448
33449 2010-05-13 07:19:21 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33450
33451         * debian.upstream/control.in:
33452           Fix packaging deps.
33453
33454 2010-05-13 06:12:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33455
33456         * NEWS:
33457           Cosmetics.
33458
33459 2010-05-13 06:11:42 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33460
33461         * NEWS:
33462         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
33463           Fix OpenGL texture internal format (Clutter).
33464
33465 2010-05-13 04:40:40 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33466
33467         * NEWS:
33468           Respin release.
33469
33470 2010-05-13 04:27:44 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33471
33472         * gst/vaapisink/gstvaapisink.c:
33473           Debug video & display PARs.
33474
33475 2010-05-13 04:22:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33476
33477         * gst/vaapisink/gstvaapisink.c:
33478           Use XGetGeometry() to retrieve the window size.
33479
33480 2010-05-12 19:40:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33481
33482         * gst/vaapisink/gstvaapisink.c:
33483           Move code around.
33484
33485 2010-05-12 19:35:45 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33486
33487         * gst/vaapisink/gstvaapisink.c:
33488           Ensure VA display is created prior to initializing the window from a specific XID. Also move code down.
33489
33490 2010-05-12 19:18:04 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33491
33492         * README:
33493           Drop obsolete comment.
33494
33495 2010-05-12 19:14:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33496
33497         * NEWS:
33498           0.2.1.
33499
33500 2010-05-12 19:14:35 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33501
33502         * gst/vaapidecode/gstvaapidecode.c:
33503           Fix GstVaapiDisplay refcounting in vaapidecode.
33504
33505 2010-05-12 14:10:38 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33506
33507         * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33508           Fix comment.
33509
33510 2010-05-12 12:58:53 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33511
33512         * gst/vaapisink/gstvaapisink.c:
33513         * gst/vaapisink/gstvaapisink.h:
33514           Fix render rect when the foreign window size changes.
33515
33516 2010-05-12 11:43:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33517
33518         * NEWS:
33519         * configure.ac:
33520         * gst/vaapisink/Makefile.am:
33521         * gst/vaapisink/gstvaapisink.c:
33522           Add GstXOverlay interface to vaapisink (e.g. for Totem).
33523
33524 2010-05-12 10:51:21 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33525
33526         * README:
33527           Update deps to match configure.ac versions.
33528
33529 2010-05-12 09:34:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33530
33531         * gst/vaapiconvert/gstvaapiconvert.c:
33532         * gst/vaapidecode/gstvaapidecode.c:
33533         * gst/vaapisink/gstvaapisink.c:
33534           Cosmetics.
33535
33536 2010-05-12 09:22:49 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33537
33538         * NEWS:
33539         * gst/vaapidecode/Makefile.am:
33540         * gst/vaapidecode/gstvaapidecode.c:
33541         * gst/vaapidecode/gstvaapidecode.h:
33542           Fix vaapidecode to expose the HW supported caps only.
33543
33544 2010-05-12 08:32:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33545
33546         * gst/vaapidecode/gstvaapidecode.c:
33547           Initialize decoder earlier.
33548
33549 2010-05-12 08:02:45 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33550
33551         * NEWS:
33552         * README:
33553         * gst/vaapidecode/gstvaapidecode.c:
33554           Fix integration within the playbin2 pipeline.
33555
33556 2010-05-12 08:02:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33557
33558         * docs/reference/libs/Makefile.am:
33559           Exclude gstvaapiutils_gst.h from docs for now.
33560
33561 2010-05-12 08:00:09 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33562
33563         * gst/vaapiconvert/gstvaapiconvert.c:
33564         * gst/vaapidecode/gstvaapidecode.c:
33565         * gst/vaapisink/gstvaapisink.c:
33566           Raise VA-API plugins ranks.
33567
33568 2010-05-12 07:57:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33569
33570         * gst-libs/gst/vaapi/Makefile.am:
33571         * gst-libs/gst/vaapi/gstvaapiutils_gst.c:
33572         * gst-libs/gst/vaapi/gstvaapiutils_gst.h:
33573           Add gst_vaapi_display_lookup_downstream() helper.
33574
33575 2010-05-11 16:23:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33576
33577         * gst/vaapidecode/gstvaapidecode.c:
33578           Use fixed caps on the src pad, they are not meant to change from video/x-vaapi-surface.
33579
33580 2010-05-11 16:19:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33581
33582         * docs/reference/libs/libs-sections.txt:
33583         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
33584         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33585         * gst/vaapisink/gstvaapisink.c:
33586           Expose VA display through GstVaapiVideoBuffer.
33587
33588 2010-05-11 16:09:49 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33589
33590         * gst/vaapidecode/gstvaapidecode.c:
33591           Simplify gst_vaapidecode_set_caps() and fix memory leak.
33592
33593 2010-05-11 12:06:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33594
33595         * docs/reference/libs/libs-sections.txt:
33596         * gst-libs/gst/vaapi/gstvaapivideopool.c:
33597         * gst-libs/gst/vaapi/gstvaapivideopool.h:
33598           Expose video pool display.
33599
33600 2010-05-11 12:03:13 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33601
33602         * gst-libs/gst/vaapi/gstvaapivideosink.c:
33603           Stop iteration if there is no more element to examine.
33604
33605 2010-05-10 09:32:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33606
33607         * gst/vaapiconvert/gstvaapiconvert.c:
33608         * gst/vaapidecode/gstvaapidecode.c:
33609         * gst/vaapisink/gstvaapisink.c:
33610           Improve plugin details.
33611
33612 2010-05-07 06:35:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33613
33614         * gst-libs/gst/vaapi/gstvaapisurface.h:
33615         * gst/vaapiconvert/gstvaapiconvert.c:
33616         * gst/vaapidecode/gstvaapidecode.c:
33617         * gst/vaapisink/gstvaapisink.c:
33618           Factor out VA surface caps.
33619
33620 2010-05-05 15:36:25 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33621
33622         * gst/vaapidecode/gstvaapidecode.c:
33623           Add gst_vaapidecode_ensure_display() helper for set-caps.
33624
33625 2010-05-05 12:57:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33626
33627         * configure.ac:
33628           Bump version for development.
33629
33630 2010-05-05 12:29:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33631
33632         * NEWS:
33633           Really make it 0.2.0.
33634
33635 2010-05-05 12:28:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33636
33637         * README:
33638           More docs.
33639
33640 2010-05-05 11:48:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33641
33642         * docs/reference/libs/Makefile.am:
33643           Don't exclude GstVaapiParamSpecs.
33644
33645 2010-05-05 11:44:06 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33646
33647         * docs/reference/libs/Makefile.am:
33648         * docs/reference/libs/libs-sections.txt:
33649         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33650         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33651           Fix docs.
33652
33653 2010-05-05 06:06:02 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33654
33655         * gst/vaapiconvert/gstvaapiconvert.c:
33656         * gst/vaapidecode/gstvaapidecode.c:
33657         * gst/vaapisink/gstvaapisink.c:
33658           Lower plugins rank for now since playbin2 auto-plugging is not working properly. User applications will have to create their own pipeline or with some hacks around playbin2.
33659
33660 2010-05-04 15:03:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33661
33662         * gst-libs/gst/vaapi/Makefile.am:
33663           Really link all helper libraries with libtool -no-undefined.
33664
33665 2010-05-04 15:02:29 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33666
33667         * gst-libs/gst/vaapi/Makefile.am:
33668           Link helper libraries with libtool -no-undefined.
33669
33670 2010-05-04 14:59:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33671
33672         * configure.ac:
33673         * debian.upstream/gstreamer-vaapi.install.in:
33674         * gst/vaapiconvert/Makefile.am:
33675         * gst/vaapidecode/Makefile.am:
33676         * gst/vaapisink/Makefile.am:
33677           Don't build plugins with SONAME. Make them plain *.so.
33678
33679 2010-05-04 08:59:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33680
33681         * README:
33682           Improve documentation for release.
33683
33684 2010-05-03 22:50:56 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33685
33686         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33687           Fix build with older VA-API 0.29.
33688
33689 2010-05-03 22:43:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33690
33691         * NEWS:
33692           0.2.0.
33693
33694 2010-05-03 22:42:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33695
33696         * tests/Makefile.am:
33697           Fix make dist.
33698
33699 2010-05-03 22:36:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33700
33701         * docs/reference/libs/Makefile.am:
33702         * docs/reference/libs/libs-docs.xml.in:
33703         * docs/reference/libs/libs-sections.txt:
33704         * docs/reference/libs/libs.core.types:
33705         * docs/reference/plugins/Makefile.am:
33706         * docs/reference/plugins/plugins-docs.xml.in:
33707         * docs/reference/plugins/plugins-sections.txt:
33708         * docs/reference/plugins/plugins.types:
33709           Add missing docs.
33710
33711 2010-05-03 22:34:53 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33712
33713         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33714           Fix doc.
33715
33716 2010-05-03 22:28:02 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33717
33718         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33719         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33720         * gst/vaapidecode/gstvaapidecode.c:
33721         * tests/test-decode.c:
33722           Rename gst_vaapi_decoder_ffmpeg_new_from_caps() to plain gst_vaapi_decoder_ffmpeg_new().
33723
33724 2010-05-03 22:02:41 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33725
33726         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33727         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33728           Extract framerate information from caps.
33729
33730 2010-05-03 21:49:35 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33731
33732         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33733         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33734         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33735           Move caps initialization to parent class.
33736
33737 2010-05-03 21:25:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33738
33739         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33740           Simplify.
33741
33742 2010-05-03 21:25:26 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33743
33744         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33745           Fix doc.
33746
33747 2010-05-03 21:14:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33748
33749         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33750         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33751           More simplifications.
33752
33753 2010-05-03 20:55:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33754
33755         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33756         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33757         * tests/test-decode.c:
33758           Simplify GstVaapiDecoder API.
33759
33760 2010-05-03 20:40:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33761
33762         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33763           Drop obsolete defs.
33764
33765 2010-05-03 20:34:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33766
33767         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33768           Drop obsolete decls.
33769
33770 2010-05-03 17:36:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33771
33772         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33773         * gst/vaapidecode/gstvaapidecode.c:
33774           Add more aliases for MPEG-4 decoding.
33775
33776 2010-05-03 17:04:00 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33777
33778         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33779           Use avctx->coded_{width,height} info to create the VA context.
33780
33781 2010-05-03 16:54:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33782
33783         * tests/test-decode.c:
33784         * tests/test-decode.h:
33785           Use gst_vaapi_decoder_ffmpeg_new_from_caps().
33786
33787 2010-05-03 16:41:13 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33788
33789         * tests/test-decode.c:
33790         * tests/test-decode.h:
33791         * tests/test-h264.c:
33792         * tests/test-h264.h:
33793         * tests/test-mpeg2.c:
33794         * tests/test-mpeg2.h:
33795         * tests/test-vc1.c:
33796         * tests/test-vc1.h:
33797           Simplify tests info.
33798
33799 2010-05-03 16:17:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33800
33801         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33802           Try to improve heuristics to use an AVCodecContextParser.
33803
33804 2010-05-03 15:35:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33805
33806         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33807           Fix VC-1 decoding, it does not require any specific parser.
33808
33809 2010-05-03 15:34:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33810
33811         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33812           Fix VC-1 detection with older gstreamer libs (no "fourcc" field, but a "format" one).
33813
33814 2010-05-03 15:29:18 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33815
33816         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33817         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33818           Use size information from the demuxer, whenever available. i.e. fix WMV3 decoding.
33819
33820 2010-05-03 15:11:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33821
33822         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33823         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33824         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33825         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33826         * gst/vaapidecode/gstvaapidecode.c:
33827         * gst/vaapidecode/gstvaapidecode.h:
33828           Add gst_vaapi_decoder_ffmpeg_new_from_caps() helper.
33829
33830 2010-05-03 14:53:18 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33831
33832         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33833         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33834         * gst-libs/gst/vaapi/gstvaapiprofile.h:
33835           Improve WMV3 detection yet further.
33836
33837 2010-05-03 13:44:41 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33838
33839         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33840           Fix detection of plain old WMV3 contents.
33841
33842 2010-05-03 12:25:07 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33843
33844         * tests/test-vc1.c:
33845           Add End-of-Sequence start code.
33846
33847 2010-05-03 11:44:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33848
33849         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33850         * gst/vaapidecode/gstvaapidecode.c:
33851           Fix VC-1 detection.
33852
33853 2010-05-03 08:51:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33854
33855         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33856           Fix build with older gstreamer libs where gst_buffer_unref() is not a plain function.
33857
33858 2010-05-03 08:34:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33859
33860         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33861         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33862           Drop obsolete (and wrong) code.
33863
33864 2010-05-03 08:33:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33865
33866         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33867           Cosmetics (spelling).
33868
33869 2010-05-03 08:32:46 +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           Try to fix timestamps (step 1). Looks OK on H55.
33875
33876 2010-05-03 07:10:04 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33877
33878         * debian.upstream/Makefile.am:
33879           Ship with COPYING.LIB.
33880
33881 2010-05-03 07:07:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33882
33883         * COPYING.LIB:
33884         * NEWS:
33885         * README:
33886         * gst-libs/gst/vaapi/gstvaapi_priv.h:
33887         * gst-libs/gst/vaapi/gstvaapicompat.h:
33888         * gst-libs/gst/vaapi/gstvaapicontext.c:
33889         * gst-libs/gst/vaapi/gstvaapicontext.h:
33890         * gst-libs/gst/vaapi/gstvaapidebug.h:
33891         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33892         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33893         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33894         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
33895         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33896         * gst-libs/gst/vaapi/gstvaapidisplay.c:
33897         * gst-libs/gst/vaapi/gstvaapidisplay.h:
33898         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
33899         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
33900         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
33901         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
33902         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
33903         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
33904         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
33905         * gst-libs/gst/vaapi/gstvaapiimage.c:
33906         * gst-libs/gst/vaapi/gstvaapiimage.h:
33907         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
33908         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
33909         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
33910         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
33911         * gst-libs/gst/vaapi/gstvaapiobject.c:
33912         * gst-libs/gst/vaapi/gstvaapiobject.h:
33913         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
33914         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
33915         * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
33916         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33917         * gst-libs/gst/vaapi/gstvaapiprofile.h:
33918         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
33919         * gst-libs/gst/vaapi/gstvaapisurface.h:
33920         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
33921         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
33922         * gst-libs/gst/vaapi/gstvaapitexture.h:
33923         * gst-libs/gst/vaapi/gstvaapitypes.h:
33924         * gst-libs/gst/vaapi/gstvaapiutils.h:
33925         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
33926         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
33927         * gst-libs/gst/vaapi/gstvaapivalue.h:
33928         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
33929         * gst-libs/gst/vaapi/gstvaapivideopool.h:
33930         * gst-libs/gst/vaapi/gstvaapivideosink.h:
33931         * gst-libs/gst/vaapi/gstvaapiwindow.h:
33932         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
33933         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
33934           Relicense gst-libs/ code to LGPL v2.1+.
33935
33936 2010-05-03 06:49:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33937
33938         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33939           Drop extraneous comma.
33940
33941 2010-05-03 06:49:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33942
33943         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33944           Drop variant=itu field to help codec detection.
33945
33946 2010-04-30 15:50:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33947
33948         * gst/vaapidecode/gstvaapidecode.c:
33949           Decode as many surfaces as possible in gst_vaapidecode_step().
33950
33951 2010-04-30 15:37:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33952
33953         * gst-libs/gst/vaapi/gstvaapidecoder.c:
33954         * gst-libs/gst/vaapi/gstvaapidecoder.h:
33955         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
33956         * gst/vaapidecode/gstvaapidecode.c:
33957         * gst/vaapidecode/gstvaapidecode.h:
33958         * tests/test-decode.c:
33959           Drop excessive threading that over-complicates synchronisation. MPEG-2 & H.264 videos now play but there are other problems (timestamps).
33960
33961 2010-04-30 13:13:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33962
33963         * configure.ac:
33964           0.2.0.
33965
33966 2010-04-30 12:04:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33967
33968         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33969           Move VA context reset to AVCodecContext.get_context() as the surface sizes can change.
33970
33971 2010-04-30 09:52:29 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33972
33973         * gst-libs/gst/vaapi/gstvaapidisplay.c:
33974         * gst-libs/gst/vaapi/gstvaapidisplay.h:
33975           Fix gst_vaapi_display_has_{decoder,encoder}() to check for the entrypoint too.
33976
33977 2010-04-30 09:48:41 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33978
33979         * gst-libs/gst/vaapi/gstvaapiprofile.c:
33980         * gst-libs/gst/vaapi/gstvaapiprofile.h:
33981           Add GST_VAAPI_ENTRYPOINT_SLICE_ENCODE.
33982
33983 2010-04-30 08:18:07 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33984
33985         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33986           Document H.264 / AVC1 format case better.
33987
33988 2010-04-29 23:09:07 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33989
33990         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
33991           Fix H.264 decoding with AVC1 format bitstreams.
33992
33993 2010-04-29 22:00:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33994
33995         * gst/vaapidecode/gstvaapidecode.c:
33996           Complete initialization of the GstVaapiVideoBuffer. Some frames start to show up.
33997
33998 2010-04-29 21:59:14 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
33999
34000         * gst/vaapisink/gstvaapisink.c:
34001           Add missing GstBaseSink::buffer_alloc() override. i.e. make sure to allocate a GstVaapiVideoBuffer instead of a plain GstBuffer from the peer pad.
34002
34003 2010-04-29 21:56:10 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34004
34005         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34006         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34007           Export gst_vaapi_video_buffer_new().
34008
34009 2010-04-29 21:12:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34010
34011         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34012           Fix gst_vaapi_profile_get_caps() to include the "profile" field.
34013
34014 2010-04-29 17:56:42 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34015
34016         * configure.ac:
34017           Fix comment.
34018
34019 2010-04-29 17:55:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34020
34021         * NEWS:
34022         * configure.ac:
34023         * gst/Makefile.am:
34024         * gst/vaapidecode/Makefile.am:
34025         * gst/vaapidecode/gstvaapidecode.c:
34026         * gst/vaapidecode/gstvaapidecode.h:
34027           Add FFmpeg/VAAPI decoder for the new `vaapidecode' element.
34028
34029 2010-04-29 17:51:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34030
34031         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34032         * gst-libs/gst/vaapi/gstvaapidecoder.h:
34033           Add gst_vaapi_decoder_pause().
34034
34035 2010-04-29 17:11:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34036
34037         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34038         * gst-libs/gst/vaapi/gstvaapidecoder.h:
34039         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34040           Use a GstTask with start/stop semantics for the decoder thread.
34041
34042 2010-04-29 16:08:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34043
34044         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34045           Drop extraneous var.
34046
34047 2010-04-29 15:45:44 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34048
34049         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34050         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
34051           Add support for GstVaapiSurfaceProxy to GstVaapiVideoBuffer.
34052
34053 2010-04-29 14:58:45 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34054
34055         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34056           Fix gst_vaapi_decoder_get_surface() status.
34057
34058 2010-04-29 14:28:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34059
34060         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34061         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34062           Try to set correct timestamps to the decoded surface proxy.
34063
34064 2010-04-29 12:52:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34065
34066         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34067         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34068         * tests/test-decode.c:
34069           Add timestamps to GstVaapiSurfaceProxy.
34070
34071 2010-04-29 09:43:40 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34072
34073         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34074           Fix GstVaapiDecoder::destroy(): GASyncQueue is not a GObject, likewise for GstBuffer.
34075
34076 2010-04-29 09:40:38 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34077
34078         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34079           Fix destructor, av_parser_close() does destroy the struct already, unliker avcodec_close()...
34080
34081 2010-04-29 09:35:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34082
34083         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34084           Prefer profile from codec-data if any was found there.
34085
34086 2010-04-29 09:34:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34087
34088         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34089           Improve heuristics to find the best profile. Use the highest one if no explicit match on "profile" field.
34090
34091 2010-04-28 23:09:52 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34092
34093         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34094           Make sure gst_vaapi_decoder_get_surface() gets unblocked on error.
34095
34096 2010-04-28 22:30:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34097
34098         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34099           Fix VC-1 codec initialization, it really needs an extradata buffer.
34100
34101 2010-04-28 22:16:10 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34102
34103         * gst-libs/gst/vaapi/gstvaapidecoder.h:
34104         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34105           Split decoder creation with actual resources allocation and codec setup (probe). This fixes a memory leak (avctx, pctx) on destroy and most interestingly makes it possible to detect unsupported codecs.
34106
34107 2010-04-28 21:58:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34108
34109         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34110           Move gst_vaapi_decoder_ffmpeg_create() call to object constructor.
34111
34112 2010-04-28 21:50:44 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34113
34114         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34115         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34116         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34117         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34118         * tests/test-decode.c:
34119           Add "codec-data" property for additional codec data. e.g. VC-1 sequence headers for elementary streams.
34120
34121 2010-04-28 21:20:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34122
34123         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34124           Cosmetics (weird indentation).
34125
34126 2010-04-28 21:15:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34127
34128         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34129           Cosmetics (extraneous variable, debug message).
34130
34131 2010-04-28 09:07:45 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34132
34133         * configure.ac:
34134           Fix check for VA-API enabled FFmpeg.
34135
34136 2010-04-27 15:26:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34137
34138         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34139         * gst-libs/gst/vaapi/gstvaapidecoder.h:
34140         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34141         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34142           - Add PTS and framerate information. - Simplify parsing with an AVCodeParserContext.
34143
34144 2010-04-27 11:59:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34145
34146         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34147         * gst-libs/gst/vaapi/gstvaapidecoder.h:
34148           Add more error codes. Fix documentation.
34149
34150 2010-04-26 13:30:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34151
34152         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34153           Fix gst_vaapi_profile_get_codec(). Improve gst_vaapi_profile_from_caps() for H.264 & caps with "codec-data".
34154
34155 2010-04-26 11:44:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34156
34157         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34158         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34159         * tests/test-decode.c:
34160           Handle user end-of-streams. Add gst_vaapi_decoder_{start,stop}() helpers.
34161
34162 2010-04-26 11:36:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34163
34164         * tests/test-vc1.c:
34165           Drop useless End-of-Sequence marker.
34166
34167 2010-04-26 08:53:18 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34168
34169         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34170           Flush stream only if avcodec_decode_video() read something. Otherwise, we might still have to seek into the stream. i.e. keep the data longer.
34171
34172 2010-04-26 08:40:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34173
34174         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34175         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34176           Use a recursive mutex so that a single thread can lock several times. This fixes decoding of MPEG-2 and H.264 because those created a GstVaapiContext later through avcodec_decode_video() that was a protected call.
34177
34178 2010-04-26 08:15:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34179
34180         * tests/test-h264.c:
34181         * tests/test-vc1.c:
34182           Regenerate correct clips.
34183
34184 2010-04-23 16:11:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34185
34186         * tests/Makefile.am:
34187         * tests/test-decode.c:
34188         * tests/test-h264.c:
34189         * tests/test-h264.h:
34190         * tests/test-mpeg2.c:
34191         * tests/test-mpeg2.h:
34192         * tests/test-vc1.c:
34193         * tests/test-vc1.h:
34194           Add decoder demos. Use -c (mpeg2|h264|vc1) to select the codec.
34195           XXX: only VC-1 decoding works at this time because of awful
34196           bugs left in GstVaapiDecoderFfmpeg et al.
34197
34198 2010-04-23 16:05:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34199
34200         * configure.ac:
34201         * gst-libs/gst/vaapi/Makefile.am:
34202         * gst-libs/gst/vaapi/gstvaapidecoder.c:
34203         * gst-libs/gst/vaapi/gstvaapidecoder.h:
34204         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.c:
34205         * gst-libs/gst/vaapi/gstvaapidecoder_ffmpeg.h:
34206         * gst-libs/gst/vaapi/gstvaapidecoder_priv.h:
34207           Add initial (multithreaded) decoder based on FFmpeg.
34208           There are tons of bugs left:
34209           - Decoder API not nice enough with error conditions
34210           - FFmpeg parser is sometimes broken
34211           - Packets queue can be lost
34212
34213 2010-04-23 16:00:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34214
34215         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.c:
34216         * gst-libs/gst/vaapi/gstvaapisurfaceproxy.h:
34217           Add surface proxy that holds a reference to the parent surface and that returns the surface to that context on destruction.
34218
34219 2010-04-23 15:59:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34220
34221         * gst-libs/gst/vaapi/gstvaapicontext.c:
34222         * gst-libs/gst/vaapi/gstvaapicontext.h:
34223           Add VA context abstraction.
34224
34225 2010-04-23 10:58:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34226
34227         * gst-libs/gst/vaapi/gstvaapiprofile.h:
34228           Fix VA profiles definitions for gst_vaapi_profile_get_codec() to work.
34229
34230 2010-04-21 15:03:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34231
34232         * gst-libs/gst/vaapi/gstvaapivideopool.c:
34233         * gst-libs/gst/vaapi/gstvaapivideopool.h:
34234           Add a means to cap the number of objects allocated in the pool.
34235
34236 2010-04-21 15:02:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34237
34238         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34239         * gst-libs/gst/vaapi/gstvaapiprofile.h:
34240           Add VA entrypoint abstraction.
34241
34242 2010-04-20 13:36:04 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34243
34244         * docs/reference/libs/libs-docs.xml.in:
34245         * docs/reference/libs/libs-sections.txt:
34246         * gst-libs/gst/vaapi/Makefile.am:
34247         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34248         * gst-libs/gst/vaapi/gstvaapidisplay.h:
34249         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34250         * gst-libs/gst/vaapi/gstvaapiprofile.c:
34251         * gst-libs/gst/vaapi/gstvaapiprofile.h:
34252         * tests/test-display.c:
34253           Add VA profile abstraction.
34254
34255 2010-04-20 07:51:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34256
34257         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34258           Fix OpenGL rendering on G45 systems.
34259
34260 2010-04-16 13:47:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34261
34262         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34263           Fix gl_create_context() to find a GLXFBConfig compatible with the parent GL context.
34264
34265 2010-04-02 11:27:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34266
34267         * gst-libs/gst/vaapi/gstvaapitexture.c:
34268         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34269         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34270           Fix TFP logic and simplify the FBO model. i.e. it's not necessary to create another texture (and storage) for the TFP, simply a new texture name.
34271
34272 2010-04-01 16:11:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34273
34274         * gst-libs/gst/vaapi/gstvaapitexture.c:
34275           Fix get-out conditions.
34276
34277 2010-04-01 15:38:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34278
34279         * gst-libs/gst/vaapi/gstvaapitexture.c:
34280         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34281           The shared GL context in GstVaapiTexture is only useful for cases where TFP+FBO are used, thus avoiding the need fully preserve the states and call into glGet*() functions that need synchronization.
34282
34283 2010-04-01 13:55:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34284
34285         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34286           Shorter structs.
34287
34288 2010-04-01 13:41:24 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34289
34290         * docs/reference/libs/libs-sections.txt:
34291         * gst-libs/gst/vaapi/Makefile.am:
34292         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34293         * gst-libs/gst/vaapi/gstvaapidisplay_glx_priv.h:
34294         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34295         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34296         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34297         * gst-libs/gst/vaapi/gstvaapidisplay_x11_priv.h:
34298         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34299         * gst-libs/gst/vaapi/gstvaapitexture.c:
34300         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34301         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34302         * tests/test-windows.c:
34303           Make more helpers internal, thus reducing .text size further. Add gst_vaapi_display_x11_get_screen() helper along the way.
34304
34305 2010-04-01 09:47:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34306
34307         * gst-libs/gst/vaapi/Makefile.am:
34308         * gst-libs/gst/vaapi/gstvaapi_priv.h:
34309         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34310         * gst-libs/gst/vaapi/gstvaapidisplay.h:
34311         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34312         * gst-libs/gst/vaapi/gstvaapidisplay_priv.h:
34313         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34314         * gst-libs/gst/vaapi/gstvaapiimage.c:
34315         * gst-libs/gst/vaapi/gstvaapiobject.c:
34316         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34317         * gst-libs/gst/vaapi/gstvaapisurface.c:
34318         * gst-libs/gst/vaapi/gstvaapitexture.c:
34319         * gst-libs/gst/vaapi/gstvaapiwindow.c:
34320         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34321         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34322           Move GST_VAAPI_DISPLAY_VADISPLAY() and GST_VAAPI_DISPLAY_{LOCK,UNLOCK}() to gstvaapidisplay_priv.h.
34323
34324 2010-03-31 15:25:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34325
34326         * gst-libs/gst/vaapi/gstvaapitexture.c:
34327         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34328         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34329         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34330           Improve handling of GL contexts.
34331
34332 2010-03-30 16:41:21 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34333
34334         * configure.ac:
34335           Simplify summary.
34336
34337 2010-03-30 13:33:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34338
34339         * configure.ac:
34340           Bump version for development.
34341
34342 2010-03-30 13:29:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34343
34344         * configure.ac:
34345         * debian.upstream/Makefile.am:
34346         * debian.upstream/control.in:
34347           Rename -dev package to libgstvaapi-dev.
34348
34349 2010-03-30 13:17:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34350
34351         * NEWS:
34352         * README:
34353           Updates.
34354
34355 2010-03-30 13:05:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34356
34357         * gst-libs/gst/vaapi/gstvaapiutils.c:
34358           Fix build with VA-API < 0.30.
34359
34360 2010-03-30 13:01:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34361
34362         * configure.ac:
34363         * gst-libs/gst/vaapi/gstvaapicompat.h:
34364         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34365         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34366         * gst-libs/gst/vaapi/gstvaapitexture.c:
34367         * tests/test-display.c:
34368           Enable build without VA/GLX extensions. i.e. fallback to TFP + FBO.
34369
34370 2010-03-30 12:59:15 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34371
34372         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34373         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34374           Add TFP and FBO helpers.
34375
34376 2010-03-30 12:55:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34377
34378         * gst-libs/gst/vaapi/gstvaapiutils.c:
34379         * gst-libs/gst/vaapi/gstvaapiutils.h:
34380           Cosmetics. Make vaapi_check_status() use GST_DEBUG() for error messages.
34381
34382 2010-03-30 08:13:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34383
34384         * gst-libs/gst/vaapi/gstvaapitexture.c:
34385         * gst-libs/gst/vaapi/gstvaapiutils.c:
34386         * gst-libs/gst/vaapi/gstvaapiutils.h:
34387         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34388           Use a shorter function name.
34389
34390 2010-03-30 08:11:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34391
34392         * docs/reference/libs/libs-sections.txt:
34393         * gst-libs/gst/vaapi/gstvaapisurface.c:
34394         * gst-libs/gst/vaapi/gstvaapisurface.h:
34395         * gst-libs/gst/vaapi/gstvaapiutils.c:
34396         * gst-libs/gst/vaapi/gstvaapiutils.h:
34397           Add gst_vaapi_surface_query_status() wrapper.
34398
34399 2010-03-30 07:50:11 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34400
34401         * docs/reference/plugins/Makefile.am:
34402           Fix leftover during migration.
34403
34404 2010-03-30 07:46:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34405
34406         * Makefile.am:
34407         * configure.ac:
34408         * docs/reference/plugins/Makefile.am:
34409         * gst/Makefile.am:
34410         * gst/vaapiconvert/Makefile.am:
34411         * gst/vaapiconvert/gstvaapiconvert.c:
34412         * gst/vaapiconvert/gstvaapiconvert.h:
34413         * gst/vaapisink/Makefile.am:
34414         * gst/vaapisink/gstvaapisink.c:
34415         * gst/vaapisink/gstvaapisink.h:
34416           Rename to gst/ as sys/ was too vague.
34417
34418 2010-03-30 07:39:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34419
34420         * gst-libs/gst/vaapi/gstvaapiimage.c:
34421         * gst-libs/gst/vaapi/gstvaapiimage.h:
34422         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34423         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34424         * gst-libs/gst/vaapi/gstvaapisurface.c:
34425         * gst-libs/gst/vaapi/gstvaapisurface.h:
34426           Try to not reference VA-API types directly.
34427
34428 2010-03-29 16:24:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34429
34430         * sys/vaapisink/gstvaapisink.c:
34431           Fix reflection code to preserve aspect ratio.
34432
34433 2010-03-29 16:17:38 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34434
34435         * sys/vaapisink/gstvaapisink.c:
34436         * sys/vaapisink/gstvaapisink.h:
34437           Fix fullscreen mode.
34438
34439 2010-03-29 15:59:44 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34440
34441         * sys/vaapisink/gstvaapisink.c:
34442         * sys/vaapisink/gstvaapisink.h:
34443           Add OpenGL reflection effect ("use-reflection").
34444
34445 2010-03-29 15:51:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34446
34447         * configure.ac:
34448         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34449           Use a projection suitable for rotation around the Y axis.
34450
34451 2010-03-29 15:03:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34452
34453         * configure.ac:
34454         * sys/vaapisink/Makefile.am:
34455         * sys/vaapisink/gstvaapisink.c:
34456         * sys/vaapisink/gstvaapisink.h:
34457           Don't build vaapisink/gl by default. However, if this is enabled, use the GL renderer by default.
34458
34459 2010-03-29 14:50:52 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34460
34461         * configure.ac:
34462         * debian.upstream/Makefile.am:
34463         * debian.upstream/control.in:
34464         * debian.upstream/libgstvaapi-glx.install.in:
34465           Add libgstvaapi-glx-0 package.
34466
34467 2010-03-29 14:47:49 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34468
34469         * pkgconfig/Makefile.am:
34470           Really fix make distclean.
34471
34472 2010-03-29 14:43:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34473
34474         * docs/reference/libs/Makefile.am:
34475           Fix make dist.
34476
34477 2010-03-29 14:42:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34478
34479         * pkgconfig/Makefile.am:
34480           Fix make distclean.
34481
34482 2010-03-29 14:40:26 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34483
34484         * tests/Makefile.am:
34485           Fix make dist.
34486
34487 2010-03-29 14:31:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34488
34489         * docs/reference/libs/Makefile.am:
34490         * docs/reference/libs/libs.core.types:
34491         * docs/reference/libs/libs.glx.types:
34492         * docs/reference/libs/libs.x11.types:
34493           Fix doc build.
34494
34495 2010-03-29 14:21:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34496
34497         * sys/vaapisink/gstvaapisink.h:
34498           Fix build without GLX.
34499
34500 2010-03-29 14:13:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34501
34502         * NEWS:
34503           0.1.2.
34504
34505 2010-03-29 14:13:26 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34506
34507         * sys/vaapisink/Makefile.am:
34508         * sys/vaapisink/gstvaapisink.c:
34509         * sys/vaapisink/gstvaapisink.h:
34510           Add VA/GLX support to vaapisink.
34511
34512 2010-03-29 13:40:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34513
34514         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34515         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34516         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34517           Add glXSwapBuffers() workaround for NVIDIA.
34518
34519 2010-03-29 13:27:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34520
34521         * tests/Makefile.am:
34522         * tests/test-textures.c:
34523           Improve VA/GLX textures test.
34524
34525 2010-03-29 12:51:38 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34526
34527         * gst-libs/gst/vaapi/gstvaapitexture.c:
34528         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34529         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34530           Fix texture rendering.
34531
34532 2010-03-29 11:25:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34533
34534         * docs/reference/libs/libs-docs.xml.in:
34535         * docs/reference/libs/libs-sections.txt:
34536         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34537         * gst-libs/gst/vaapi/gstvaapitexture.c:
34538           Fix documentation.
34539
34540 2010-03-29 10:40:26 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34541
34542         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34543         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34544           Add gst_vaapi_window_glx_put_texture() helper.
34545
34546 2010-03-29 09:09:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34547
34548         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34549           Fix typos.
34550
34551 2010-03-26 17:00:45 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34552
34553         * tests/image.c:
34554         * tests/image.h:
34555         * tests/test-windows.c:
34556           Move code around.
34557
34558 2010-03-26 16:52:07 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34559
34560         * gst-libs/gst/vaapi/Makefile.am:
34561         * gst-libs/gst/vaapi/gstvaapitexture.c:
34562         * gst-libs/gst/vaapi/gstvaapitexture.h:
34563         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34564         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34565           Add initial VA/GLX texture abstraction though the API is not good enough yet.
34566
34567 2010-03-26 15:22:00 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34568
34569         * docs/reference/libs/libs-sections.txt:
34570         * gst-libs/gst/vaapi/gstvaapiobject.c:
34571         * gst-libs/gst/vaapi/gstvaapiobject.h:
34572           Add gst_vaapi_object_{,un}lock_display() helpers.
34573
34574 2010-03-26 15:16:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34575
34576         * tests/Makefile.am:
34577         * tests/image.c:
34578         * tests/image.h:
34579         * tests/test-windows.c:
34580           Factor out image utilities.
34581
34582 2010-03-26 11:54:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34583
34584         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34585           MT-Safe: lock display.
34586
34587 2010-03-26 11:50:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34588
34589         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34590           Make sure window resize completed prior to resizing the GL viewport.
34591
34592 2010-03-26 11:39:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34593
34594         * gst-libs/gst/vaapi/Makefile.am:
34595           gstvaapicompat.h is a private header, don't install it.
34596
34597 2010-03-26 11:35:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34598
34599         * docs/reference/libs/libs-sections.txt:
34600         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34601         * gst-libs/gst/vaapi/gstvaapidisplay.h:
34602         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34603           Add gst_vaapi_display_{sync,flush}() helpers.
34604
34605 2010-03-26 11:30:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34606
34607         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34608         * sys/vaapisink/gstvaapisink.c:
34609         * sys/vaapisink/gstvaapisink.h:
34610           Add "synchronous" mode.
34611
34612 2010-03-26 11:02:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34613
34614         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34615         * gst-libs/gst/vaapi/gstvaapidisplay.h:
34616           Only add _display suffix to open & close members because they could be #define to some arbitrary value. lock/unlock are safe names.
34617
34618 2010-03-26 10:09:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34619
34620         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34621           Restore GLX context only if there is one.
34622
34623 2010-03-26 09:41:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34624
34625         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34626         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34627         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34628         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34629           Add gst_vaapi_window_glx_make_current(). Handle X11 window size changes and reset the GL viewport.
34630
34631 2010-03-26 08:35:24 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34632
34633         * gst-libs/gst/vaapi/gstvaapiwindow.c:
34634           Check GstVaapiWindow::render() is available prior to calling it.
34635
34636 2010-03-26 08:10:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34637
34638         * tests/Makefile.am:
34639         * tests/test-display.c:
34640         * tests/test-textures.c:
34641           Add VA/GLX display tests.
34642
34643 2010-03-26 08:00:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34644
34645         * configure.ac:
34646         * gst-libs/gst/vaapi/Makefile.am:
34647           Fix compile flags.
34648
34649 2010-03-25 17:39:06 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34650
34651         * docs/reference/libs/Makefile.am:
34652         * docs/reference/libs/libs-docs.xml.in:
34653         * docs/reference/libs/libs-sections.txt:
34654         * docs/reference/libs/libs.types:
34655           Add missing API documentation.
34656
34657 2010-03-25 17:28:49 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34658
34659         * configure.ac:
34660         * gst-libs/gst/vaapi/Makefile.am:
34661         * gst-libs/gst/vaapi/gstvaapidisplay_glx.c:
34662         * gst-libs/gst/vaapi/gstvaapidisplay_glx.h:
34663         * gst-libs/gst/vaapi/gstvaapiutils_glx.c:
34664         * gst-libs/gst/vaapi/gstvaapiutils_glx.h:
34665         * gst-libs/gst/vaapi/gstvaapiwindow_glx.c:
34666         * gst-libs/gst/vaapi/gstvaapiwindow_glx.h:
34667         * pkgconfig/Makefile.am:
34668         * pkgconfig/gstreamer-vaapi-glx.pc.in:
34669         * tests/Makefile.am:
34670         * tests/test-textures.c:
34671           Add initial VA/GLX support.
34672
34673 2010-03-25 17:21:56 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34674
34675         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34676           Add missing includes (for vaapi_check_status()).
34677
34678 2010-03-25 17:21:13 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34679
34680         * gst-libs/gst/vaapi/gstvaapidebug.h:
34681           Only enable GST_DEBUG() if DEBUG is defined. Drop old D(bug()) stuff.
34682
34683 2010-03-25 17:18:36 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34684
34685         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34686         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34687           Add gst_vaapi_window_x11_is_foreign_xid() helper.
34688
34689 2010-03-25 17:18:06 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34690
34691         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34692         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34693         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34694         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
34695           Allow derived classes to specify custom Visual and Colormap.
34696
34697 2010-03-25 13:54:06 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34698
34699         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
34700         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
34701         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34702           Allow window creation with a specific visual (e.g. for GLX support).
34703
34704 2010-03-25 13:21:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34705
34706         * gst-libs/gst/vaapi/gstvaapiimage.c:
34707           Fix return value on error (though it's the same in the end).
34708
34709 2010-03-25 12:39:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34710
34711         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34712         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34713           Simplify initialization of VADisplay.
34714
34715 2010-03-25 10:04:39 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34716
34717         * configure.ac:
34718           Move __attribute__((visibility("hidden"))) check down.
34719
34720 2010-03-25 09:49:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34721
34722         * docs/reference/libs/libs-sections.txt:
34723         * gst-libs/gst/vaapi/gstvaapiimage.c:
34724         * gst-libs/gst/vaapi/gstvaapiimage.h:
34725         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34726         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34727         * gst-libs/gst/vaapi/gstvaapisurface.c:
34728         * gst-libs/gst/vaapi/gstvaapisurface.h:
34729         * tests/test-surfaces.c:
34730           Restore the gst_vaapi_{surface,image,subpicture}_get_id() interfaces.
34731
34732 2010-03-25 09:39:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34733
34734         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34735           Use the parent display object, no need to maintain another one.
34736           In the end, libgstvaapi-x11 reduced by 1 KB in .text vs. 0.1.1.
34737
34738 2010-03-25 09:37:40 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34739
34740         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34741           Add more internal helpers.
34742
34743 2010-03-24 17:40:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34744
34745         * gst-libs/gst/vaapi/gstvaapiimage.c:
34746         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34747         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34748         * gst-libs/gst/vaapi/gstvaapisurface.c:
34749         * gst-libs/gst/vaapi/gstvaapiwindow.c:
34750         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34751           Rename to GST_VAAPI_OBJECT_DISPLAY().
34752
34753 2010-03-24 17:38:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34754
34755         * docs/reference/libs/libs-sections.txt:
34756         * gst-libs/gst/vaapi/gstvaapiimage.c:
34757         * gst-libs/gst/vaapi/gstvaapiobject.c:
34758         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34759         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34760         * gst-libs/gst/vaapi/gstvaapisurface.c:
34761         * gst-libs/gst/vaapi/gstvaapitypes.h:
34762         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34763           All GstVaapiID are initialized to GST_VAAPI_ID_NONE by default. Besides, all GstVaapiObject derived class shall initialize "id" to a valid value.
34764
34765 2010-03-24 17:22:18 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34766
34767         * gst-libs/gst/vaapi/gstvaapiwindow.c:
34768         * gst-libs/gst/vaapi/gstvaapiwindow.h:
34769         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34770           Make GstVaapiWindow* derive from GstVaapiObject.
34771
34772 2010-03-24 16:37:35 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34773
34774         * configure.ac:
34775           Factor out use gstreamer-vaapi (PACKAGE name).
34776
34777 2010-03-24 16:35:36 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34778
34779         * configure.ac:
34780           Improve versioning summary.
34781
34782 2010-03-24 16:27:36 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34783
34784         * gst-libs/gst/vaapi/Makefile.am:
34785           gstvaapicompat.h is now a private header (not installed).
34786
34787 2010-03-24 16:25:56 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34788
34789         * gst-libs/gst/vaapi/gstvaapiimage.c:
34790         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34791         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34792         * gst-libs/gst/vaapi/gstvaapiobject.c:
34793         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34794         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34795           Include gstvaapicompat.h in source files only, not headers.
34796
34797 2010-03-24 16:21:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34798
34799         * configure.ac:
34800         * gst-libs/gst/vaapi/Makefile.am:
34801         * sys/vaapiconvert/Makefile.am:
34802         * sys/vaapisink/Makefile.am:
34803         * tests/Makefile.am:
34804           Drop tedious LIBVA_EXTRA_{CFLAGS,LIBS} definitions in Makefile.am. Override CFLAGS & LIBS instead.
34805
34806 2010-03-24 16:17:49 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34807
34808         * NEWS:
34809         * configure.ac:
34810         * gst-libs/gst/vaapi/Makefile.am:
34811         * gst-libs/gst/vaapi/gstvaapicompat.h:
34812         * gst-libs/gst/vaapi/gstvaapidisplay.h:
34813         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
34814         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34815         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34816         * gst-libs/gst/vaapi/gstvaapisurface.c:
34817         * gst-libs/gst/vaapi/gstvaapiutils.c:
34818         * gst-libs/gst/vaapi/gstvaapiutils.h:
34819         * pkgconfig/gstreamer-vaapi-x11.pc.in:
34820         * pkgconfig/gstreamer-vaapi.pc.in:
34821         * sys/vaapiconvert/Makefile.am:
34822         * sys/vaapisink/Makefile.am:
34823         * tests/Makefile.am:
34824           Add compatibility with the original VA-API 0.29.
34825
34826 2010-03-24 15:18:33 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34827
34828         * gst-libs/gst/vaapi/gstvaapivalue.h:
34829           Add missing file (gstvaapivalue.h).
34830
34831 2010-03-24 15:12:56 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34832
34833         * gst-libs/gst/vaapi/gstvaapiimage.c:
34834         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34835         * gst-libs/gst/vaapi/gstvaapisurface.c:
34836           Fix g_warning() invocation.
34837
34838 2010-03-24 15:11:26 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34839
34840         * gst-libs/gst/vaapi/gstvaapisurface.c:
34841           Deassociate subpictures while destroying the surface.
34842
34843 2010-03-24 14:57:33 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34844
34845         * gst-libs/gst/vaapi/gstvaapisurface.c:
34846           Fix destruction order of subpictures. They should be destroyed first.
34847
34848 2010-03-24 14:46:33 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34849
34850         * NEWS:
34851         * gst-libs/gst/vaapi/gstvaapiimage.c:
34852         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34853         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
34854         * tests/test-windows.c:
34855           Add support for AYUV format.
34856
34857 2010-03-24 14:36:39 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34858
34859         * tests/test-windows.c:
34860           Simplify upload process and fallback to subpictures.
34861
34862 2010-03-24 13:44:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34863
34864         * docs/reference/libs/libs-docs.xml.in:
34865         * docs/reference/libs/libs-sections.txt:
34866         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34867           Fix documentation.
34868
34869 2010-03-24 13:37:38 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34870
34871         * gst-libs/gst/vaapi/Makefile.am:
34872         * gst-libs/gst/vaapi/gstvaapiobject.c:
34873         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34874         * gst-libs/gst/vaapi/gstvaapitypes.h:
34875         * gst-libs/gst/vaapi/gstvaapivalue.c:
34876           Move GValue specific stuff to a dedicated file.
34877
34878 2010-03-24 13:22:25 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34879
34880         * tests/test-surfaces.c:
34881           Cosmetics (lowercase for consistency).
34882
34883 2010-03-24 13:21:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34884
34885         * gst-libs/gst/vaapi/gstvaapiobject.c:
34886           Cosmetics (vertical alignment).
34887
34888 2010-03-24 13:20:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34889
34890         * gst-libs/gst/vaapi/gstvaapiobject.c:
34891           Fix return value on error.
34892
34893 2010-03-24 13:19:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34894
34895         * docs/reference/libs/libs-sections.txt:
34896         * gst-libs/gst/vaapi/gstvaapiimage.c:
34897         * gst-libs/gst/vaapi/gstvaapiimage.h:
34898         * gst-libs/gst/vaapi/gstvaapiobject.c:
34899         * gst-libs/gst/vaapi/gstvaapiobject.h:
34900         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34901         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34902         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
34903         * gst-libs/gst/vaapi/gstvaapisurface.c:
34904         * gst-libs/gst/vaapi/gstvaapisurface.h:
34905         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34906         * tests/test-surfaces.c:
34907           Move "id" down to the GstVaapiObject base.
34908
34909 2010-03-24 12:59:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34910
34911         * gst-libs/gst/vaapi/gstvaapitypes.c:
34912           Cosmetics (drop extraneous empty line).
34913
34914 2010-03-24 12:57:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34915
34916         * gst-libs/gst/vaapi/Makefile.am:
34917         * gst-libs/gst/vaapi/gstvaapiparamspecs.c:
34918         * gst-libs/gst/vaapi/gstvaapiparamspecs.h:
34919           Add GParamSpecs for GstVaapiID.
34920
34921 2010-03-24 12:54:52 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34922
34923         * docs/reference/libs/libs.types:
34924           Drop gst_vaapi_id_get_type().
34925
34926 2010-03-24 12:38:40 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34927
34928         * docs/reference/libs/libs-sections.txt:
34929         * gst-libs/gst/vaapi/gstvaapitypes.h:
34930           Add GST_VAAPI_ID_FORMAT() and GST_VAAPI_ID_ARGS() helpers.
34931
34932 2010-03-24 09:52:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34933
34934         * docs/reference/libs/libs-sections.txt:
34935         * docs/reference/libs/libs.types:
34936         * gst-libs/gst/vaapi/Makefile.am:
34937         * gst-libs/gst/vaapi/gstvaapitypes.c:
34938         * gst-libs/gst/vaapi/gstvaapitypes.h:
34939           Add GstVaapiID abstraction.
34940
34941 2010-03-24 09:22:00 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34942
34943         * docs/reference/libs/libs.types:
34944           Sort types.
34945
34946 2010-03-24 08:35:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34947
34948         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34949         * gst-libs/gst/vaapi/gstvaapiimage.c:
34950         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34951         * gst-libs/gst/vaapi/gstvaapisurface.c:
34952           Drop useless include (<va/va_backend.h>).
34953
34954 2010-03-24 08:34:11 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34955
34956         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34957           Optimize GST_VAAPI_OBJECT_GET_DISPLAY to avoid a run-time check.
34958
34959 2010-03-24 08:32:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34960
34961         * gst-libs/gst/vaapi/Makefile.am:
34962         * gst-libs/gst/vaapi/gstvaapiimage.c:
34963         * gst-libs/gst/vaapi/gstvaapiobject.c:
34964         * gst-libs/gst/vaapi/gstvaapiobject.h:
34965         * gst-libs/gst/vaapi/gstvaapiobject_priv.h:
34966         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34967         * gst-libs/gst/vaapi/gstvaapisurface.c:
34968         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34969           Move private definitions and accessors to gstvaapiobject_priv.h.
34970
34971 2010-03-24 08:16:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34972
34973         * gst-libs/gst/vaapi/gstvaapidisplay.c:
34974         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
34975         * gst-libs/gst/vaapi/gstvaapiimage.c:
34976         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
34977         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
34978         * gst-libs/gst/vaapi/gstvaapiobject.c:
34979         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
34980         * gst-libs/gst/vaapi/gstvaapisurface.c:
34981         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
34982         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
34983         * gst-libs/gst/vaapi/gstvaapivideopool.c:
34984         * gst-libs/gst/vaapi/gstvaapivideosink.c:
34985         * gst-libs/gst/vaapi/gstvaapiwindow.c:
34986         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
34987           Fix short descriptions.
34988
34989 2010-03-23 18:45:09 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
34990
34991         * Makefile.am:
34992         * configure.ac:
34993         * debian.upstream/Makefile.am:
34994         * debian.upstream/changelog.in:
34995         * debian.upstream/compat:
34996         * debian.upstream/control.in:
34997         * debian.upstream/copyright:
34998         * debian.upstream/gstreamer-vaapi-doc.install.in:
34999         * debian.upstream/gstreamer-vaapi.install.in:
35000         * debian.upstream/libgstvaapi-dev.install.in:
35001         * debian.upstream/libgstvaapi-x11.install.in:
35002         * debian.upstream/libgstvaapi.install.in:
35003         * debian.upstream/rules:
35004           Generate upstream packages through make deb.upstream.
35005
35006 2010-03-23 17:40:03 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35007
35008         * configure.ac:
35009           Bump version for development.
35010
35011 2010-03-23 17:29:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35012
35013         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35014           Use a black background for new windows.
35015
35016 2010-03-23 17:18:35 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35017
35018         * NEWS:
35019           0.1.1.
35020
35021 2010-03-23 17:12:40 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35022
35023         * configure.ac:
35024         * docs/reference/libs/libs.types:
35025         * gst-libs/gst/vaapi/Makefile.am:
35026         * gst-libs/gst/vaapi/gstvaapimarshal.list:
35027         * gst-libs/gst/vaapi/gstvaapiobject.c:
35028         * gst-libs/gst/vaapi/gstvaapiobject.h:
35029         * tests/test-surfaces.c:
35030           Add "destroy" signal.
35031
35032 2010-03-23 16:25:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35033
35034         * docs/reference/libs/libs-docs.xml.in:
35035           Improve gst-plugins-vaapi Library reference template.
35036
35037 2010-03-23 16:21:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35038
35039         * docs/reference/libs/libs-docs.xml.in:
35040         * docs/reference/libs/libs-sections.txt:
35041         * gst-libs/gst/vaapi/Makefile.am:
35042         * gst-libs/gst/vaapi/gstvaapiimage.c:
35043         * gst-libs/gst/vaapi/gstvaapiimage.h:
35044         * gst-libs/gst/vaapi/gstvaapiobject.c:
35045         * gst-libs/gst/vaapi/gstvaapiobject.h:
35046         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35047         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35048         * gst-libs/gst/vaapi/gstvaapisurface.c:
35049         * gst-libs/gst/vaapi/gstvaapisurface.h:
35050         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35051           Make GstVaapi{Surface,Image,Subpicture} derive from a GstVaapiObject.
35052
35053 2010-03-23 16:11:21 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35054
35055         * sys/vaapisink/gstvaapisink.c:
35056           Fix return value.
35057
35058 2010-03-23 15:34:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35059
35060         * sys/vaapisink/gstvaapisink.c:
35061           Make sure VA display is valid when created with an explicit "display" name.
35062
35063 2010-03-23 15:28:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35064
35065         * sys/vaapisink/gstvaapisink.c:
35066           Use plain "display" property for the X11 display name.
35067
35068 2010-03-23 15:22:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35069
35070         * sys/vaapiconvert/gstvaapiconvert.c:
35071         * sys/vaapisink/gstvaapisink.c:
35072           Document vaapiconvert & vaapisink plugins.
35073
35074 2010-03-23 14:19:21 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35075
35076         * configure.ac:
35077         * docs/reference/Makefile.am:
35078         * docs/reference/plugins/Makefile.am:
35079         * docs/reference/plugins/plugins-docs.xml.in:
35080         * docs/reference/plugins/plugins-overrides.txt:
35081         * docs/reference/plugins/plugins-sections.txt:
35082         * docs/reference/plugins/plugins.types:
35083           Add plugins documentation template.
35084
35085 2010-03-23 14:06:42 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35086
35087         * sys/vaapisink/gstvaapisink.c:
35088         * sys/vaapisink/gstvaapisink.h:
35089           Don't export gst_vaapisink_get_display().
35090
35091 2010-03-23 13:32:36 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35092
35093         * configure.ac:
35094         * docs/reference/libs/libs-docs.xml.in:
35095         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35096         * gst-libs/gst/vaapi/gstvaapiimage.c:
35097         * gst-libs/gst/vaapi/gstvaapisurface.c:
35098         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35099           Drop introspection annotations since they require gtk-doc >= 1.12.
35100
35101 2010-03-23 10:51:35 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35102
35103         * gst-libs/gst/vaapi/gstvaapisurface.c:
35104           Add note about the fact that the surface holds an extra reference to the subpicture.
35105
35106 2010-03-23 10:49:33 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35107
35108         * gst-libs/gst/vaapi/gstvaapiimage.c:
35109         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35110         * gst-libs/gst/vaapi/gstvaapisurface.c:
35111           Improve debugging messages.
35112
35113 2010-03-23 10:48:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35114
35115         * tests/test-windows.c:
35116           Unref subpicture earlier as the surface is supposed to hold a reference to it.
35117
35118 2010-03-23 10:36:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35119
35120         * docs/reference/libs/libs-sections.txt:
35121         * gst-libs/gst/vaapi/gstvaapisurface.c:
35122         * gst-libs/gst/vaapi/gstvaapisurface.h:
35123         * tests/test-windows.c:
35124           Add gst_vaapi_surface_{,de}associate_subpicture() API.
35125
35126 2010-03-23 08:13:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35127
35128         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35129           Wait for MapNotify or UnmapNotify events on foreign windows too.
35130
35131 2010-03-23 07:42:05 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35132
35133         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35134           Check whether the foreign XID is mapped at binding time.
35135
35136 2010-03-23 07:34:15 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35137
35138         * sys/vaapisink/gstvaapisink.c:
35139           Add missing includes.
35140
35141 2010-03-23 07:31:04 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35142
35143         * configure.ac:
35144         * debian/Makefile.am:
35145         * debian/control.in:
35146         * debian/gstreamer-vaapi-doc.install.in:
35147         * debian/rules:
35148           Add -doc package.
35149
35150 2010-03-23 06:41:29 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35151
35152         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35153           Fix warnings (drop extraneous var).
35154
35155 2010-03-23 06:40:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35156
35157         * docs/reference/libs/libs-sections.txt:
35158         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35159           Add GST_VAAPI_WINDOW_XWINDOW() helper macro.
35160
35161 2010-03-22 16:59:29 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35162
35163         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35164           Shorten condition.
35165
35166 2010-03-22 16:57:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35167
35168         * gst-libs/gst/vaapi/Makefile.am:
35169         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35170         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35171         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35172         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35173           Try to improve switch to fullscreen mode.
35174
35175 2010-03-22 16:01:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35176
35177         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35178         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35179         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35180           Improve display locking and rework X event wait functions.
35181
35182 2010-03-22 13:06:41 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35183
35184         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35185         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35186           Move _GstVaapiWindowPrivate declaration to gstvaapiwindow_priv.h.
35187
35188 2010-03-22 13:05:05 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35189
35190         * gst-libs/gst/vaapi/Makefile.am:
35191         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35192         * gst-libs/gst/vaapi/gstvaapiwindow_priv.h:
35193           Add private API to set window size & fullscreen modes without triggering any notification or virtual functions. This is useful for derived class to fix up sizes whenever appropriate.
35194
35195 2010-03-22 12:47:13 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35196
35197         * docs/reference/libs/libs-sections.txt:
35198         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35199         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35200           Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property.
35201
35202 2010-03-22 12:39:02 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35203
35204         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35205         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35206         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35207           Add gst_vaapi_window_get_display() to base.
35208
35209 2010-03-22 12:16:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35210
35211         * docs/reference/libs/libs-docs.xml.in:
35212         * docs/reference/libs/libs-sections.txt:
35213         * gst-libs/gst/vaapi/Makefile.am:
35214         * gst-libs/gst/vaapi/gstvaapitypes.h:
35215         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35216         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35217         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35218         * sys/vaapisink/gstvaapisink.c:
35219         * sys/vaapisink/gstvaapisink.h:
35220           Add GstVaapiPoint & GstVaapiRectangle data structures.
35221
35222 2010-03-22 12:05:11 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35223
35224         * NEWS:
35225           0.1.1.
35226
35227 2010-03-22 12:03:26 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35228
35229         * NEWS:
35230         * sys/vaapisink/gstvaapisink.c:
35231         * sys/vaapisink/gstvaapisink.h:
35232           Allow `vaapisink` to render videos in fullscreen mode.
35233
35234 2010-03-22 10:51:49 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35235
35236         * docs/reference/libs/libs-sections.txt:
35237         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35238         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35239         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35240           Add gst_vaapi_window_set_fullscreen() API.
35241
35242 2010-03-22 10:03:24 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35243
35244         * sys/vaapisink/gstvaapisink.c:
35245           Size window so that to respect the video and pixel aspect ratio.
35246
35247 2010-03-22 09:32:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35248
35249         * docs/reference/libs/libs-sections.txt:
35250         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35251         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35252         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35253         * tests/test-display.c:
35254           Add gst_vaapi_display_get_pixel_aspect_ratio().
35255
35256 2010-03-22 08:45:03 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35257
35258         * docs/reference/libs/libs-sections.txt:
35259           Updates.
35260
35261 2010-03-22 08:44:38 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35262
35263         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35264         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35265         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35266         * tests/test-display.c:
35267           Add display size accessors.
35268
35269 2010-03-22 08:03:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35270
35271         * configure.ac:
35272         * debian/control.in:
35273           Build-Requires: gstreamer-plugins-base >= 0.10.16.
35274
35275 2010-03-21 08:45:09 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35276
35277         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35278         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35279         * gst-libs/gst/vaapi/gstvaapiimage.h:
35280         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35281         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35282         * gst-libs/gst/vaapi/gstvaapisurface.h:
35283         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35284         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35285         * gst-libs/gst/vaapi/gstvaapivideopool.h:
35286         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35287         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35288           Fix documentation of *Class'es.
35289
35290 2010-03-21 08:38:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35291
35292         * gst-libs/gst/vaapi/gstvaapiutils.c:
35293         * gst-libs/gst/vaapi/gstvaapiutils.h:
35294         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35295           Move GstVaapiSurfaceRenderFlags conversion to get_PutSurface_flags_from_GstVaapiSurfaceRenderFlags().
35296
35297 2010-03-21 08:22:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35298
35299         * docs/reference/libs/libs-sections.txt:
35300         * gst-libs/gst/vaapi/gstvaapisurface.h:
35301         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35302           Move GstVaapiSurfaceRenderFlags to gstvaapisurface.h since this will also be useful for e.g. a gstvaapitexture.h.
35303
35304 2010-03-21 08:12:52 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35305
35306         * docs/reference/libs/libs-sections.txt:
35307         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35308         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35309         * sys/vaapisink/gstvaapisink.c:
35310         * tests/test-windows.c:
35311           Rename gst_vaapi_window_put_surface_full() to plain gst_vaapi_window_put_surface().
35312
35313 2010-03-19 17:15:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35314
35315         * docs/reference/libs/Makefile.am:
35316           Fix make dist for --enable-gtk-doc builds.
35317
35318 2010-03-19 17:13:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35319
35320         * autogen.sh:
35321           Improve autogen.sh.
35322
35323 2010-03-19 17:11:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35324
35325         * Makefile.am:
35326         * autogen.sh:
35327           Generate gtk-doc.make from gtkdocize.
35328
35329 2010-03-19 17:04:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35330
35331         * Makefile.am:
35332         * NEWS:
35333         * configure.ac:
35334         * docs/Makefile.am:
35335         * docs/reference/Makefile.am:
35336         * docs/reference/libs/Makefile.am:
35337         * docs/reference/libs/libs-docs.xml.in:
35338         * docs/reference/libs/libs-overrides.txt:
35339         * docs/reference/libs/libs-sections.txt:
35340         * docs/reference/libs/libs.types:
35341           Document public API for libgstvaapi-*.so.*.
35342
35343 2010-03-19 16:41:52 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35344
35345         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35346         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35347           Document GstVaapiVideoBuffer.
35348
35349 2010-03-19 16:08:48 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35350
35351         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35352         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35353         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35354         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35355         * gst-libs/gst/vaapi/gstvaapivideopool.c:
35356         * gst-libs/gst/vaapi/gstvaapivideopool.h:
35357           Document surface & image pools. Drop obsolete gst_vaapi_video_pool_new() function.
35358
35359 2010-03-19 15:45:21 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35360
35361         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35362         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35363         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35364         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35365         * gst-libs/gst/vaapi/gstvaapiimage.c:
35366         * gst-libs/gst/vaapi/gstvaapiimage.h:
35367         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35368         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35369         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35370         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35371         * gst-libs/gst/vaapi/gstvaapisurface.c:
35372         * gst-libs/gst/vaapi/gstvaapisurface.h:
35373         * gst-libs/gst/vaapi/gstvaapivideosink.c:
35374         * gst-libs/gst/vaapi/gstvaapivideosink.h:
35375         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35376         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35377         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35378         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35379           Add tedious documentation.
35380
35381 2010-03-19 10:42:11 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35382
35383         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35384           Beautify append_formats().
35385
35386 2010-03-19 10:38:45 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35387
35388         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35389           Simplify GstVaapiDisplay (use GArray).
35390
35391 2010-03-19 08:42:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35392
35393         * NEWS:
35394         * sys/vaapiconvert/gstvaapiconvert.c:
35395         * sys/vaapiconvert/gstvaapiconvert.h:
35396           Factor out direct-rendering infrastructure.
35397
35398 2010-03-18 16:18:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35399
35400         * sys/vaapiconvert/gstvaapiconvert.c:
35401         * sys/vaapiconvert/gstvaapiconvert.h:
35402           Allow user to specify inout-buffers & derive-image optimizations.
35403
35404 2010-03-18 15:58:28 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35405
35406         * sys/vaapiconvert/gstvaapiconvert.c:
35407           Reduce number of debug messaged printed out.
35408
35409 2010-03-18 15:53:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35410
35411         * sys/vaapiconvert/gstvaapiconvert.c:
35412         * sys/vaapiconvert/gstvaapiconvert.h:
35413           Add vaDeriveImage() optimization.
35414
35415 2010-03-18 15:52:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35416
35417         * gst-libs/gst/vaapi/gstvaapiimage.c:
35418           Fix gst_vaapi_image_create() from a foreign VA image.
35419
35420 2010-03-18 15:28:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35421
35422         * gst-libs/gst/vaapi/gstvaapiimage.c:
35423         * gst-libs/gst/vaapi/gstvaapiimage.h:
35424         * gst-libs/gst/vaapi/gstvaapisurface.c:
35425         * gst-libs/gst/vaapi/gstvaapisurface.h:
35426           Add gst_vaapi_surface_derive_image() API.
35427
35428 2010-03-18 13:49:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35429
35430         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35431         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35432         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35433           Make it possible to bin an X11 window to GstVaapiWindowX11 with plain g_object_new() and "xid" property. i.e. get foreign window size in gst_vaapi_window_x11_create().
35434
35435 2010-03-18 13:08:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35436
35437         * tests/test-windows.c:
35438           Try YV12 & I420 image formats too.
35439
35440 2010-03-18 12:59:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35441
35442         * gst-libs/gst/vaapi/gstvaapiimage.c:
35443           Split map/unmap functions into internal functions that don't check preconditions.
35444
35445 2010-03-18 12:56:53 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35446
35447         * gst-libs/gst/vaapi/gstvaapiimage.c:
35448           Improve gst_vaapi_image_new() sanity checks.
35449
35450 2010-03-18 12:52:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35451
35452         * tests/test-windows.c:
35453           Fix typo.
35454
35455 2010-03-18 08:45:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35456
35457         * sys/vaapiconvert/gstvaapiconvert.c:
35458           Check if our inout buffer is still alive or default to a separate output buffer.
35459
35460 2010-03-18 08:16:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35461
35462         * sys/vaapiconvert/gstvaapiconvert.c:
35463         * sys/vaapiconvert/gstvaapiconvert.h:
35464           Factor out buffers negotiation and optimization checks.
35465
35466 2010-03-18 08:02:25 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35467
35468         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35469         * gst-libs/gst/vaapi/gstvaapiimage.c:
35470         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35471         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35472         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35473         * sys/vaapiconvert/gstvaapiconvert.h:
35474           Use gtypes.
35475
35476 2010-03-17 10:43:02 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35477
35478         * gst-libs/gst/vaapi/gstvaapiimage.c:
35479           Optimize gst_vaapi_image_is_linear() and simplify gst_vaapi_image_update_from_buffer().
35480
35481 2010-03-17 07:59:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35482
35483         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35484         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35485         * gst-libs/gst/vaapi/gstvaapiimage.c:
35486         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35487         * gst-libs/gst/vaapi/gstvaapisurface.c:
35488         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35489           Add VA display locking utilities.
35490
35491 2010-03-17 07:20:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35492
35493         * sys/vaapisink/gstvaapisink.c:
35494           Initialize the X window in a ::set_caps() handler. Also fix build with GStreamer < 0.10.25. i.e. use preroll/render hooks.
35495
35496 2010-03-17 07:17:17 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35497
35498         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35499         * tests/test-windows.c:
35500           Don't show window by default during creation.
35501
35502 2010-03-17 06:49:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35503
35504         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35505           Fix gst_vaapi_window_x11_destroy().
35506
35507 2010-03-16 17:57:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35508
35509         * sys/vaapiconvert/gstvaapiconvert.c:
35510         * sys/vaapiconvert/gstvaapiconvert.h:
35511           Alias sink & src pad buffers whenever possible.
35512
35513 2010-03-16 17:57:23 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35514
35515         * gst-libs/gst/vaapi/gstvaapiimage.c:
35516         * gst-libs/gst/vaapi/gstvaapiimage.h:
35517           Extend GstVaapiImage API with *_get_image(), *_is_linear(), *_get_data_size().
35518
35519 2010-03-16 17:10:02 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35520
35521         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35522         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35523           Make GstVaapiVideoBuffer handle two pools. i.e. both image & surface at the same time.
35524
35525 2010-03-16 14:37:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35526
35527         * sys/vaapiconvert/gstvaapiconvert.c:
35528           Fix image & surface size cache.
35529
35530 2010-03-16 14:12:40 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35531
35532         * configure.ac:
35533           Move gstreamer-vaapi package versioning to the top.
35534
35535 2010-03-16 14:11:46 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35536
35537         * configure.ac:
35538           Bump version for development.
35539
35540 2010-03-16 14:07:53 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35541
35542         * configure.ac:
35543           Cosmetics (shorten lines).
35544
35545 2010-03-16 13:58:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35546
35547         * NEWS:
35548         * README:
35549           Update docs.
35550
35551 2010-03-16 13:53:54 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35552
35553         * debian/Makefile.am:
35554         * debian/changelog.in:
35555         * debian/compat:
35556         * debian/control.in:
35557         * debian/copyright:
35558         * debian/gstreamer-vaapi.install.in:
35559         * debian/libgstvaapi-dev.install.in:
35560         * debian/libgstvaapi-x11.install.in:
35561         * debian/libgstvaapi.install.in:
35562         * debian/rules:
35563           Add debian packaging.
35564
35565 2010-03-16 13:53:09 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35566
35567         * Makefile.am:
35568         * configure.ac:
35569           Add debian packaging.
35570
35571 2010-03-16 10:13:36 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35572
35573         * pkgconfig/Makefile.am:
35574           Silence GNU make extensions warning.
35575
35576 2010-03-16 09:59:03 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35577
35578         * configure.ac:
35579           Add AM_PROG_CC_C_O, thus fixing this warning: tests/Makefile.am:16: compiling `test-display.c' with per-target flags requires `AM_PROG_CC_C_O' in `configure.ac'
35580
35581 2010-03-16 09:57:25 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35582
35583         * Makefile.am:
35584         * configure.ac:
35585         * pkgconfig/Makefile.am:
35586         * pkgconfig/gstreamer-vaapi-x11.pc.in:
35587         * pkgconfig/gstreamer-vaapi.pc.in:
35588           Add pkgconfig files.
35589
35590 2010-03-16 09:39:07 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35591
35592         * configure.ac:
35593         * gst-libs/gst/vaapi/Makefile.am:
35594         * sys/vaapisink/Makefile.am:
35595         * tests/Makefile.am:
35596           Split X11 support to libgstvaapi-x11-*.so.*
35597
35598 2010-03-16 09:21:15 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35599
35600         * gst-libs/gst/vaapi/Makefile.am:
35601           Don't install private headers.
35602
35603 2010-03-16 09:18:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35604
35605         * gst-libs/gst/vaapi/gstvaapidebug.h:
35606         * gst-libs/gst/vaapi/gstvaapiutils.c:
35607         * gst-libs/gst/vaapi/gstvaapiutils.h:
35608           Fix header guards.
35609
35610 2010-03-16 09:17:41 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35611
35612         * gst-libs/gst/vaapi/Makefile.am:
35613         * gst-libs/gst/vaapi/gstvaapidebug.h:
35614         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35615         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35616         * gst-libs/gst/vaapi/gstvaapiimage.c:
35617         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35618         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35619         * gst-libs/gst/vaapi/gstvaapisurface.c:
35620         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35621         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35622         * gst-libs/gst/vaapi/gstvaapivideopool.c:
35623         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35624         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35625           Rename vaapi_debug.h to gstvaapidebug.h.
35626
35627 2010-03-16 09:15:48 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35628
35629         * gst-libs/gst/vaapi/Makefile.am:
35630         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35631         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35632         * gst-libs/gst/vaapi/gstvaapiimage.c:
35633         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35634         * gst-libs/gst/vaapi/gstvaapisurface.c:
35635         * gst-libs/gst/vaapi/gstvaapiutils.c:
35636         * gst-libs/gst/vaapi/gstvaapiutils.h:
35637         * gst-libs/gst/vaapi/vaapi_debug.h:
35638           Move vaapi_utils.* to gstvaapiutils.*
35639
35640 2010-03-16 09:13:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35641
35642         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35643           Cosmetics (remove an extra line).
35644
35645 2010-03-16 09:12:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35646
35647         * gst-libs/gst/vaapi/Makefile.am:
35648         * gst-libs/gst/vaapi/gstvaapiutils_x11.c:
35649         * gst-libs/gst/vaapi/gstvaapiutils_x11.h:
35650         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35651           Move X11 utilties to gstvaapiutils_x11.[ch].
35652
35653 2010-03-16 09:03:10 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35654
35655         * gst-libs/gst/vaapi/Makefile.am:
35656         * gst-libs/gst/vaapi/gstvaapivideosink.c:
35657         * gst-libs/gst/vaapi/gstvaapivideosink.h:
35658         * sys/vaapiconvert/gstvaapiconvert.c:
35659         * sys/vaapisink/gstvaapisink.c:
35660           Rename GstVaapiSinkBase to GstVaapiVideoSink.
35661
35662 2010-03-16 08:49:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35663
35664         * configure.ac:
35665         * tests/Makefile.am:
35666         * tests/examples/Makefile.am:
35667         * tests/examples/generic/Makefile.am:
35668         * tests/test-display.c:
35669         * tests/test-surfaces.c:
35670         * tests/test-windows.c:
35671           Move tests to top-level tests/ directory.
35672
35673 2010-03-16 08:43:16 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35674
35675         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35676         * gst-libs/gst/vaapi/gstvaapiimage.c:
35677         * sys/vaapiconvert/gstvaapiconvert.c:
35678         * sys/vaapiconvert/gstvaapiconvert.h:
35679           Handle I420 formats internally in GstVaapiImage.
35680
35681 2010-03-15 17:44:35 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35682
35683         * sys/vaapiconvert/gstvaapiconvert.c:
35684         * sys/vaapiconvert/gstvaapiconvert.h:
35685           Implement I420 (resp. YV12) with YV12 (resp. I420) if the driver does not.
35686
35687 2010-03-15 17:43:29 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35688
35689         * gst-libs/gst/vaapi/gstvaapiimage.c:
35690           Implement I420 and YV12 if the underlying implementation does not.
35691
35692 2010-03-15 17:10:56 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35693
35694         * sys/vaapiconvert/Makefile.am:
35695         * sys/vaapiconvert/gstvaapiconvert.c:
35696         * sys/vaapiconvert/gstvaapiconvert.h:
35697           Add initial vaapiconvert plugin.
35698
35699 2010-03-15 17:09:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35700
35701         * sys/vaapisink/gstvaapisink.c:
35702         * sys/vaapisink/gstvaapisink.h:
35703           Display frames.
35704
35705 2010-03-15 16:57:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35706
35707         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35708           Factor out.
35709
35710 2010-03-15 16:57:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35711
35712         * tests/examples/generic/test-windows.c:
35713           Generate R/G/B rects.
35714
35715 2010-03-15 16:13:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35716
35717         * gst-libs/gst/vaapi/gstvaapisurface.c:
35718         * gst-libs/gst/vaapi/gstvaapisurface.h:
35719           Add gst_vaapi_surface_sync().
35720
35721 2010-03-15 16:13:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35722
35723         * gst-libs/gst/vaapi/gstvaapiimage.c:
35724           Cosmetics (reverse args order).
35725
35726 2010-03-15 15:55:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35727
35728         * gst-libs/gst/vaapi/gstvaapiimage.c:
35729         * gst-libs/gst/vaapi/gstvaapiimage.h:
35730         * gst-libs/gst/vaapi/gstvaapisurface.c:
35731           Cosmetics.
35732
35733 2010-03-15 15:12:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35734
35735         * gst-libs/gst/vaapi/Makefile.am:
35736         * gst-libs/gst/vaapi/gstvaapiwindow.c:
35737         * gst-libs/gst/vaapi/gstvaapiwindow.h:
35738         * gst-libs/gst/vaapi/gstvaapiwindow_x11.c:
35739         * gst-libs/gst/vaapi/gstvaapiwindow_x11.h:
35740         * tests/examples/generic/Makefile.am:
35741         * tests/examples/generic/test-windows.c:
35742           Add VA/X11 window abstraction.
35743
35744 2010-03-15 14:57:57 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35745
35746         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35747         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35748           Add VA and X11 display accessors.
35749
35750 2010-03-15 14:57:30 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35751
35752         * gst-libs/gst/vaapi/gstvaapiimage.c:
35753           Fix preconditions.
35754
35755 2010-03-15 13:32:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35756
35757         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35758           Cosmetics.
35759
35760 2010-03-15 11:49:03 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35761
35762         * gst-libs/gst/vaapi/gstvaapiimage.c:
35763         * gst-libs/gst/vaapi/gstvaapiimage.h:
35764         * gst-libs/gst/vaapi/gstvaapisurface.c:
35765         * gst-libs/gst/vaapi/gstvaapisurface.h:
35766           Add gst_vaapi_{get,put}_image() API.
35767
35768 2010-03-15 10:27:10 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35769
35770         * gst-libs/gst/vaapi/gstvaapiimage.c:
35771         * gst-libs/gst/vaapi/gstvaapiimage.h:
35772           Add gst_vaapi_image_update_from_buffer() helper.
35773
35774 2010-03-12 23:53:48 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35775
35776         * sys/vaapisink/Makefile.am:
35777         * sys/vaapisink/gstvaapisink.c:
35778         * sys/vaapisink/gstvaapisink.h:
35779           Implement GstVaapiSinkBase interface and integrate with GST_DEBUG better.
35780
35781 2010-03-12 23:50:09 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35782
35783         * tests/examples/generic/Makefile.am:
35784         * tests/examples/generic/test-surfaces.c:
35785           Add surface tests.
35786
35787 2010-03-12 23:48:50 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35788
35789         * gst-libs/gst/vaapi/Makefile.am:
35790         * gst-libs/gst/vaapi/gstvaapivideobuffer.c:
35791         * gst-libs/gst/vaapi/gstvaapivideobuffer.h:
35792           Add basic GstVaapiVideoBuffer.
35793
35794 2010-03-12 23:47:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35795
35796         * gst-libs/gst/vaapi/Makefile.am:
35797         * gst-libs/gst/vaapi/gstvaapiimagepool.c:
35798         * gst-libs/gst/vaapi/gstvaapiimagepool.h:
35799         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35800         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35801         * gst-libs/gst/vaapi/gstvaapivideopool.c:
35802         * gst-libs/gst/vaapi/gstvaapivideopool.h:
35803           Add GstVaapiImagePool and factor out GstVaapiSurfacePool from a base GstVaapiVideoPool.
35804
35805 2010-03-12 22:32:35 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35806
35807         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35808           Simplify format conversion code.
35809
35810 2010-03-12 22:28:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35811
35812         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35813         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35814           Add gst_vaapi_image_format_from_caps() helper.
35815
35816 2010-03-12 17:45:18 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35817
35818         * gst-libs/gst/vaapi/Makefile.am:
35819         * gst-libs/gst/vaapi/gstvaapisurfacepool.c:
35820         * gst-libs/gst/vaapi/gstvaapisurfacepool.h:
35821           Add VA surface pool (lazy allocator).
35822
35823 2010-03-12 17:39:11 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35824
35825         * gst-libs/gst/vaapi/gstvaapisurface.c:
35826         * gst-libs/gst/vaapi/gstvaapisurface.h:
35827           Add gst_vaapi_surface_get_size() helper.
35828
35829 2010-03-12 10:52:08 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35830
35831         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35832           Avoid use of GstStaticCaps since older gstreamer versions (0.10.22) write to it.
35833
35834 2010-03-11 15:35:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35835
35836         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35837           Reset display-name if the user provided his own X11 display.
35838
35839 2010-03-11 15:21:43 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35840
35841         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35842         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35843         * tests/examples/generic/test-display.c:
35844           Add gst_vaapi_display_x11_new_with_display() API.
35845
35846 2010-03-11 15:04:18 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35847
35848         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35849         * gst-libs/gst/vaapi/gstvaapiimage.h:
35850         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
35851         * gst-libs/gst/vaapi/gstvaapisurface.h:
35852           Fix *_GET_CLASS() definitions...
35853
35854 2010-03-11 15:01:00 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35855
35856         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35857         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35858         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35859         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35860         * tests/examples/generic/test-display.c:
35861           API change: gst_vaapi_display_x11_new() now takes an X11 display name.
35862
35863 2010-03-11 13:58:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35864
35865         * gst-libs/gst/vaapi/gstvaapisurface.c:
35866         * gst-libs/gst/vaapi/gstvaapisurface.h:
35867           Use GstVaapiChromaType abstraction.
35868
35869 2010-03-11 12:30:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35870
35871         * gst-libs/gst/vaapi/gstvaapiimage.c:
35872         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35873         * gst-libs/gst/vaapi/gstvaapisurface.c:
35874           New refcounting policy. All getters return a reference, not a copy. So the user shall reference the object itself, should he wish so.
35875
35876 2010-03-11 12:14:10 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35877
35878         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35879           Don't warn on failure, just return an appropriate error or value.
35880
35881 2010-03-11 12:11:36 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35882
35883         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35884         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35885         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35886           Filter out any format that is not supported by the library (libgstvaapi). Also sort the formats by HW preference.
35887
35888 2010-03-11 10:50:27 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35889
35890         * gst-libs/gst/vaapi/Makefile.am:
35891         * gst-libs/gst/vaapi/gstvaapisinkbase.c:
35892         * gst-libs/gst/vaapi/gstvaapisinkbase.h:
35893           Add helper interface that all VA-API sinks must implement. e.g. vaapisink.
35894
35895 2010-03-10 13:13:51 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35896
35897         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35898         * gst-libs/gst/vaapi/gstvaapiimage.c:
35899         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35900         * gst-libs/gst/vaapi/gstvaapisurface.c:
35901         * gst-libs/gst/vaapi/vaapi_debug.h:
35902           Use GST_DEBUG.
35903
35904 2010-03-10 13:10:59 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35905
35906         * gst-libs/gst/vaapi/gstvaapiimage.c:
35907         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
35908           Fix GstVaapiImage and GstVaapiSubpicture initialization.
35909
35910 2010-03-10 13:02:45 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35911
35912         * gst-libs/gst/vaapi/gstvaapisurface.c:
35913           Fix GstVaapiSurface initialization, override constructed() method, not constructor(). GObject C is awful...
35914
35915 2010-03-10 12:25:38 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35916
35917         * tests/examples/generic/test-display.c:
35918           Dump caps.
35919
35920 2010-03-10 12:25:19 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35921
35922         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35923         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35924         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35925           Fix GstVaapiDisplay initialization.
35926
35927 2010-03-10 10:43:31 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35928
35929         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35930         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35931           Get VA image & subpicture formats as GstCaps.
35932
35933 2010-03-10 10:41:12 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35934
35935         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
35936         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
35937           Add helper to convert from GstVaapiImageFormat to GstCaps.
35938
35939 2010-03-09 12:00:32 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35940
35941         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35942         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35943         * gst-libs/gst/vaapi/gstvaapisurface.c:
35944           Cosmetics (drop unused variables).
35945
35946 2010-03-05 17:11:52 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35947
35948         * configure.ac:
35949         * sys/vaapiconvert/Makefile.am:
35950         * sys/vaapiconvert/gstvaapiconvert.c:
35951         * sys/vaapiconvert/gstvaapiconvert.h:
35952         * sys/vaapisink/Makefile.am:
35953         * sys/vaapisink/gstvaapisink.c:
35954         * sys/vaapisink/gstvaapisink.h:
35955           Add boilerplate for vaapiconvert and vaapisink elements.
35956
35957 2010-03-05 15:29:04 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35958
35959         * configure.ac:
35960         * sys/Makefile.am:
35961         * sys/vaapiconvert/Makefile.am:
35962           Add vaapiconvert element hierarchy.
35963
35964 2010-03-05 15:26:36 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35965
35966         * sys/vaapisink/Makefile.am:
35967           Rename to vaapisink.
35968
35969 2010-03-05 10:07:22 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35970
35971         * gst-libs/gst/vaapi/gstvaapisurface.c:
35972           Shorter code (and more correct).
35973
35974 2010-03-05 10:04:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35975
35976         * gst-libs/gst/vaapi/gstvaapisurface.c:
35977         * gst-libs/gst/vaapi/gstvaapisurface.h:
35978           Add helper to get GstVaapiDisplay from a surface.
35979
35980 2010-03-05 08:52:20 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35981
35982         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35983           Fix subpicture formats list length.
35984
35985 2010-03-04 17:41:34 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35986
35987         * gst-libs/gst/vaapi/gstvaapidisplay.c:
35988         * gst-libs/gst/vaapi/gstvaapidisplay.h:
35989           Add utilities to check whether a VA-API driver supports specific image or subpicture format. Likewise for VA profile.
35990
35991 2010-03-04 17:40:47 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35992
35993         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
35994         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
35995           Cosmetics (more checks, includes).
35996
35997 2010-03-04 17:39:58 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
35998
35999         * gst-libs/gst/vaapi/gstvaapisubpicture.c:
36000         * gst-libs/gst/vaapi/gstvaapisubpicture.h:
36001           Really add VA subpicture abstraction.
36002
36003 2010-03-04 17:39:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36004
36005         * gst-libs/gst/vaapi/Makefile.am:
36006         * gst-libs/gst/vaapi/gstvaapiimage.c:
36007         * gst-libs/gst/vaapi/gstvaapiimage.h:
36008         * gst-libs/gst/vaapi/gstvaapiimageformat.c:
36009         * gst-libs/gst/vaapi/gstvaapiimageformat.h:
36010         * gst-libs/gst/vaapi/gstvaapisurface.c:
36011         * gst-libs/gst/vaapi/gstvaapisurface.h:
36012           Add VA surface, image, subpicture abstractions. Ported over from Gnash.
36013
36014 2010-01-25 16:15:01 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36015
36016         * configure.ac:
36017         * gst-libs/gst/vaapi/Makefile.am:
36018         * gst-libs/gst/vaapi/gstvaapidisplay.c:
36019         * gst-libs/gst/vaapi/gstvaapidisplay.h:
36020         * gst-libs/gst/vaapi/gstvaapidisplay_x11.c:
36021         * gst-libs/gst/vaapi/gstvaapidisplay_x11.h:
36022         * gst-libs/gst/vaapi/vaapi_debug.h:
36023         * gst-libs/gst/vaapi/vaapi_utils.c:
36024         * gst-libs/gst/vaapi/vaapi_utils.h:
36025         * tests/examples/generic/Makefile.am:
36026         * tests/examples/generic/test-display.c:
36027           Add initial VA display abstraction.
36028
36029 2010-01-25 15:04:10 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36030
36031         * Makefile.am:
36032         * configure.ac:
36033         * tests/Makefile.am:
36034         * tests/examples/Makefile.am:
36035         * tests/examples/generic/Makefile.am:
36036           Add tests infrastructure.
36037
36038 2010-01-25 14:59:37 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36039
36040         * configure.ac:
36041           Clean up VA-API checks.
36042
36043 2010-01-25 13:49:55 +0000  gb <gb@5584edef-b1fe-4b99-b61b-dd2bab72e969>
36044
36045         * configure.ac:
36046           Check for __attribute__((visibility("hidden"))).
36047